最近のReact Reduxの書き方について質問がございます。
mapStateToPropsを切り出した方が良いのか、
それとも下記のコードように渡す方が良いのか、
質問の意図がよく理解出来ていませんが、どちらを選ぶかは「最近の書き方」がどうこうで考えることではないかと思います。
const mapStateToProps = (state, ownProps) => ({
isActive: ownProps.filter === state.visibilityFilter,
users: state.users
})
const mapDispatchToProps = (dispatch, ownProps) => ({
onClick: () => dispatch(setVisibilityFilter(ownProps.filter))
})
connect(mapStateToProps, mapDispatchToProps)(XYZ);
例えば、こう書くのか、
connect(
(state, ownProps) => ({
isActive: ownProps.filter === state.visibilityFilter,
users: state.users
}),
(dispatch, ownProps) => ({
onClick: () => dispatch(setVisibilityFilter(ownProps.filter))
}
)(XYZ);
このように書くのかの違いなだけですよね。
そして、後者はやはり、それぞれの関数内の記述量が増えた場合、読みづらかったり、扱いづらかったりするのではないでしょうか?connect()
を他の関数で更にラップすることも場合によっては有りますし、そうなると尚更そうなるかなと。
なので、短ければ後者でも良いのでしょうが、長い場合もあったり、短い場合もある訳で、それを考えると一貫性を保つために前者に統一しておくのが無難だとは思います。