我是新来的 river_pod如果我说文档只针对 super 高级工程师,我不会撒谎
无论如何,我想实现一个 sign in
使用这个包的功能
它背后的逻辑很简单:-我从用户那里获得电子邮件和密码,然后更改 loggedIn
状态从 false
至 true
这是我的 Provider
final userAuthProvider = StateProvider<Map<String, bool>>(
(_) => {'signedIn': false, 'loaded': true, 'signInWasDissmised': false});
这是我如何使用它并更改值
void signIn(BuildContext context, String username, String userPassword) {
// Check if the username/email and password exist and are correct...etc;
final String usernameOrEmail = username;
final String password = userPassword;
// ...logic
context.read(userAuthProvider).state['signedIn'] = true;
我正在使用 context.read 因为我在 onPressed
中的RaisedButton
现在,问题是在将值更改为 true
之后我不明白 flutter
回复 build
一切并使用新的 variable
我怎样才能实现这样的事情?我什至做得对吗?
最佳答案
context.read(userAuthProvider).state['signedIn'] = true;
你不能那样做。相反,克隆对象:
final auth = context.read(userAuthProvider);
auth.state = {
...auth.state,
'signedIn' = true,
};
关于flutter - 使用 Riverpod Flutter 创建登录功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64074498/