选中复选框时将对象推送到数组中,并在 ReactJS 中未选中复选框时删除对象

Posted

技术标签:

【中文标题】选中复选框时将对象推送到数组中,并在 ReactJS 中未选中复选框时删除对象【英文标题】:Push object in array when checkbox is checked and remove object when checkbox is unchecked in ReactJS 【发布时间】:2021-12-14 22:10:15 【问题描述】:

我正在尝试实现一个功能,我想在用户检查对象时将其推送到数组中,如果用户取消选择它,则将其删除。我有一个菜单来收集用户的选择。我已经实现了代码,但它没有解决我的问题,有人可以帮我解决这个问题。谢谢

  const selectSingle = (id, item, index) => 
    const user = Cookies.get("user") && JSON.parse(Cookies.get("user"));
    let callScheduleIds = Object.assign([], allCallNotifications);

    if (callScheduleIds.findIndex((item) => item.order_id === id)) 
      callScheduleIds.push(
        order_id: id,
        phone_number: item.phone1,
        sender_id: user.user.id,
      );
     else 
      callScheduleIds.splice(callScheduleIds.indexOf(id), 1);
    
    setAllCallNotifications(callScheduleIds);
  ;

【问题讨论】:

【参考方案1】:

你可以使用Lodash来做到这一点。

 const selectSingle = (rowIndex, item) => 
    let callIds = Object.assign([], allCallNotifications)

    if (_.findIndex(callIds,  id: item.id ) === -1) 
      callIds.push(item)
     else 
      callIds.splice(_.findIndex(callIds,  id: item.id ), 1)
    

    setAllCallNotifications(callIds)
  

【讨论】:

以上是关于选中复选框时将对象推送到数组中,并在 ReactJS 中未选中复选框时删除对象的主要内容,如果未能解决你的问题,请参考以下文章

将复选框值推送到状态 onChange 的数组

将项目推送到数组并在同一请求中删除

如果选中,则反应复选框将值添加到数组

反应表单,提交对象,然后将其推送到数组

Javascript/jQuery - 将项目推送到数组并从数组中删除

在运行时将指针推送到向量 C++