簡體   English   中英

如何將 useEffect 用於沒有依賴性的 useState 變量?

[英]How to use useEffect for a useState variable that has no dependency?

我正在創建一個 React 表單,該表單在本地 state 中存儲了新產品列表,即

const [listItem, setListItem] = useState([]);

我已經提交處理程序,其中我 append 新值喜歡 -

const handleAddProduct = (data) => {
  setListItem ([...listItem], data)
  console.log('ListItems-', listItem); // my console log doesn't update state but in react debugger tool I do see it's updated.
}

如何使用 useEffect 使其始終更新 state? PS - 數據不是本地 state,它被限制在某個塊中。

State 更新是異步的,不會立即反映。 只有在下一個周期。 這就是為什么您可以簽入 useEffect 的原因:

useEffect(() => {
console.log(listItem);
},[listItem]);

State 正在正確更新。

與問題無關,但是,如果您要添加到數組中,您可能需要這樣做:

const handleAddProduct = (data) => {
setListItem ([...listItem, data]);
}

由於 Reactjs 的更新批處理,您無法在更新后立即在事件處理程序中看到更新的 state

如果你想看到你的價值變化,把它放在你的組件的 return function 之前:

是這樣的:

const handleAddProduct = (data) => {
    setListItem ([...listItem], data)
}

console.log('ListItems-', listItem);

return (
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM