簡體   English   中英

無法在React.FC中使用UseEffect設置狀態

[英]Cant set state using UseEffect in React.FC

我有一個正在進行API調用的反應功能組件。 在撥打電話時肯定會收到回復。 我試圖將數組保存到一個狀態,以便它可以檢索並與其他子組件一起使用。 當我在保存之前在控制台內登錄日志時,我得到:

console.log(response.data)我得到[{},{}]

我的代碼是

const [helpFiles, setHelpFiles] = useState<HelpDTO[]>([]);

    useEffect(() => {
        helpApi.getHelpFiles().then((response) => {
            if (response.status !== 200) return;
            console.log(response.data)
            setHelpFiles(response.data.data);
        });
    })

response.data.data未定義,但如果我嘗試保存response.data則會拋出錯誤:

Argument of type 'HelpGetResponse' is not assignable to parameter of type 'SetStateAction<HelpDTO[]>'.
  Type 'HelpGetResponse' is not assignable to type '(prevState: HelpDTO[]) => HelpDTO[]'.
    Type 'HelpGetResponse' provides no match for the signature '(prevState: HelpDTO[]): HelpDTO[]'.

所以我必須將其保存為response.data.data

但是它在保存時會出現未定義的...

我不知道如何正確保存響應...

嘗試使用空數組初始化狀態。

const [helpFiles, setHelpFiles] = useState([]);

控制台僅記錄響應並檢查控制台。 找到響應的哪個部分正在保存您需要的數組。

暫無
暫無

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

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