React下reducer中处理数组&&对象的赋值改动
2023-09-11 14:19:06 时间
(1)数组
reducer中处理数组数据的赋值
我初始化了一个字段data = [],在发起请求成功后,要将返回的list赋值给data, 这时候就有一个问题了, 因为我们都是通过Object.assign这种形式进行赋值的, 那么究竟我们要怎么将得到的数组赋给data呢?接下来我们就以具体的代码来看:
const initialState = { data: [] } export default function testFn(state = initialState, action){ switch(action.type){ case 'receive_data': let listData = [...action.payload,...state.data]; return Object.assign({}, state, { data: listData }) } }
好了, 如上所示, 主要利用es6的解构,从而将值赋值给listData
(2)对象浅拷贝Object.assign()
传入Object.assign()
方法实现该需求(正确的方式)
Object.assign({}, this.state.detail, { key: data })
针对该场景也可以采用深拷贝原对象,修改对应属性后,重新赋值给state中的原对象。
该方法在以上方法无法解决问题的前提下应用。
其他方案,可以利用JSON.parse(JSON.stringify())等等方案
.
相关文章
- 泛函编程(36)-泛函Stream IO:IO数据源-IO Source & Sink
- [Node.js]29. Level 6: Socket.io: Setting up Socket.io server-side & Client socket.io setup
- Ubuntu安装深度音乐&&深度影音
- generator & co & koa
- Custom tool error: Failed to generate code for the service reference ××××××. Please check other erro
- NHibernate could not get or update next value[SQL: ] 对象名 'hibernate_unique_key' 无效。
- ORA-06553:PLS-306:wrong number or types of arguments in call to ''
- POJ2429_GCD & LCM Inverse【Miller Rabin素数測试】【Pollar Rho整数分解】
- C#为null或Empty && &
- Android中Intent传递对象的两种方法:Serializable & Parcelable