React native 跨多个页面反应本机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

尝试学习redux,并在传递状态以使用户保持最新状态时遇到问题,主要示例-在第1页创建用户,导航到第2页,在用户上设置一些内容,然后导航回第1页

必须为通过用户导航的第2页创建操作,也必须为来回通过用户导航的第1页创建操作

redux的正确用法是什么

必须来回传递用户以保持应用程序同步

{ 
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。我觉得你可能会受益于重温其中一些,使事情更清楚