Redux: bindActionCreatorsはオプションでアクションオブジェクトのリストを取得できますか?

作成日 2015年07月30日  ·  9コメント  ·  ソース: reduxjs/redux

コードには、バインドされたアクションの複数のオブジェクトをコンポーネントに渡す場所がいくつかあります。 オプションでアクションオブジェクトのリストをbindActionCreatorsに渡すと便利です。

bindActionCreators([SomeActions, OtherActions], dispatch)

もちろん、重複するアクションは最後に処理されたアクションによって上書きされることに注意してください。

最も参考になるコメント

これは、ES7オブジェクトスプレッド提案で行うことができます。

bindActionCreators({ ...SomeActions, ...OtherActions }, dispatch)

または(バニラES6、 Object.assignポリフィルまたはバベルプラグインが必要)

bindActionCreators(Object.assign({}, SomeActions, OtherActions), dispatch)

または(ES5、 lodashを想定)

var assign = require('lodash/object/assign');

bindActionCreators(assign({}, SomeActions, OtherActions), dispatch)

全てのコメント9件

これは、ES7オブジェクトスプレッド提案で行うことができます。

bindActionCreators({ ...SomeActions, ...OtherActions }, dispatch)

または(バニラES6、 Object.assignポリフィルまたはバベルプラグインが必要)

bindActionCreators(Object.assign({}, SomeActions, OtherActions), dispatch)

または(ES5、 lodashを想定)

var assign = require('lodash/object/assign');

bindActionCreators(assign({}, SomeActions, OtherActions), dispatch)

ああ素晴らしい、それはさらに簡単です。 ありがとう!

🙌

これは役に立ちます! ありがとう!

とても助かりました! :star2:

@gaearonこれをbindActionCreators APIドキュメントのヒントセクションに追加する必要がありますか?

プルリクエストは大歓迎です:wink:
私は現在ドキュメントに積極的に取り組んでいないので、私の答えは同じです。「ドキュメントに何かを入れたい場合は、PRを送ってください」。

これが誰かに役立つかどうかはわかりませんが、アプリのアクションとreact-native-router-fluxのアクションを組み合わせようとしていたので、以下がうまくいきました。

import * as AppActions from './actions';
import { Actions } from 'react-native-router-flux';

function mapDispatchToProps(dispatch) {
  return { actions: {...bindActionCreators(AppActions , dispatch), ...Actions } };
}

これが誰かに役立つかどうかはわかりませんが、アプリのアクションとreact-native-router-fluxのアクションを組み合わせようとしていました。

react-native-router-fluxActionsはReduxとの共通点がないようで、おそらくmapDispatchToPropsに含めるべきではないため、これは少し混乱します。 コンポーネントで直接使用するだけです。

このページは役に立ちましたか?
0 / 5 - 0 評価