在Redux中使用“@@ redux / init”初始化状态问题

时间:2017-04-25 18:52:06

标签: initialization redux state

我有一个减速器如下

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”和其他东西......

我错过了什么?

感谢

1 个答案:

答案 0 :(得分:2)

这是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/中,并且在调用currentLink之后它按预期工作('Main'createStore