第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

redux中的一個(gè)問題,求教

redux中的一個(gè)問題,求教

肥皂起泡泡 2019-05-24 11:09:13
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))}}對(duì)于getAllProducts函數(shù)的調(diào)用我理解了。getAllProducts()的執(zhí)行結(jié)果雖然是個(gè)函數(shù),但因?yàn)橛幸玫膔edux-thunk,所以store.dispatch()的參數(shù)可以是getAllProducts()所生成的函數(shù)。//src/index.jsimportthunkfrom'redux-thunk'import{getAllProducts}from'./actions'store.dispatch(getAllProducts())但是對(duì)于addToCart函數(shù)的調(diào)用,我不太理解import{addToCart}from'../actions'constProductsContainer=({products,addToCart})=>({products.map(product=>addToCart(product.id)}/>)})addToCart是在點(diǎn)擊事件的處理函數(shù)中,addToCart(product.id)的執(zhí)行結(jié)果是個(gè)函數(shù)。但和getAllProducts不同,這個(gè)生成的函數(shù)并不是store.dispatch()的參數(shù),那么這個(gè)函數(shù)是如何執(zhí)行的呢?
查看完整描述

2 回答

?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊

好問題,哈哈,因?yàn)槲乙矝]看懂,專門去查了下React-Redux源碼然后我們?cè)倏聪鹿俜椒独拇a中,最后的代碼:
exportdefaultconnect(
mapStateToProps,
{addToCart}
)(ProductsContainer)
mapDispatchToProps方法有三種可能:
方法。這個(gè)不用解釋,都看的懂
undefined。這個(gè)也不用解釋,組件內(nèi)會(huì)獲得dispatch方法,交給組件內(nèi)自己分發(fā)action。
對(duì)象。也就是我們遇到的場(chǎng)景,這個(gè)源碼中有特殊處理,把對(duì)象轉(zhuǎn)換成方案1了。
解釋完畢
                            
查看完整回答
反對(duì) 回復(fù) 2019-05-24
  • 2 回答
  • 0 關(guān)注
  • 481 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)