reactjs Props数据在React中按钮点击时更新

e0uiprwp  于 2023-05-28  发布在  React
关注(0)|答案(1)|浏览(134)

下面是我的组件,当searchItem()被执行时,props数据被更新。我不明白为什么会这样。如何解决此问题?

const DefaultTabGroup = ({data}) => {

const [res , setRes] = useState({});

useEffect(() =>{
   setRes(data);
},[data]);

const searchItem = () =>{
    let transData = [];
    res.map((d) =>{
       let a = d;
       a.connectors = [];
       transData.push(a);
    });
};

//code.....

}
export default DefaultTabGroup;
afdcj2ne

afdcj2ne1#

你不应该直接在React(Here is an answer in stackoverflow about that)中改变/改变状态。

import React, { useState, useEffect } from 'react';

const DefaultTabGroup = ({ data }) => {
  const [res, setRes] = useState([]);

  useEffect(() => {
    setRes(data);
  }, [data]);

  const searchItem = () => {
    const transData = res.map((d) => {
      const a = { ...d }; // Create a copy of the object
      a.connectors = []; // Modify the copied object
      return a;
    });

    // code ...
    setRes(transData);
  };
};

export default DefaultTabGroup;

你应该创建一个新的数组“transData”并更新状态。

相关问题