使用Redux更改React Native中的初始状态

问题描述

我目前正在开发一个具有登录和注册屏幕的应用程序。用户成功登录(或注册)后,我将用户导航到“我的帐户”屏幕。

在两个登录/注册屏幕上,我都有一个“电子邮件”和“密码” <TextInput>。当用户在电子邮件<TextInput>上键入内容时,我将更新'email'状态变量。与“密码”相同。

这是我的loginReducer.js的初始状态:

const initialState = { 
    errorMessage: '',// signin/signup error message
    isLoading: false,email: '',// 'email' textinput on signin/signup screen
    password: '',// 'password' textinput on signin/signup screen
    user: null,// object with logged user,if logged of course
};

当用户在登录/注册屏幕之间导航时,我将重置状态,以便清除文本输入!

以下是我不确定该怎么做的正确方法:

“我的帐户”屏幕上也有这些相同的字段!电子邮件和密码,因此用户可以根据需要更改其电子邮件或密码。 “我的帐户”屏幕中这些字段的初始值当然是他的电子邮件和密码,而“登录/注册”屏幕中这些字段的初始值是空字符串!现在,假设用户开始更改他的电子邮件(在“我的帐户”屏幕上),并且在键入时决定进入主屏幕。当他回来时,我想将状态“重置”回他的初始电子邮件,而不是一个空字符串。

这就是我所说的“更改初始状态”的意思。我有点想在用户登录时更新initialState。以某种方式重用此reducer,但是由于我是React Native的新手,所以我不确定是正确的事。.你们建议什么?我是否应该仅为“我的帐户”屏幕创建一个新的减速器?也许是另一种方法?

谢谢您,如有重复,我们深表歉意!

解决方法

我认为您的方法有误。为什么要将用户信息传递给redux?

您最好在本地状态下管理注册/登录过程,并 THEN 将必要的信息分发给用户和电子邮件之类的redux。

通过这种方法,您可以检查字段是否正常(例如:密码(最少8个字符),然后发送至后端,然后进行分派。

在我看来,更好的工作流程

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...