Redux 反应还原';s connect不会将任何内容传递回我的组件

Redux 反应还原';s connect不会将任何内容传递回我的组件,redux,react-redux,Redux,React Redux,所以我对React-Redux的connect有点困惑,因为它似乎没有将任何内容传递回我的组件。我整个上午都在试着调试这个,我看了一些教程,但我看不出我做错了什么。下面是一段相关代码。我是不是误解了 consttodolist=(道具)=>{ console.log(props);//仅返回具有一个属性的对象 //包含函数的分派。在哪里 //我的TODO、过滤器、切换TODO和删除TODO是否正确? 返回( 占位符 ) } const renderTogdogenerated=connect(

所以我对React-Redux的connect有点困惑,因为它似乎没有将任何内容传递回我的组件。我整个上午都在试着调试这个,我看了一些教程,但我看不出我做错了什么。下面是一段相关代码。我是不是误解了

consttodolist=(道具)=>{
console.log(props);//仅返回具有一个属性的对象
//包含函数的分派。在哪里
//我的TODO、过滤器、切换TODO和删除TODO是否正确?
返回(
  • 占位符
  • ) } const renderTogdogenerated=connect( todoStateToProps, 托多迪斯帕奇托普洛斯酒店 )(托多利斯特); 常数todostatetops=(状态)=>{ 返回{ 待办事项:state.todos, 过滤器:state.filter } } const toddispatchtoprops=(调度)=>{ 返回{ toggleTodo:(toggleId)=>{ 调度(toggleTodo(toggleId)); }, removeTodo:(removeId)=>{ 调度(removeTodo(removeId)); } } }
    在ES6中,用
    const
    声明的变量在声明它们的行之前不存在。您对
    connect
    的调用发生在
    todoStateToProps
    todoDispatchToProps
    实际存在之前,因此此时它们是未定义的。您需要将对
    connect
    的调用移动到该代码块的末尾

    另外,作为参考,
    connect
    支持“对象速记”来处理
    mapspatch
    参数。不必像在那个例子中那样编写实际的函数,只需传递一个充满动作创建者的对象作为第二个参数,它们将被
    dispatch
    封装。因此,您只需要:

    const actionCreators = {toggleTodo, removeTodo};
    const RenderTodoGenerated = connect(todoStateToProps, actionCreators)(TodoList);
    

    啊,好的,哇,成功了。我非常习惯于从ES6前几天起自动将变量提升到顶部。我想是时候复习一下我的ES6了。谢谢你的速记技巧。干杯,谢谢!
    const actionCreators = {toggleTodo, removeTodo};
    const RenderTodoGenerated = connect(todoStateToProps, actionCreators)(TodoList);