触发dva的dispatch后,组件视图未重新渲染

触发dva的dispatch后,组件视图未更新

  1. 使用dispatch方法后,正确调用model下的reducers的某个方法,但是组件更新React组件中的render()方法未重新渲染
    dispatch方法正常调用
    state已正确更新
    组件中也通过this.porps,正确获取到状态
    但是就是不触发更新
export default {
  namespace:'settingDrawer',
  state: {
    visible: false
  },
  reducers: {
    'visible'(state:any, { payload }) {
      state.visible  = payload.visible
      return state
    },
  },
}

原因:
state参数是引用类型,如果直接返回state,dva会认为没有修改state,所有不会刷新(同redux),正解代码

 reducers: {
   'visible'(state:any, { payload }) {
     let newState = {...state}
     newState.visible  = payload.visible
     return newState
   },
 },
发布了88 篇原创文章 · 获赞 3 · 访问量 5494

猜你喜欢

转载自blog.csdn.net/youlinhuanyan/article/details/103440007