flutter - 使用 Riverpod Flutter 创建登录功能

标签 flutter dart state riverpod

我是新来的 river_pod如果我说文档只针对 super 高级工程师,我不会撒谎
无论如何,我想实现一个 sign in使用这个包的功能
它背后的逻辑很简单:-我从用户那里获得电子邮件和密码,然后更改 loggedIn状态从 falsetrue这是我的 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/

相关文章:

flutter - 列表中的 indexOf 方法总是返回 -1

dart - 如何在 angular dart 上的 contenteditable 中启用数据绑定(bind)

javascript - 在 Redux 应用程序中写入 localStorage 的位置?

vb6 - 如何在vb6中判断系统状态是否处于空闲 sleep 状态等

android - Flutter 有没有办法制作一个动态时间戳,打印出 10 分钟前、1 小时前或 2 个月前的内容

flutter - 如何知道要导入哪个模块来使用一个类?

android - Flutter - setState 不更新内部有状态小部件

scala - Scala 中的 Monad Transformer 堆栈

Flutter从谷歌云平台加载Image.network()

Flutter - 在溢出时换行,例如插入省略号或淡入淡出