如何解决使用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个字符),然后发送至后端,然后进行分派。
在我看来,更好的工作流程
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。