Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何以最佳方式改变颤振显示数据_Flutter_Dart - Fatal编程技术网

Flutter 如何以最佳方式改变颤振显示数据

Flutter 如何以最佳方式改变颤振显示数据,flutter,dart,Flutter,Dart,我想更改颤振中显示的数据?我编写了一个函数changeDataForTest(仅用于测试事件的函数),它应该更改文本中显示的数据。 但如果我点击这个,它不会改变。如果我添加(作为元素的上下文),则显示的字符串的值只会更改;在调用该方法之后。这是正常的方式,还是有更顺畅的方式来解决我的问题 dynamic changeDataForTest(neuerWert) { this.data = neuerWert; } Column( children: [

我想更改颤振中显示的数据?我编写了一个函数changeDataForTest(仅用于测试事件的函数),它应该更改文本中显示的数据。 但如果我点击这个,它不会改变。如果我添加(作为元素的上下文),则显示的字符串的值只会更改;在调用该方法之后。这是正常的方式,还是有更顺畅的方式来解决我的问题

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
最后,如果您的逻辑非常复杂,需要扩展,我建议您使用状态管理库,如:

  • 提供者
  • 河豚
  • 集团
  • 其他
您可以在以下位置找到这些库和示例:

使用setState(),对于statefulWidgetFlatButton,“此类已过时,请改用TextButton。”。