gpt4 book ai didi

flutter - 为什么 flutter 开关onChanged回调会触发错误?

转载 作者:行者123 更新时间:2023-12-03 04:00:31 26 4
gpt4 key购买 nike

最初, flutter 开关小部件的值为false。滑动后,开关为真。但是,如果我再次滑动,则不会触发onChange方法。

我使用setState()将开关的值更改为onChanged方法。我试图移交BuildContext,但没有成功。

    bool value = false;

void _setValue(bool value) {
print('before: ' + this.value.toString());
setState(() => this.value = value);
print('after: ' + this.value.toString());
}

Widget _getSwitch() {
return Switch(
value: this.value,
onChanged: _setValue,
);
}

预期结果:

最初为false,然后切换为true。

I / flutter(20662):之前:false

I / flutter(20662):之后:是

切换为假

I / flutter(20662):之前:true

I / flutter(20662):之后:false

切换为真

I / flutter(20662):之前:false

I / flutter(20662):之后:是

实际结果:

最初为false,现在切换为true。

I / flutter(20662):之前:false

I / flutter(20662):之后:是

到目前为止非常棒!

现在我切换为false ...什么也没发生。 =>没有onChanged调用

现在,我切换到true,这是输出:

I / flutter(20662):之前:true

I / flutter(20662):之后:是

没道理!

最佳答案

我创建了一个对象

   Switch switch2;

@override
void initState() {
super.initState();
switch2 = _getSwitch();
}

然后我尝试对开关进行build(),而是直接在build()中调用_getSwitch方法。

关于flutter - 为什么 flutter 开关onChanged回调会触发错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57485335/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com