javascript - 如何找到我想要编辑的联系人 ID?

标签 javascript reactjs

我有一组联系人,需要找到他们的 ID,以便我可以专门编辑一个联系人。我似乎找不到该联系人的 ID。

const index = contactsEditedUpdated.findIndex(el => el.id === find);

这条线不起作用。我想将 el.id 分配给 idContact。

const editContact = (contactObj, find) => {
    fetch("http://localhost:4000/data", {
      contactObj,
      method: "POST",
      body: JSON.stringify(contactObj),
      headers: {
        "Content-Type": "application/json"
      }
    })
      .then(res => res.json())
      .then(res => {
        const contactsEditedUpdated = [...contactList];
        const index = contactsEditedUpdated.findIndex(el => el.id === find);
        contactsEditedUpdated[index] = find;
        setContactsEdited(contactList);
        console.log("Good job! u updated ur contact!", res);
      })
      .catch(error =>
        console.error("Uuuu, u messed up! could not update", error)
      );
  };

预期的结果应该是我得到了我想要编辑的元素的id。到目前为止,我只能获取通过表单输入的元素的 id。

最佳答案

首先,您应该阅读 SOLID 原则;特别是单一责任原则。 https://codeburst.io/understanding-solid-principles-single-responsibility-b7c7ec0bf80

您应该在单独的函数中执行以下操作 - 获取数据 - 搜索联系人ID - 更新数据

在数据操作中,您似乎将原始 contactList 传递给 setContactsEdited 函数,从而使您的 contactsEditedUpdated 变得无关紧要。

我很难判断您想用 contactsEditedUpdated 做什么。如果您需要更多帮助,您需要提供有关 contactList 来自何处以及它是什么类型的数据结构的更多信息/上下文。

关于javascript - 如何找到我想要编辑的联系人 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57671781/

相关文章:

javascript - React,有没有办法避免需要将 div 包裹在 div 中?

javascript - 在 IE11 中出现 Javascript 严重错误

javascript - 使用 GLFX.js 组合效果

javascript - 尝试将服务注入(inject)组件

javascript - 为什么在 FF 中不触发复选框的单击处理程序,当它的标签被 shift 单击时?

javascript - 通过socket从js客户端向py服务器发送数据不起作用

reactjs - UI 框架与样式组件在 React 中从头开始制作 UI?

javascript - 为什么 setState 在 React 功能组件中不起作用

javascript - 在 session 期间使用 React 存储用户数据的最佳方式是什么?

javascript - 你能通过 Prop 将组件传递给 child 吗