【发布时间】:2021-04-07 05:36:53
【问题描述】:
如果 React.useState 包含数组,如何使用 Promise 函数更新 State。 我写了我尝试做的简化示例
function md5(file: any, base64?: boolean): Promise<unknown> {
// return new Promise((resolve, reject) => { ...
return null;
};
const [state, setState] = useState(
[...Array(10).keys()].map(el => {
return { name: `name${el}`, file: `file${el}`, hash: "" };
})
);
state.forEach(el => {
md5(el.file).then((hash: string) => {
const newState = [
...state,
{
name: el.name,
file: el.file,
hash,
},
];
// console.log(state); == always not uptated
setState(newState);
});
});
如果我尝试使用 map 作为数组函数返回的不是哈希而是 Promise
【问题讨论】:
标签: arrays reactjs typescript use-state