设置redux状态在硬刷新后不起作用

时间:2018-03-12 00:12:40

标签: reactjs redux react-redux local-storage

我通过localStorage中的值设置我的redux状态。当我导航到我的页面时,这很好用。但是,当我进行硬刷新时,状态永远不会被设置,尽管localStorage中的值被传递下去。

这就是我的代码:

setMyReduxState

有什么想法吗?

编辑:只是一个小小的补充来简化问题:我也尝试过将字符串直接发送到componentWillMount() { this.props.setMyReduxState('some string!') } 函数,没有localStorage,状态仍未设置。所以基本上是这样的:

const SET_MY_REDUX_STRING = 'admin/users/SET_MY_REDUX_STRING'


const defaultState = {
  myReduxState: ''
}

export function setMyReduxState (value) {
  return {
    type: SET_MY_REDUX_STRING,
    myReduxState: value
  }
}

export default function reducer (state = defaultState, action = {}) {
  switch (action.type) {
    case SET_MY_REDUX_STRING:
      return Object.assign({}, state, { myReduxState: action.myReduxState })
    default:
      return state
  }

根据我的理解,每次设置redux状态时,组件都应该重新绘制,这在硬刷新时不会发生。是否有任何理由不正确地做这件事或什么?

Edit2:在需要的情况下包括我的动作创建者和减速器:

{{1}}

}

1 个答案:

答案 0 :(得分:0)

使用redux时需要遵循的一些清单 -

  1. 您是否正在调度一个返回带有“类型”和数据的对象的动作创建者?这里'type'是强制性的。
  2. 您的减速机是否使用收到的更新数据返回状态?
  3. 确保不改变reducer中的状态。始终使用{... state,someKey:someValue}