我有一个如下的 reducer
const TopLinkReducer = (state = {'currentLink':'Main'}, action) => {
switch (action.type) {
case 'switchTopLink':
return Object.assign({}, state, {
currentLink: action.id
})
default:
return state
}
}
export default TopLinkReducer
我的目标是提供一个初始状态为 {'currentLink':'Main'} 但我希望最初应该传入 {'currentLink':'Main'} 但我得到了“@@redux/init”还有其他东西...
我错过了什么?
谢谢
最佳答案
这是 redux 的默认行为(参见 https://github.com/reactjs/redux/blob/master/src/createStore.js#L242 )。创建存储后,将调度 init-action(类型 @@redux/init
)来检索初始状态。
您的 reducer 应该通过仅返回未更改的状态来处理未知的@@redux/init
操作。
您的示例中的代码看起来正确,我将其输入到此 jsfiddle 中:https://jsfiddle.net/v1kvcjbu/46/它按预期工作(在调用 createStore
后,currentLink
是 'Main'
)。
关于initialization - Redux 中的初始化状态问题为 "@@redux/init",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43618737/