首页 > 解决方案 > 为什么findIndex后值变回原来的值?

问题描述

您好我正在尝试更新该项目的价值。项目数据来自 redux 存储并显示在页面上

这是数据在此处输入图像描述

所以我现在将尝试编辑项目的值。编辑后保存我控制台注销值。这是代码

const save = async (key) => {
  try {
    const row = await this.formRef.current.validateFields();
    // ============================ i change here ===============
    const newData = [...data];
    console.log(newData)
    const index = newData.findIndex((item) => key === item.key);
    // ============================ ===============
    console.log(index)
    console.log(newData)
    console.log(newData[index])
    // this.props.updateItem(newData[index])
    // ============================ ===============
    if (index > -1) {
      const item = newData[index];
      newData.splice(index, 1, { ...item, ...row });
      this.setState({
        data: newData,
        editingKey: "",
      });
    } else {
      newData.push(row);
      this.setState({
        data: newData,
        editingKey: "",
      });
    }
  } catch (errInfo) {
    console.log("Validate Failed:", errInfo);
  }
};

如您所见,有很多console.log。为了让我更新项目,我需要找到我更新的项目的索引。在那里你可以看到有一行代码可以找到索引。

当我控制台记录新数据时。数据已更新,但当我控制台日志(newData [index])时,值将更改回旧值。

这是图像

在此处输入图像描述

有人可以告诉我为什么将值更改回旧值。我该如何纠正这种行为

标签: javascriptreactjsredux

解决方案


推荐阅读