dart - 内部 Widget 中的 Flutter setState

标签 dart widget flutter stateful

是否可以在有状态的内部小部件(主上下文之外)中使用 setState

我想要实现的是当用户点击它时让 Button 改变 color 。它位于 ListView.builder 中,因为有多个按钮,但我希​​望它只发生在 _buildAnsers 小部件中

Widget _buildAnswers(int questionIndex) {

    //I need this to be inside this widget
    Color _buttonColor = Colors.red;

    return new ListView.builder(
      itemCount: 10,
      physics: ClampingScrollPhysics(),
      shrinkWrap: true,
      itemBuilder: (context, answerIndex) {

        return Padding(
            child: new RaisedButton(
              onPressed: () {
                setState(() {
                  _buttonColor = Colors.green; //this doesn't work?
                });
              },

              color: _buttonColor,
              splashColor: Color(0xFFde1f28),
              disabledColor: Color(0xFFc54b51),

              child: new Text('Container ${answerIndex}'),
            )
        );

      },
    );

  }

最佳答案

不,它不会工作,更好的选择是使用 StreamController和广播/订阅模式。

关于dart - 内部 Widget 中的 Flutter setState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51806728/

相关文章:

wordpress - 通过 register_widget 操作 Hook 将参数传递给 WP_Widget 构造

android-studio - 如何在 Android Studio 中打开现有的 Flutter 项目

Flutter 主体可能正常完成,导致返回 'null',但返回类型是潜在的不可空类型?

dart - string.hashCode 比 dart 版本稳定吗?

xcode - Flutter:命令 PhaseScriptExecution 失败,退出代码非零

python - 如何获取 Tkinter 文本小部件中文本的当前长度

javascript - Rails 中的文章统计小部件

Flutter 升级失败

user-interface - 在Flutter上使用ChangeNotifierProvider选择另一个选项卡时,如何更改AppBar的颜色?

android - notifyListener 的奇怪行为