第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

你能在useEffect中使用array.push嗎?反應(yīng)掛鉤

你能在useEffect中使用array.push嗎?反應(yīng)掛鉤

開(kāi)滿天機(jī) 2023-06-15 17:28:02
我正在嘗試找出一種將對(duì)象添加到我的數(shù)組中的方法。這是代碼。export default function DashboardTable(props) {    const { transactionData } = props;    const classes = useStyles();    const [transactionDataArray, setTransactionDataArray] = useState([])   useEffect(() => {    setTransactionDataArray(transactionDataArray.push(transactionData))  }, [transactionData])    console.log(transactionDataArray);transactionData 返回對(duì)象(對(duì)象的數(shù)量是可變的,具體取決于后端事務(wù)。)我想將對(duì)象添加到數(shù)組中,transactionDataArray但我不斷收到錯(cuò)誤消息transactionDataArray is not a function。我哪里錯(cuò)了?
查看完整描述

2 回答

?
12345678_0001

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);

查看完整回答
反對(duì) 回復(fù) 2023-06-15
?
慕尼黑8549860

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ù)組。


查看完整回答
反對(duì) 回復(fù) 2023-06-15
  • 2 回答
  • 0 關(guān)注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)