Tôi đã tự hỏi nếu vẫn còn một điểm sử dụng mapDispatchToProps
ngày hôm nay. Tôi đang làm việc trên redux documentation tutorials (để xây dựng một danh sách todo), nơi VisibleTodoList
được mô tả như sau:mapDispatchToProps: bất kỳ điểm nào?
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
Tuy nhiên, tôi đã được cho biết rằng ngày hôm nay, tôi có thể chỉ đơn giản là không để xác định mapDispatchToProps
và kết nối tất cả mọi thứ thông qua:
const VisibleTodoList = connect(
mapStateToProps,
toggleTodo
)(TodoList)
Có đúng không? Và nếu có, điểm viết là mapDispatchToProps
là gì? Có bất kỳ hạn chế nào để chỉ trả lại hành động không?
Cảm ơn!
Ah ... tại sao bạn nói 'mapDispatch' nhận _three_ args? Mỗi nguồn, nó chỉ được gọi với một hoặc hai. – markerikson
Chỉ muốn thêm dòng cuối cùng, đặc biệt nếu chuẩn bị công văn của bạn dựa trên các giá trị thực tế theo một cách nào đó là lý do tại sao tôi vẫn tự chuẩn bị một số người sáng tạo hành động của mình. Trong thực tế, nó hiếm khi nói rằng mapDispatchToProps thực sự lấy 2 đối số, thứ 2 trong số đó là ownProps và ở đây tôi có thể đưa các đối số mặc định vào trong trình tạo đối tượng của tôi từ các đối tượng container và không phải chuyển chúng xuống thành phần con. (Cảm ơn lời nhắc nhở markerikson, tôi không thể chỉnh sửa bình luận một lần nữa vì vậy tôi chỉ reposted nó với sự điều chỉnh). – JMac