首页 > redux状态变化渲染时使用splice对状态数组操作时并不会触发view渲染

redux状态变化渲染时使用splice对状态数组操作时并不会触发view渲染

场景:redux状态中存在一个数组[],我想对数组中的item进行添加或修改,修改完成之后希望页面能显示出来,可是使用splice进行操作,无论如何都不会触发页面重新渲染,可是state确实发生了变化,代码如下:

case SUCCESS_ADDKEY:
  let data = state.keys;
  state.keys.splice(0, 0, action.payload);
  return Object.assign({}, state, {
    keys: data
  });
  break;

state发生变化,view未渲染

通过如下改写就能够渲染view

case SUCCESS_ADDKEY:
  let data = [action.payload, ...state.keys];
  return Object.assign({}, state, {
    keys: data,
  });
  break;      

实在不明白原因,求解。


state 必须为新的对象,不推荐通过修改原状态来实现

【热门文章】
【热门文章】