如何将数组克隆到 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>
  );
}