【发布时间】:2017-09-18 01:46:41
【问题描述】:
react 视图未更新(从未调用渲染),但调用了 reducer。
我有以下几点:
1)。反应视图:如果我需要显示“TodoList”或“HousingInfo”,我会阻止一个处于根状态的字段
export default class RightPane extends React.Component{
static contextTypes = {
store: React.PropTypes.object
}
render(){
let store = this.context.store;
let curPage = store.getState()["mainRightPanePage"].currentPage;
return (
<div>
{(store.getState()["mainRightPanePage"].currentPage==="TodoList") && <TodoList/>}
{(store.getState()["mainRightPanePage"].currentPage==="HousingInfo") && <HousingInfo/>}
</div>
)
}
}
2)。另一个组件中的动作调度
export default class LeftPane extends React.Component{
static contextTypes = {
store: React.PropTypes.object
}
handleink(pageId, e) {
e.preventDefault();
let store = this.context.store;
store.dispatch({'type':'switchPage', 'pageId':pageId});
...
}
3)。减速器:调用了以下减速器
const mainRightPanePage = (state = {'currentPage':'TodoList'}, action) => {
switch (action.type) {
case 'switchPage':
return Object.assign({}, state, {
currentPage: action.pageId
})
default:
return state
}
}
export default mainRightPanePage
我错过了什么?
谢谢
【问题讨论】:
-
你在哪里使用
store.subscribe()?或者您可以使用react-redux将存储数据连接到组件