簡體   English   中英

為什么我的 useState 沒有更新值?

[英]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.

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