Flutter:向Stateful Widget传参报错‘selectedText未定义’求助
解决Stateful Widget中selectedText未定义的错误
问题出在你在State类_TestTestState里直接调用selectedText,但这个变量是定义在父类TestTest(StatefulWidget)中的,State类必须通过widget属性来访问对应Widget实例的成员变量。
只需要把switch (selectedText)改成switch (widget.selectedText)即可解决这个错误,修正后的完整代码如下:
class TestTest extends StatefulWidget { final String selectedText; const TestTest({Key? key, required this.selectedText,}) : super(key: key); @override State<TestTest> createState() => _TestTestState(); } class _TestTestState extends State<TestTest> { String optionAData = ''; String optionBData = ''; @override Widget build(BuildContext context) { switch (widget.selectedText) { case 'OptionA': return Column( children: [ WidgetDisplay1( onTap: (){ setState(() { optionAData = 'A123'; }); }, ), WidgetDisplay3( onTap: (){ setState(() { optionAData = 'A456'; }); }, ), ], ); case 'OptionB': return Column( children: [ WidgetDisplay5( onTap: (){ setState(() { optionBData = 'B123'; }); }, ), WidgetDisplay3(onTap: (){ setState(() { optionBData = 'B456'; }); }), WidgetDisplay4( onTap: (){ setState(() { optionBData = 'B789'; }); }, ), ], ); default: return Container(); } } }
内容的提问来源于stack exchange,提问作者Nomad09
相关产品推荐
相关产品推荐

