나는 반응이 빨랐다.이 경우 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 - 복제 된 데이터를 여러 번 저장해야하므로 모든 변경 사항을 다시 계산해야합니다. –
이것은 좋은 대답입니다. 그렇습니다. 앱에 필요한 최소한의 데이터를 보관해도 괜찮습니다. 또한, 제 대답은 감속기의 상태 복잡성과 같은 몇 가지 추가 사항을 말합니다. 그거 내가 맞습니까? –