繁体   English   中英

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

[英]How do I create dynamic array in typescript?

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

const display = [
    { id: 1, displayName: "Abc1" },
    { id: 2, displayName: "Abc2" },
    { id: 3, displayName: "Abc3" }
]

我尝试了以下代码

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

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

SetDisplay(display.push(createData(1, "Abc1")))

但不能将数据推送到变量display中。 得到像这样的错误

Argument of type '{ id: number; result: string; }' is not assignable to parameter of type 'never'.

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

你不应该直接改变状态。

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

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

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

将类型添加到useState

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM