2 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
是的,您可以在 useEffect 中使用推送,但不能在狀態(tài)上使用。反應(yīng)狀態(tài)不能直接改變。作為一個(gè)狀態(tài),您不能直接推送或編輯狀態(tài)數(shù)據(jù)transactionDataArray。但是借助setTransactionDataArray功能,您可以更改/設(shè)置狀態(tài)值。因此,要向舊狀態(tài)添加新值,您必須解構(gòu)舊狀態(tài)并添加新值,如下所示
setTransactionDataArray([...transactionDataArray, transactionData])
或者您可以像下面那樣通過(guò)創(chuàng)建新變量分配狀態(tài)值然后將新值推送到變量并最后設(shè)置狀態(tài)
const data = transactionDataArray;
data.push(transactionData);
setTransactionDataArray(data);

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
要將數(shù)據(jù)添加到您的本地狀態(tài),您不必使用推送,而只需使用“setTransactionDataArray”,因?yàn)檫@是將數(shù)據(jù)添加到狀態(tài)的函數(shù)。
所以在你的useEffect
useEffect(() => { setTransactionDataArray(transactionData) }, [transactionData])
或者,如果您想要一個(gè)包含數(shù)據(jù)的數(shù)組,那么稍后將該數(shù)組添加到狀態(tài),而不是您應(yīng)該聲明一個(gè)數(shù)組并向其中添加數(shù)據(jù)。然后當(dāng)工作完成時(shí),您可以在狀態(tài)中添加該數(shù)組。
添加回答
舉報(bào)