簡體   English   中英

在 React / Redux 中,如果一個函數組件正在使用 redux-thunk 調度一個函數,它如何設置IsLoading()?

[英]In React / Redux, if a function component is dispatching a function using redux-thunk, how can it setIsLoading()?

我認為我們使用 redux-thunk 的原因是我們可以在定義mapDispatchToProps()時分派一個函數。 (通常,通過讓actionCreator()返回一個函數)

但是,假設我們正在使用一個函數組件,當我們調度一個函數來加載數據時,似乎沒有辦法使用來自的setIsLoading()

const [isLoading, setIsLoading] = useState(false);

因為setIsLoading位於函數組件內部,而您不能在mapDispatchToProps()使用它?

似乎一種方法是使用

<button onClick={() => {setIsLoading(true); props.dispatchGetData(setIsLoading)}}>

首先是setIsLoading(true)並將setIsLoading傳遞給dispatchGetData()以便稍后在接收到數據或接收失敗時調用setIsLoading(false)

這是正確的方法還是正確的方法? 似乎我們也可以使用useEffect()並且我們可以直接執行fetch()並且不會調度任何函數,因此,不使用 redux-thunk?

您可以使用useEffect並檢查返回到組件的數據是否已更改。

像這樣的東西:

useEffect(() => { 
    setIsLoading(false);
}, [props.data])

暫無
暫無

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

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