bugfix> javascript > 投稿

私はこの投稿を読んでいて、彼が bindActionCreators を使用していないことに気付きました redux に付属のメソッド 、 何故ですか?

必要ないの?

ここに投稿があります:https://medium.com/@stowball/a-dummys-guide-to-redux-and-thunk-in-react-d8904a7005d3

使用すべきではないのに、なぜ存在するのですか?よくわかりません。

彼が投稿で言ったように私はやった:

function matchDispatchToProps(dispatch){
    return {
        fetchQp: (url) => dispatch(qpFetchData(url))
    };
}

bindActionCreators を使用してこのコントラを行うことの違いは何ですか ?

回答 2 件
  • 公式ドキュメントの状態:

    The only use case for bindActionCreators is when you want to pass some action creators down to a component that isn't aware of Redux, and you don't want to pass dispatch or the Redux store to it.

    あなたが言及した投稿についてはどうですか-その男は確かに彼のコンポーネントを Redux に接続します  -したがって、彼は bindActionCreators を使用しません  明示的に。

  • これらの例はすべて同等です。

    function mapDispatchToProps(dispatch) {
        return {
            fetchQp : (url) => dispatch(qpFetchData(url))
        }
    }
    function mapDispatchToProps(dispatch) {
        return bindActionCreators({fetchQp : qpFetchData}, dispatch);
    }
    const mapDispatchToProps = {
        fetchQp : qpFetchData
    }
    // in all three cases, used as:
    export default connect(mapStateToProps, mapDispatchToProps)(MyComponent);
    
    

    個人的には、3番目の形式(「オブジェクトの省略形」)を使用することをお勧めします。 connect の2番目の引数として、アクション作成者でいっぱいのオブジェクトを渡すだけです 、およびReduxは自動的に bindActionCreators を使用します  内部的に-別の mapDispatch を記述する正当な理由はありません  自分で機能します。

あなたの答え