React native 跨多个页面反应本机redux存储状态
尝试学习redux,并在传递状态以使用户保持最新状态时遇到问题,主要示例-在第1页创建用户,导航到第2页,在用户上设置一些内容,然后导航回第1页 必须为通过用户导航的第2页创建操作,也必须为来回通过用户导航的第1页创建操作 redux的正确用法是什么 必须来回传递用户以保持应用程序同步React native 跨多个页面反应本机redux存储状态,react-native,redux,React Native,Redux,尝试学习redux,并在传递状态以使用户保持最新状态时遇到问题,主要示例-在第1页创建用户,导航到第2页,在用户上设置一些内容,然后导航回第1页 必须为通过用户导航的第2页创建操作,也必须为来回通过用户导航的第1页创建操作 redux的正确用法是什么 必须来回传递用户以保持应用程序同步 { page1: user: {...data}} set user details, page2: user: {...data}} passed user details but able to edit
{
page1: user: {...data}} set user details,
page2: user: {...data}} passed user details but able to edit user
details and able to go back to page1
}
用户可以随时全局访问,并通过操作调用进行更新
{
userDetails: {user: {...data}},
page1: only page specific state, accesses this.props.userDetails.user
page2: only page specific state, accesses this.props.userDetails.user
}
因此,通常您只需将任何组件所需的用户信息订阅到Redux存储中,通常使用react Redux。在page2中,您将调度一个操作来修改存储中的用户,然后当reducer处理这些修改时,page1可以使用新值进行更新 改变用户的操作可能如下所示:
{
type: 'SET_USER_EMAIL',
email: 'foo@wombat.com'
}
您将从page2组件中分派该操作。它将在存储中的用户对象的reducer中接收:
switch (action.type) {
case 'SET_USER_EMAIL':
return {
...state,
email: action.email
}
}
如果两个页面都订阅了Redux存储,那么用户值就不会来回传递,因为当存储发生更改时,两个页面都会收到通知,并且可以根据这些更改进行自我更新。我猜您会说,每个组件都会侦听存储,并在更新时采取行动
导航是一个独立的问题,尽管它当然可以使用Redux。我觉得你可能会受益于重温其中一些,使事情更清楚