![](/img/trans.png)
[英]comparing and Copying an content of a array into another array by adding a new object into an existing array using angular js
[英]Adding new object in array in existing array
我使用钩子和 es6 在我的反应应用程序中具有 CRUD 功能。 我也在使用 AntDesign 列表组件。 在我的添加function中,第一次添加后,预计会被添加到列表中。
但是在创建另一个之后,它只是替换了现有的数组。 它没有像索引 1 那样添加。它始终是索引 0。
这是我的代码
const leaveTypeList = [];
const [isLeaveType, setLeaveType] = useState(leaveTypeList);
useEffect(() => {
setLeaveType(leaveTypeList);
}, [setLeaveType]);
const payload = {
leaveTag: values.leaveTag,
leaveTagColor: values.leaveTagColor,
hexCode: state.tagColor,
dateCreated: formatLeaveTypeDate,
};
leaveTypeList.push(payload);
setLeaveType(leaveTypeList);
嘿,因为您需要向数组添加一个新项目,所以不需要 useEffect 挂钩
const leaveTypeList = [];
const [isLeaveType, setLeaveType] = useState(leaveTypeList);
const payload = {
leaveTag: values.leaveTag,
leaveTagColor: values.leaveTagColor,
hexCode: state.tagColor,
dateCreated: formatLeaveTypeDate,
};
setLeaveType([...isLeaveType,payload]);
您可以简单地使用 setter 设置新的 state 通过添加新的有效负载来更新现有数组。
您应该通过isLeaveType.push(payload)
推送新数据。
还,
useEffect(() => {
setLeaveType(leaveTypeList);
}, [setLeaveType]);
对我来说没有意义。 由于setLeaveType
是isLeaveType
的设置器,因此效果没有理由依赖它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.