在我的react-redux应用程序中,mapStateToProps
显然对道具没有影响。我这样做:
this.props.dispatch(simClear());
console.log(this.props);
这是行动创造者:
export function simClear() {
return {type: 'SIM_CLEAR'};
}
......和减速器:
registerReducer('sim', function(state=initialState, action) {
switch (action.type) {
case 'SIM_CLEAR': return {...state, progs: []};
[...]
default: return state;
}
});
[...]
const registerReducer = function(id, reducer) {
reducers[id] = reducer;
}
const getCombinedReducers = function() {
return combineReducers(reducers);
}
mapStateToProps看起来像这样:
const mapStateToProps = (state) => {
return {
progs: state.sim.progs,
[...]
};
}
通过测试输出,我验证了创建和调度操作,调用reducer并返回更新状态,然后使用更新状态调用mapStateToProps
并返回预期对象({{1}是一个空数组)。这一切看起来都不错。
然后,控制台输出旧道具(旧值为progs
)。为什么???
我自己的代码中没有异步,progs
中的测试输出在mapStateToProps
之前打印。