如果第二個 setState 鉤子依賴于你的第一個鉤子首先改變,我如何在反應中實作這個簡單的邏輯?在此示例中,第一個 setState 值在運行第二個 setState 之前更新得不夠快。我曾嘗試將第二個置于超時狀態,并將其置于第一個的回呼函式中。沒有成功。useEffect 可能會解決這個問題,但在這個特定的情況下,我只需要在第一個呼叫 useEffect 而不是每次有狀態更改時呼叫。讓我知道你的想法。
function blah(arg) {
if (condition) {
setState(arg)
}
setState(state 1)
}
uj5u.com熱心網友回復:
React 的 State 并不意味著作為變數作業。當您呼叫 時setState,您只是告訴代碼它應該在組件的下一次渲染中使用什么值。它永遠不會立即設定值。
如果您需要它充當變數,只需使用變數并setState在最后呼叫一次。
function blah(arg) {
let aux = state;
if (condition) {
aux = arg;
}
setState(aux 1);
}
uj5u.com熱心網友回復:
你需要使用 useEffect 鉤子:
const [state, setState] = useState();
useEffect(() => {
// get executed whenever state is changed
}, [state])
function blah(arg) {
if (condition) {
setState(arg)
}
}
uj5u.com熱心網友回復:
首先加載函式
import React, { useState, useEffect } from 'react';
然后
const [ListValue, setListValue] = useState([]);
useEffect(() => {
console.log(ListValue)
}, [])
function blah(arg) {
if (condition) {
setListValue(arg)
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/408299.html
標籤:
