flutter - Flutter & provider:如何通过提供者的 int 值更改文本?
问题描述
如果更改通知器的类型是 bool,我可以像这样更改文本:
...
Consumer<LoginOrSignup>(
builder: (context, value, child) =>
Text(value.isSignup? "Sign up" : "Login")
)
...
LoginorSignup.dart:
import 'package:flutter/foundation.dart';
class LoginOrSignup extends ChangeNotifier{
bool _isSignup = false;
bool get isSignup => _isSignup;
}
如果_isSignup类型是 int,我该如何更改文本?
解决方案
是的,您可以,您应该在LoginOrSignup类中添加方法,然后在需要时调用此方法,如下所示:
import 'package:flutter/foundation.dart';
class LoginOrSignup extends ChangeNotifier{
bool _isSignup = false;
bool get isSignup => _isSignup;
void changeStatus(bool status){
_isSignup = status;
notifyListeners();
}
}
在你看来电话
value.changeStatus(false); //or true
推荐阅读
- python - AttributeError:“WebDriver”对象在通过 Selenium 对元素使用 select_by_visible_text() 方法时没有属性“select_by_visible_text”
- ajax - JSF Ajax onchange 监听器不会自动更新表
- sql - 如何结合这两个 Postgresql 查询?
- c++ - CUDA设备功能多重定义
- php - Symfony 4:尝试获取 / 时重定向到 /admin
- selenium - 使用 Python 和哪个工具实现 Flash 应用程序自动化
- postgresql - PSQLException:错误:列“attidentity”不存在
- python - dict.pop() 报异常keyerror
- git - Git - 在允许推送到分支之前需要合并来自 master 的提交
- android - Android 仪器测试在加载本机库时擦除共享首选项数据