mapDispatchToProps メソッド内の状態にアクセスする 質問する

mapDispatchToProps メソッド内の状態にアクセスする 質問する

私はreduxを使ってコンテナコンポーネントを書いており、実装はmapDispatchToProps次のようになります。

const mapDispatchToProps = (dispatch, ownProps) => {
    return {
        onChange: (newValue) => {
            dispatch(updateAttributeSelection('genre', newValue));
            dispatch(getTableData(newValue, ownProps.currentYear));
        }
    }
}

問題は、getTableData を取得するには、他のコンポーネントの状態が必要であることです。このメソッドで状態オブジェクトにアクセスするにはどうすればよいでしょうか?

ベストアンサー1

getStateredux-thunk を使用すると、 内で関数を定義するのではなく、にアクセスできる別のアクション作成関数を作成できますmapDispatchToProps

function doTableActions(newValue, currentYear) {
    return (dispatch, getState) => {
        dispatch(updateAttributeSelection('genre', newValue));
        let state = getState();
        // do some logic based on state, and then:
        dispatch(getTableData(newValue, currentYear));
    }
}


let mapDispatchToProps = (dispatch, ownProps) => {
    return {
        onChange : (newValue) => {
            dispatch(doTableActions(newValue, ownProps.currentYear))
        }
    }
}

これらを整理する方法はいくつかありますが、このような方法ならうまくいくはずです。

おすすめ記事