Redux官方案例shoppingcart中,src/actions/index.js文件exportconstgetAllProducts=()=>dispatch=>{shop.getProducts(products=>{dispatch(receiveProducts(products))})}exportconstaddToCart=productId=>(dispatch,getState)=>{if(getState().products.byId[productId].inventory>0){dispatch(addToCartUnsafe(productId))}}对于getAllProducts函数的调用我理解了。getAllProducts()的执行结果虽然是个函数,但因为有引用的redux-thunk,所以store.dispatch()的参数可以是getAllProducts()所生成的函数。//src/index.jsimportthunkfrom'redux-thunk'import{getAllProducts}from'./actions'store.dispatch(getAllProducts())但是对于addToCart函数的调用,我不太理解import{addToCart}from'../actions'constProductsContainer=({products,addToCart})=>( {products.map(product=>key={product.id} product={product}onAddToCartClicked={()=>addToCart(product.id)}/>)})addToCart是在点击事件的处理函数中,addToCart(product.id)的执行结果是个函数。但和getAllProducts不同,这个生成的函数并不是store.dispatch()的参数,那么这个函数是如何执行的呢?
RISEBY
相关分类