Reactjs 如何在react redux中使用connect
什么是预设的网页连接到韩德尔装饰 我试图运行webpack,但什么也没发生Reactjs 如何在react redux中使用connect,reactjs,webpack,ecmascript-2016,Reactjs,Webpack,Ecmascript 2016,什么是预设的网页连接到韩德尔装饰 我试图运行webpack,但什么也没发生 /* connect(store) class App extends React.Component{ } */ 要使用connect()您需要定义一个名为mapstatetops的特殊函数,它告诉我们如何将Redux存储状态转换为props。例如,VisibleTodoList需要计算todos以传递给TodoList,因此我们定义了一个函数,该函数根据state.visibilityFilter过滤stat
/*
connect(store)
class App extends React.Component{
}
*/
要使用connect()
您需要定义一个名为mapstatetops
的特殊函数,它告诉我们如何将Redux存储状态转换为props。例如,VisibleTodoList需要计算todos以传递给TodoList,因此我们定义了一个函数,该函数根据state.visibilityFilter过滤state.todos,并在其MapStateTops中使用它:
const getVisibleTodos = (todos, filter) => {
switch (filter) {
case 'SHOW_COMPLETED':
return todos.filter(t => t.completed)
case 'SHOW_ACTIVE':
return todos.filter(t => !t.completed)
case 'SHOW_ALL':
default:
return todos
}
}
const mapStateToProps = state => {
return {
todos: getVisibleTodos(state.todos, state.visibilityFilter)
}
}
现在o必须调度操作来读取状态。为此,您可以使用mapDispatchToProps()
函数,该函数接收dispatch()
方法并返回要注入组件的回调道具
const mapDispatchToProps = dispatch => {
return {
onTodoClick: id => {
dispatch(toggleTodo(id))
}
}
}
最后,通过调用connect()并传递以下两个函数来使用VisibleTodoList:
import { connect } from 'react-redux'
const VisibleTodoList = connect(
mapStateToProps,
mapDispatchToProps
)(TodoList)
export default VisibleTodoList