首页 > 解决方案 > Flutter - DropdownButton onChanged 不调用函数

问题描述

我有一个简单的 DropdownButton 元素和 onChange 事件。

onChanged: (String newValue) {
    if (newValue == "Log out") {
        print("Inside IF");
        setState(){
            user.navigateToPreviousPage(Login(), context, false);
        }
    }
},

但是从这里我只得到这个 print("Inside IF")... 它不会调用应该删除用户令牌并导航到登录页面的函数。此外,没有错误或警告...

这里有什么问题?我的整个班级都是无状态小部件。我应该将其更改为有状态吗?

标签: flutterdart

解决方案


您以错误的方式调用 setState :

setState(){
            user.navigateToPreviousPage(Login(), context, false);
        }

正确方法:

setState(() {
  user.navigateToPreviousPage(Login(), context, false);
});

而且您应该Navigator.pop从要关闭的小部件中调用:)


推荐阅读