反应为什么我得到 Uncaught (in promise) TypeError:无法读取未定义(读取“slice”)错误的属性?

React Why I am getting Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'slice') Error?

提问人:user 提问时间:10/10/2023 更新时间:10/10/2023 访问量:56

问:

我可以毫无问题地删除 dataValues,但是当我尝试删除 dataCategories 时,我收到错误 我尝试删除的数据对于 dataValues 和 dataCategories 都是同一类型的;Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'slice').

datasetX: ['var1Value']
datasetY: ['meas1Value']
yAxisData: Array(1)
    0: (5) [2, 10, 4, 20, 8]
xAxisData: Array(1)
    0: (5) [5, 8, 10, 15, 20]

这是我的删除功能;

  const removeThisGroup = (itemToRemove) => {
    const chart = findChartByType(chartData, itemToRemove.chartName);
    const groupId = itemToRemove.id;
    const type = itemToRemove.type;

    if (type === 'dataValues') {
      const indexToRemove = chart.dataValues.findIndex((inputGroup) => inputGroup.key === groupId);

      if (indexToRemove !== -1) {
        chart.data[0].datasetY.splice(indexToRemove, 1);
        chart.data[0].yAxisData.splice(indexToRemove, 1);
      }

      chart.dataValues = chart.dataValues.filter((inputGroup) => inputGroup.key !== groupId);
    } else if (type === 'dataCategories') {

      const indexToRemove = chart.dataCategories.findIndex((inputGroup) => inputGroup.key === groupId);

      if (indexToRemove !== -1) {
        chart.data[0].datasetX.splice(indexToRemove, 1);
        chart.data[0].xAxisData.splice(indexToRemove, 1);
      }
      

      chart.dataCategories = chart.dataCategories.filter((inputGroup) => inputGroup.key !== groupId);
    }

    const chartIndex = chartData.findIndex((c) => c.chartName === chart.chartName);
    const updatedChartData = [...chartData];
    updatedChartData[chartIndex] = chart;

    setChartData(updatedChartData);
  };

我检查了 和 值,它们是正确的。indexToRemovechart.data[0].datasetXchart.data[0].xAxisData

JavaScript 切片 拼接

评论

1赞 Kaddath 10/10/2023
你能准确地回答哪一行引起错误的问题吗?这也是一个错别字,你的错误说,而代码中有?..slicesplice
0赞 Andy 10/10/2023
或者,这是正确的代码吗?
0赞 user 10/10/2023
@Kaddath我按原样分享了错误和我的代码。我在代码中使用了拼接,而不是切片,但我收到此错误。
0赞 Kaddath 10/10/2023
错误日志堆栈应指示发生错误的行号。它可以位于此代码调用的函数中。该错误表示它发生在 promise 中,而我们在问题的代码中没有任何 promise

答: 暂无答案