Flutter 如何以最佳方式改变颤振显示数据
我想更改颤振中显示的数据?我编写了一个函数changeDataForTest(仅用于测试事件的函数),它应该更改文本中显示的数据。 但如果我点击这个,它不会改变。如果我添加(作为元素的上下文),则显示的字符串的值只会更改;在调用该方法之后。这是正常的方式,还是有更顺畅的方式来解决我的问题Flutter 如何以最佳方式改变颤振显示数据,flutter,dart,Flutter,Dart,我想更改颤振中显示的数据?我编写了一个函数changeDataForTest(仅用于测试事件的函数),它应该更改文本中显示的数据。 但如果我点击这个,它不会改变。如果我添加(作为元素的上下文),则显示的字符串的值只会更改;在调用该方法之后。这是正常的方式,还是有更顺畅的方式来解决我的问题 dynamic changeDataForTest(neuerWert) { this.data = neuerWert; } Column( children: [
dynamic changeDataForTest(neuerWert) {
this.data = neuerWert;
}
Column(
children: [
Center(
child: Text(
this.data + this.wiegehts,
),
),
FlatButton(
textColor: Color(0xFF6200EE),
onPressed: () {
changeDataForTest('neuerWert');
(context as Element).reassemble();
},
)
],
)
谢谢
Lukas如果您只使用一个小部件,您可以使用
StatefulWidget
方法:
setState(() {
// change your variable
})
如果您的小部件很复杂,并且有许多不同的可能变量,我不建议使用setState
,因为每次使用该方法时都会调用build
方法
一个简单快速的选项是使用ValueNotifier
:
final myVariable = ValueNotifier(false); // where you can replace 'false' with any Object
然后,以这种方式使用它:
ValueListenableBuilder(
valueListenable: myVariable,
builder: (context, value, child) {
return Text(value); // or any other use of Widgets
},
);
myVariable.value = true; // if you're looking for to change the current value
最后,如果您的逻辑非常复杂,需要扩展,我建议您使用状态管理库,如:
- 提供者
- 河豚
- 集团
- 其他