2017-02-24 3 views
0

私はthis.props.dispatchと私自身の定義済みアクション作成者の両方を使用して、リアクションビューコンポーネントからアクションをディスパッチしたいと思っています。コンポーネントからthis.props.dispatchとその他のアクション作成者にアクセス

ただし、mapDispatchToPropsをconnect()に渡すとthis.props.dispatchにアクセスできません。

function mapDispatchToProps(dispatch) { 
    return bindActionCreators({ 
     updateRackGroup, 
     cloneRackGroup, 
     onSelectRack, 
     onCloneRack, 
     valRackChange, 
     valRackAdd, 
     onRackAction, 
     valRackUpdate, 
     dispatch 
    }, dispatch); 
} 

function mapStateToProps({ 
    tempRackStates, 
    rackGrpsAdded, 
    invalidFields 
}) { 
    return { 
     tempRackStates, 
     rackGrpsAdded, 
     invalidFields 
    } 
} 
export default connect(mapStateToProps, mapDispatchToProps)(RackgroupGenerator); 

私は「それが派遣以内の発送をラップ」として、それに満足していない:だから、これは私が思い付いた回避策があります。

このシナリオでは、生のディスパッチ方法にアクセスするための洗練された方法がありますか?

答えて

0

dispatch do bindActionCreatorsを渡す必要はありません。ただ、

function mapDispatchToProps(dispatch) { 
    const actionCreators = bindActionCreators({ 
     actionCreator1, 
     actionCreator2, 
    }, dispatch); 
    return { ...actionCreators, dispatch }; 
} 

// or without the additional assignment 
return { 
    dispatch, 
    ...bindActionCreators({ actionCreator1, actionCreator2 }, dispatch) 
}; 

はところで、私は確かにそれをテストしていないバインドされたアクションの作成者にそれをマージし、私も、私はそれが奇妙な行動につながることができると信じているので、あなたが「派遣で派遣をラップ」べきではないと思います不本意ながらアクションを複数回ディスパッチするなどの方法があります。

+0

ありがとうございました。 自分のアクションクリエイターとディスパッチ機能をオブジェクトに戻す限り。 –

関連する問題