我有这个plunkr here:
ReactDOM.render(
<ReactRedux.Provider store={store}>
<div>
<MyComponent/>
<button onClick={loadInitialValues} className="btn btn-default">
LOAD VALUES
</button>
</div>
</ReactRedux.Provider>,
document.getElementById('root')
);
单击“ LOAD VALUES ”按钮时,为什么我的React组件(MyComponent)没有更新?似乎一切都很好。调度操作,然后在我的reducer中查找操作“LOAD_VALUES
”并返回新值,但React Component不会更新并保持不变。
谢谢!
答案 0 :(得分:0)
var suaReducer = function(state = Immutable.Map({
modalProps: Immutable.Map({
editMode: false,
paymentType: Immutable.Map({})
})
}), action) {
switch(action.type) {
case LOAD_VALUES:
return state.merge({
modalProps: Immutable.Map({
editMode: true,
paymentType: Immutable.Map({
name: "TEST",
notes: "TEST",
amounts: [{
amount: 100,
year: 2017
}]
})
})
});
}
return state;
}
刚刚更改了switch
语句,而不是action
使用action.type
,因为action
是您要发送的对象({type: LOAD_VALUES}
)。
更新了您的plunker样本,使其看起来现在正常工作。