我无法理解一些 ReactJS 和 Redux 原则,
在 Redux 中,我们有一个 store 和一组 reduceres,它们给出了你的最终状态(这部分我得到了)。
组件从其父组件接收道具,在 Redux 的情况下,它通过 Provider 组件传递完整状态。
现在,让我们假设这个用例,我的应用程序状态是这样的:
auth : { name,id, ..etc} -> this is actually a JWT Token with a set of claims...
我正在构建一个容器(页面),以便能够编辑用户配置文件、此处的问题以及遇到问题的地方,我还希望此页面能够处理任意用户编辑(以防管理员正在编辑帐户)。
我正在使用这样的 redux-router 渲染我的页面:
<Route path="/user" component={RequiresAuth(UsersPage) } >
<IndexRoute component={RequiresAuth(UsersOverview) }/>
<Route path="/user/overview" component={UsersOverview} />
<Route path="/user/account" component={AccountManagement} >
<IndexRoute component={RequiresAuth(AccountManagement) }/>
<Route path="/user/account/:userid" component={AccountManagement} />
</Route>
所以阅读文档,我假设我的道具将有一个用户 ID,如果存在,它将覆盖我的默认用户。
问题:这种方法正确吗?路由处理?
如果我在路线上传递了一个用户 ID 参数,我该如何继续加载用户信息以及在哪里?我看到它的方式,我需要调度一个动作,但我不确定在哪里设置 state ,如果在商店或组件上。
另外,我将在哪里加载我的用户信息?(想到构造函数)......还是应该在 WillMount/WillReceiveProps 中?
谢谢你。