如何通过useState和Typescript使用动态属性

时间:2019-12-17 14:01:16

标签: reactjs typescript

在我的应用程序中,我确实获得了API响应,并通过数组映射显示了约100个结果。对于每个结果,用户必须添加一些数字。现在,我正在工作useState,它需要一个初始值。而且我有一个useState的接口,但不知道如何正确利用setData来添加/更新值。

欢迎任何想法:)

interface IData {
    [key: string]: number
}

const [data, setData] = useState<IData[]>([]);

function addData() {
    setData([...data, //how to add new/update]);
}

1 个答案:

答案 0 :(得分:1)

interface IData {
    [key: string]: number
}
const [data, setData] = useState<IData[]>([]);
function addData(el: IData) {
    setData([...data, el]);
}

函数addData正在使用传播运算符...data复制先前的状态,并在末尾添加新元素。

我为此函数el: IData设置了参数,但是也可以从词法范围中获取。但是通过这种方式,您可以调用addData({a: 1})并将元素添加到状态中。