react.js - react-redux的state改变却没有重新渲染

查看:492
本文介绍了react.js - react-redux的state改变却没有重新渲染的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

let data = {
    list:[{
        key:0,
        name:"aaa",
        gender:1,
        birthday:"1999-07-23",
        hobby:'篮球'
    },
    {
        key:1,
        name:"bbb",
        gender:1,
        birthday:"1999-10-02",
        hobby:'链球'
    }]
}

const counter = (state = data, action) => {
    switch (action.type) {
          case "DELETE_MEMBER":
              state.list.splice(action.idx,1);
              console.log(state);
              return state;
        default:
          return state
  }
}

export default counter;

action.idx是删除的序号,我console出来发现state确实变了,但是却没有渲染

解决方案

state的引用没变,导致比较的时候前后state相等,所以没触发渲染。
redux是不可变数据的,每次数据变更需要返回一个新的数据。

这篇关于react.js - react-redux的state改变却没有重新渲染的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆