如何将数组克隆到 useState 钩子中
How to clone an array into useState hook
这可能是个愚蠢的问题,但是,因为这个问题,我面试失败了。
有谁知道如何将一组数字克隆到状态中。
我见过物体的例子。
我试过传播运算符没有运气,试过 JSON.parse 没有运气。
const [Sorted,setSorted]=useState([])
let a=[1,3,5]
let b=[2,4,6]
function sorts(){
let c=[...a,...b];
return(c.sort());//it will return[1,2,3,4,5,6]
}
useEffect(()=>{
let sortedArr=sorts();
setSorted([...sortedArr]);//No use
setSorted(JSON.parse(JSON.stringify(sortedArr));//No use
},[])
//Printing using Map
请忽略任何打字错误。
谢谢
我已经尝试在 codesandbox 中复制错误,唯一导致错误的是缺少括号。但是,您的代码确实很复杂,而且不必要地冗长。这更干净并且有效:https://codesandbox.io/s/flamboyant-pasteur-c9c83?file=/src/App.js
通过稍微简化您的代码(主要是从代码主体中删除排序函数并清理 useEffect 挂钩),我能够让它工作
import { useState, useEffect } from "react";
function sorts(firstArr, secondArr) {
let c = [...firstArr, ...secondArr];
return c.sort();
}
export default function App() {
const [Sorted, setSorted] = useState([]);
const a = [1, 3, 5];
const b = [2, 4, 6];
useEffect(() => {
let sortedArr = sorts(a, b);
setSorted([...sortedArr]);
}, []);
return (
<div className="App">
<h2>Sorted Array Below</h2>
<p>{JSON.stringify(Sorted)}</p>
</div>
);
}
这可能是个愚蠢的问题,但是,因为这个问题,我面试失败了。 有谁知道如何将一组数字克隆到状态中。 我见过物体的例子。 我试过传播运算符没有运气,试过 JSON.parse 没有运气。
const [Sorted,setSorted]=useState([])
let a=[1,3,5]
let b=[2,4,6]
function sorts(){
let c=[...a,...b];
return(c.sort());//it will return[1,2,3,4,5,6]
}
useEffect(()=>{
let sortedArr=sorts();
setSorted([...sortedArr]);//No use
setSorted(JSON.parse(JSON.stringify(sortedArr));//No use
},[])
//Printing using Map
请忽略任何打字错误。 谢谢
我已经尝试在 codesandbox 中复制错误,唯一导致错误的是缺少括号。但是,您的代码确实很复杂,而且不必要地冗长。这更干净并且有效:https://codesandbox.io/s/flamboyant-pasteur-c9c83?file=/src/App.js
通过稍微简化您的代码(主要是从代码主体中删除排序函数并清理 useEffect 挂钩),我能够让它工作
import { useState, useEffect } from "react";
function sorts(firstArr, secondArr) {
let c = [...firstArr, ...secondArr];
return c.sort();
}
export default function App() {
const [Sorted, setSorted] = useState([]);
const a = [1, 3, 5];
const b = [2, 4, 6];
useEffect(() => {
let sortedArr = sorts(a, b);
setSorted([...sortedArr]);
}, []);
return (
<div className="App">
<h2>Sorted Array Below</h2>
<p>{JSON.stringify(Sorted)}</p>
</div>
);
}