新手的简单问题。我想将回调创建的变量的结果保存为var,并将其输出到另一个小部件的文本中。我该怎么做...?
Row(
children: [
Expanded(
child: Container(
height: 40,
color: primaryColor20,
child: Text(''),
),
),
ElevatedButton(
onPressed: () async {
await Navigator.push(
context,
MaterialPageRoute(
builder: (_) => KpostalView(
callback: (Kpostal result){
print(result.address);
var resultAddress = result.address;
},
),
),
);
},
child: Text('Find Address'),
),
],
),
4条答案
按热度按时间7bsow1i61#
使用StatefulWidget,那么
setState(() => resultAddress = result.address;
这样的税就可以使用Text(resultAddress)
gg58donl2#
您必须使用StatefulWidget
oalqel3c3#
您可以使用
Text('My text ${result.address}')
,但要刷新该值,您需要将其置于StatefulWidget中f8rj6qna4#
你有两个选择。
1.通过使用
setState(() => resultAddress = result.address;
来使用StatefullWidget这使得可以通过使用setState
来改变resultAddress
。1.使用
Provider
之类的状态管理。创建一个类,如下所示:如你所见,将
_resultAddress
更改为notifyListeners()
会告诉你,你可以显示它。你可以在代码中将_resultAddress
更改为Consumer
,如下所示:请小心地将Provider包导入到pubspec.yaml中,并在main中提供Provider类,如下所示:
提供者作为状态管理的最大好处是你可以在任何你想用的地方使用你的变量。2快乐的编码...