【发布时间】:2021-11-05 13:45:46
【问题描述】:
我在理解这个 productListCreator 语法时遇到了一些问题。使用 thunk,我正在遵循的教程说 thunk 允许我们在函数中编写异步函数。
productListCreator 是一个以 dispatch 作为参数返回异步函数的函数。
但是当你使用调用/将它与 dispatch(productListCreator()) 一起使用时,我很困惑。
productListCreator 没有传递分派参数。相反,它被传递到 useDispatch 钩子中。
所以对我来说,代码是 useDispatch(),它接受 productListCreator 函数并运行它,它没有为“dispatch”传递任何参数。
import axios from 'axios'
const productListCreator = () => async(dispatch) => {
try {
dispatch({
type: 'PRODUCT_LIST_REQUEST'
})
const { data } = await axios.get('/api/products')
dispatch({
type: 'PRODUCT_LIST_SUCCESS',
payload: data
})
} catch (error) {
dispatch({
type: 'PRODUCT_LIST_ERROR',
payload: error.message
})
}
}
export default productListCreator
const dispatch = useDispatch()
// Retrieve all products at reload
useEffect(()=>{
dispatch(productListCreator())
},[])
【问题讨论】:
标签: reactjs redux react-redux redux-thunk