首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么颤振开关onChanged回调触发错误?

为什么颤振开关onChanged回调触发错误?
EN

Stack Overflow用户
提问于 2019-08-13 21:06:52
回答 1查看 513关注 0票数 1

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

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

代码语言:javascript
复制
    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/颤振(20662):以前:假

I/颤振(20662):后:真

切换到假

I/颤振(20662):以前:真

I/颤振(20662):后:假

切换到真

I/颤振(20662):以前:假

I/颤振(20662):后:真

实际结果:

最初为false,现在我切换为true.

I/颤振(20662):以前:假

I/颤振(20662):后:真

到目前为止太棒了!

现在我转到假的..。什么都没发生。=>无onChanged调用

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

I/颤振(20662):以前:真

I/颤振(20662):后:真

说不通!?

EN

回答 1

Stack Overflow用户

发布于 2019-08-13 21:29:37

我创建了一个对象

代码语言:javascript
复制
   Switch switch2;

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

然后,我尝试构建()开关,而只是直接调用build()中的方法_getSwitch。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57485335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档