Ecmascript 6 无法从reducer更新redux存储
我似乎无法从reducer更新redux存储。状态是一个记录,它在图像中被很好地打印出来 此减速器运行:Ecmascript 6 无法从reducer更新redux存储,ecmascript-6,redux,react-redux,immutable.js,Ecmascript 6,Redux,React Redux,Immutable.js,我似乎无法从reducer更新redux存储。状态是一个记录,它在图像中被很好地打印出来 此减速器运行: const searchResultsMapRegion = (state = vepo, action) => { switch (action.type) { case 'UPDATE_SEARCH_PAGE_RESULTS_PAGE_MAP_REGION': { console.log(state.toJS()) const newState
const searchResultsMapRegion = (state = vepo, action) => {
switch (action.type) {
case 'UPDATE_SEARCH_PAGE_RESULTS_PAGE_MAP_REGION': {
console.log(state.toJS())
const newState = state.set('some', 555)
console.log(newState.toJS())
return newState
}
default:
return state
}
}
const rootReducer = combineReducers({
product: product,
searchResultsMapRegion: searchResultsMapRegion
})
export const rootEpic = combineEpics(
fetchCategoriesEpic,
getUserPositionEpic,
getUserLocationEpic,
getUserLocationFulfilledEpic
)
export const store = createStore(
rootReducer,
vepo,
composeWithDevTools(applyMiddleware(createEpicMiddleware(rootEpic)))
)
我还有其他的减速器作用于州的产品
部分,它们工作正常。为什么我不能对问题中所示的状态的部分采取行动
console.log的状态
位于减速器顶部:
console.log的newState
位于减速器内
console.log的状态
一旦减速器完成运行:
重新检查案例类型。这是指正确的大小写值吗?此外,需要从createStore中删除vepo
export const store = createStore(
rootReducer,
vepo,
composeWithDevTools(applyMiddleware(createEpicMiddleware(rootEpic)))
)
状态的值是多少?state.set
做什么并返回?@FelixKlingstate
是一个例子。我已经用toJS()
函数将其记录下来,以便很好地打印出来.set()
返回具有修改属性的记录的新副本。您使用的是内置的组合减速机,还是用于存储的?有关详细信息,请参阅。@MichaelPeyper我现在已经解决了这个问题。我的redux存储的初始状态具有不同于输入到CombineReducer
中的属性的属性名称。甚至不需要为createStore()
提供初始状态吗?我一直在用错误的值设置初始状态。@MichaelPeyper我现在看到设置初始状态是可选的。案例类型是正确的。也许我误解了你的意思,但是vepo
是整个应用程序的状态,它需要进入createStore
,而你在回答中把它留在了里面。rootReducer将拥有所有数据,只需要传递给createStore。