Flutter报错:缺少'State.build'具体实现,为何仍触发该错误?
问题原因及解决方法
你收到的State.build错误提示并不是针对HomeScreen,而是指向_DataFromAPIState这个State子类——所有继承自State的类必须强制重写build方法,但你只在这个类里定义了getUserData方法,完全没有实现build,这就触发了缺失State.build的错误。
修复代码示例
给_DataFromAPIState补充build方法即可,示例如下:
class DataFromAPI extends StatefulWidget { @override _DataFromAPIState createState() => _DataFromAPIState(); } class _DataFromAPIState extends State<DataFromAPI> { Future getUserData() async { var url = Uri.http("..."); var response = await http.get(url); var jsonData = jsonDecode(response.body); print(response.body); print(jsonData); } // 必须添加的build方法 @override Widget build(BuildContext context) { // 根据需求返回对应UI组件,这里示例为触发API请求的按钮 return Center( child: ElevatedButton( onPressed: getUserData, child: const Text("获取API数据"), ), ); } } class HomeScreen extends StatelessWidget { const HomeScreen({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( body: DataFromAPI(), // 将DataFromAPI作为HomeScreen的子组件 ); } }
额外说明
如果你的DataFromAPI仅用于封装API请求逻辑,不需要作为UI组件使用,那应该把它改成普通类,而非StatefulWidget的子类——StatefulWidget是用来构建可交互UI的,必须配合完整的State生命周期实现。
内容的提问来源于stack exchange,提问作者Shiko
相关产品推荐
相关产品推荐

