linux5620207 2017-12-08 01:31 采纳率: 5.3%
浏览 1095

redux中的一个问题,求教

Redux官方案例shopping cart中,src/actions/index.js文件

 export const getAllProducts = () => dispatch => {
    shop.getProducts(products => {
        dispatch(receiveProducts(products))
    })
}
export const addToCart = productId => (dispatch, getState) => {
    if (getState().products.byId[productId].inventory > 0) {
        dispatch(addToCartUnsafe(productId))
    }
}

对于getAllProducts函数的调用我理解了。getAllProducts()的执行结果虽然是个函数,但因为有引用的redux-thunk,所以store.dispatch()的参数可以是getAllProducts()所生成的函数。

 //src/index.js
import thunk from 'redux-thunk'
import { getAllProducts } from './actions'
store.dispatch(getAllProducts())

但是对于addToCart 函数的调用,我不太理解

 import { addToCart } from '../actions'
const ProductsContainer = ({ products, addToCart }) => (
  <ProductsList title="Products">
    {products.map(product =>
      <ProductItem
        key={product.id}
        product={product}
        onAddToCartClicked={() => addToCart(product.id)} />
    )}
  </ProductsList>
)

addToCart是在点击事件的处理函数中,addToCart(product.id)的执行结果是个函数。但和getAllProducts不同,这个生成的函数并不是store.dispatch()的参数,那么这个函数是如何执行的呢 ?

  • 写回答

1条回答

  • devmiao 2017-12-11 16:11
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题