3 回答

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
在性能方面,您不應(yīng)該調(diào)用setState每次迭代。您應(yīng)該使用最終數(shù)組設(shè)置狀態(tài)。
const sessionToState = (session) => {
setLinksArray(
session.map(sessionItem => ({url: sessionItem}))
);
}
...或者如果您也想保留舊項(xiàng)目,則應(yīng)使用setState內(nèi)的函數(shù)進(jìn)行操作...
const sessionToState = (session) => {
setLinksArray(oldState => [
...oldState,
...session.map(sessionItem => ({url: sessionItem}))
]);
}

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊
從嵌套函數(shù)調(diào)用中調(diào)用狀態(tài)設(shè)置器時(shí),應(yīng)使用的函數(shù)更新形式setState
。在您的情況下,它將是:
setLinksArray(linksArray => [...linksArray, formattedArray[i]])
目前尚不清楚您遇到什么樣的問(wèn)題,但是上述修復(fù)程序?qū)⑹鼓馐芤馔鉅顟B(tài)的影響linksArray
。
這也適用于任何狀態(tài),不僅適用于數(shù)組。
添加回答
舉報(bào)