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