如何从 Flutter 小部件中调用 SetState 方法

问题描述 投票:0回答:1

我需要一个可重复的方法来传递多个变量(int)并对传递的变量调用 SetState 方法。

下面是一个示例,其中“value”被传递到 testItems Widget 中,并且在“BlueMinusButton”之上调用 SetState。

我有许多“值”,需要将其传递给其他“testItems”方法。但是,当我输入变量(作为值)时,不会调用 SetState 并且值不会更改。

任何帮助和/或替代方法都非常感谢。

谢谢

int value = 25;

  Widget testItems(int value) {
    return Row(
      crossAxisAlignment: CrossAxisAlignment.center,
      children: [
        Row(
          crossAxisAlignment:
          CrossAxisAlignment.baseline,
          textBaseline: TextBaseline.alphabetic,
          children: [
            Text(value.toString(),
                style: kValues),
            Text("g",
                style: kDarkBlue),
          ],
        ),
        Spacer(),
        BlueMinusButton(
            onTap: () {
          setState(() {
            value = value - 50;
          });      
          if (value < 0) {
            setState(() {
              value = 0;
            });
          }
        }),

      ],
    );
  }

flutter methods setstate
1个回答
0
投票

首先,了解您的代码正在运行。 (它与主要计数器示例非常相似)

代码我曾经在dartpad.dev上测试过

1 值为 25

2 您触摸按钮

3 新值为-25

4 值减去 0 并设置为 0

5 您重新触摸按钮

6 值减去 0 并设置为 0

7 这里我们有一个无限循环...

使用小部件是更好的做法,不要使用返回小部件的函数,尤其是在处理状态时

关于管理状态的其他方法,您可以尝试不同的方法:

值通知器和值通知器

© www.soinside.com 2019 - 2024. All rights reserved.