[英]Why my useState is not updating the value?
我有一個從數據庫獲取值的 useState:
const [checklist, setChecklist] = useState(undefined);
我有這個條件,當發生時,我想改變 useState:
let newItems = [];
let newChecklist = {};
if (project?.analysisData?.actionPlan == "no") {
newItems = checklist?.items?.filter(
(item) => item.conformityStatus !== "initial_status"
);
newChecklist = { ...checklist, items: newItems };
}
請注意,這些項目已被過濾。
我正在嘗試使用 useEffect 更改 useState 的值:
useEffect(() => {
setChecklist(newChecklist);
}, []);
但由於某種原因它沒有改變..任何人都可以幫助我嗎? 太感謝了!
我創建了一個新的 useState:
const [changeChecklist, setChangeChecklist] = useState(true);
稱為 setTimeout,以在組件安裝后強制進行一些“更改”:
setTimeout(() => {
setChangeChecklist(false);
}, 550);
並通過更改我的新 useState 來調用 useEffect:
let newItems = [];
useEffect(() => {
if (project?.analysisData?.actionPlan == "no") {
newItems = checklist?.items?.filter(
(item) => item.conformityStatus !== "initial_status"
);
setChecklist({ ...checklist, items: newItems });
}
}, [changeChecklist]);
也許它不是最好的解決方案,但它是我想出的解決問題的方法:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.