私はreact-reduxを初めて使用しています。この例ではgetVisiblieTodosという関数がmapStateToProps内で呼び出される例を見て驚きました。この関数は状態を変更するので減速機で呼び出される必要がありますか?簡潔さのためにコードが「良い形」に壊れていますか?これは一般的には大丈夫ですか?mapStateToPropsからの状態変更関数の呼び出し
私たちは店がアプリのために必要な最小限のデータを保持したいReduxのは、このlink
import { connect } from 'react-redux'
import { toggleTodo } from '../actions'
import TodoList from '../components/TodoList'
const getVisibleTodos = (todos, filter) => {
switch (filter) {
case 'SHOW_ALL':
return todos
case 'SHOW_COMPLETED':
return todos.filter(t => t.completed)
case 'SHOW_ACTIVE':
return todos.filter(t => !t.completed)
}
}
const mapStateToProps = (state) => {
return {
todos: getVisibleTodos(state.todos, state.visibilityFilter)
}
}
const mapDispatchToProps = (dispatch) => {
return {
onTodoClick: (id) => {
dispatch(toggleTodo(id))
}
}
}
const VisibleTodoList = connect(
mapStateToProps,
mapDispatchToProps
)(TodoList)
export default VisibleTodoList
通常の還元剤の使用とは対照的に、この方法でデータを計算することの利点は何ですか? – Andrew
@Andrew - 複製されたデータを複数保存する必要がなくなるため、変更ごとに再計算する必要があります。 –
これは良い答えです。そうですが、アプリに必要な最小限のデータを保持することは大丈夫です。また、私の答えは減速機の状態の複雑さのようないくつかの追加の事を言います。それについて私は正しいですか? –