如何在React Js中转换(切片)另一个Usestate后将转换后的数据保存为Usestate常量



嗨,专家们,我是新手,一直在处理以下问题。我有一个Getfulldata函数,在其中,我使用setFulltoursdata(copy(方法来获取纯数据。

const [Fulltoursdata, setFulltoursdata] = useState([]);
const [Trimmedtoursdata, setTrimmedtoursdata] = useState([]);    
useEffect(() => {
// fetchData();
Getfulldata();
}, []);
const Getfulldata = async () => {
await fetch("https://course-api.com/react-tours-project")
.then((response) => {
return response.json();
})
.then((reponsefulldata) => {
let copy = [...reponsefulldata];
console.log(copy);
setFulltoursdata(copy);
settoursdata([...reponsefulldata]);
setIsLoaded(true);
return reponsefulldata;
})
.then((dataobject) => {
const filteredTourinfo = dataobject.map((tour) => {
tour.info = tour.info.slice(0, 120) + "....";
return tour;
});
let Trimmedcopy = [...filteredTourinfo];
setTrimmedtoursdata([...filteredTourinfo]);
});
};

获取api数据。

.then((reponsefulldata) => {
let copy = [...reponsefulldata]; 
console.log(copy);
setFulltoursdata(copy);

尝试复制reponsefulldata
使用setFulltoursdata((设置Fulltoursda

return reponsefulldata;
})

之后,使用然后方法,我尝试使用slice方法更新一列,即每个数组对象中的信息。这需要设置为另一个状态对象,即Trimmedtoursdata。

.then((dataobject) => {
const filteredTourinfo = dataobject.map((tour) => {
tour.info = tour.info.slice(0, 120) + "....";
return tour;
});
let Trimmedcopy = [...filteredTourinfo];
setTrimmedtoursdata([...filteredTourinfo]); 

使用setTrimmedtoursdata((设置filteredTourinfo。因此设置Trimmedtoursdata不应影响Fulltoursdata。

谢谢!

所以这基本上是浅拷贝和深拷贝的概念。我使用以下内容创建了一个深度副本。

let Trimmedcopy=JSON.parse(JSON.stringfy(filteredTourinfo((;

最新更新