如何在打字稿中创建动态数组?

spc*_*spc 1 javascript typescript reactjs

我想用以下格式在打字稿中创建动态数组

const display = [
    { id: 1, displayName: "Abc1" },
    { id: 2, displayName: "Abc2" },
    { id: 3, displayName: "Abc3" }
]
Run Code Online (Sandbox Code Playgroud)

我尝试过以下代码

const [display, SetDisplay] = useState([])

function createData(id: number, name: string) {
    return { id, name };
}

SetDisplay(display.push(createData(1, "Abc1")))
Run Code Online (Sandbox Code Playgroud)

但无法将数据推送到变量中display。出现错误,例如

Argument of type '{ id: number; result: string; }' is not assignable to parameter of type 'never'.
Run Code Online (Sandbox Code Playgroud)

任何解决此问题的信息都会有所帮助。

Max*_* G. 5

您不应该直接改变状态。

您可以直接执行 setState 并解构以前的数组以添加新数据。

您也可以按如下方式输入 setState<{id: number; name:string}>

const [display,setDisplay] = useState<{id: number; name:string}>([]);

function createData(id: number, name: string) {
  setDisplay((prev) => [...prev, { id, name } ]);
}
Run Code Online (Sandbox Code Playgroud)