react-redux:reducer中返回的数组不更新

590 阅读1分钟

1、问题:使用react-redux时,某一个组件的reducer中,采用数组方法添加数据并返回后,页面不更新 image.png image.png image.png 2、原因: preState不是基本类型,是数组,由于preState在添加之前和添加之后是同一数组,地址相同,底层进行浅比较两者地址相同,页面就不进行更新。 redux中的reducer必须是一个纯函数。 纯函数:(1)概念:一类特别的函数: 只要是同样的输入(实参),必定得到同样的输出(返回) (2)必须遵守以下一些约束   1 不得改写参数数据 2 不会产生任何副作用,例如网络请求,输入和输出设备 3 不能调用Date.now()或者Math.random()等不纯的方法 3、解决: image.png image.png image.png