reactjs - 如何使用 React Router 访问 Redux 存储?
问题描述
目前在我的应用程序中,我有多个使用 React Router 的路由,这些路由封装在 Redux 提供程序中。
提供者
<Provider store={store}>
<Router>
<Route exact path ="/" component = {LoginPage}></Route>
<Route exact path="/login" component ={LoginPage}/>
<Route path ="/change" component={MasterPage}/>
<Route path="/change/form" component={ChangeForm}/>
<Route path="/change/table" component={ExpandTable} />
</Router>
</Provider>
就目前而言,我很困惑我应该如何传递/访问组件中商店的状态。
我真正需要存储的唯一状态是用户登录的当前状态,并希望使用它来更改在其他路由上呈现的内容。
减速器
我有一个减速器,看起来像:
export default (state = {}, action) => {
switch (action.type) {
case 'SIMPLE_ACTION':
return {
loggedIn: action.loggedIn,
User: action.User,
Group: action.Group
}
default:
return state
}
}
行动
还有一个看起来像的动作
export const simpleAction = () => dispatch => {
dispatch({
type: 'SIMPLE_ACTION',
payload: data
})
}
现在我正在假设将它们连接到商店使用
export default connect(mapStateToProps, mapDispatchToProps)(LoginForm);
将允许我访问该组件中的商店,但似乎情况并非如此。
对于如何访问组件内的存储状态以及如何正确编写动作/reducer 来更改此状态,我有点困惑。
解决方案
所以我发现我哪里出错了,我需要使用以下方法将道具传递给路线:
render={(props) => <LoginPage {...props} login={store.getState()} />}>
在我的 configureStore() 中,我传递的是 rootReducer 而不是我制作的简单减速器。
推荐阅读
- youtube-api - iframe 嵌入的 YouTube 播放器 API 参考给出奇怪的错误
- powershell - 将目录附加到 UNC 路径
- x86 - 为什么只有在存在存储初始化循环时才计算用户模式 L1 存储未命中事件?
- java - 投射到客户时出现条纹 Java API Webhook 错误
- flask-appbuilder - Flask appbuilder 大型应用程序
- java - 调用 Driver#connect 时出错,并且无法创建与数据库服务器的连接
- javascript - 如何使用 lodash 根据值对嵌套数组进行排序?
- fonts - 无法从 Windows 10 中删除 Google 字体
- c# - 试图理解函数之间的 C#、WPF 和用户输入
- javascript - 选择字段中的默认值