无法在react redux中显示TODO(属性映射未定义)?
我正在尝试通过创建自己的todo应用程序来学习Redux,而不需要Redux官方的天赋。当我得到无法在react redux中显示TODO(属性映射未定义)?,redux,Redux,我正在尝试通过创建自己的todo应用程序来学习Redux,而不需要Redux官方的天赋。当我得到TypeError:无法读取未定义的属性“map”时,我在显示TODO列表时遇到问题 回购协议可以找到。它相当轻量级(组件比Redux的todo应用程序少) 这是我遇到麻烦的部分: /src/components/TodoList.js import React from 'react'; const TodoList = ({todos}) => { return ( <
TypeError:无法读取未定义的属性“map”时,我在显示TODO列表时遇到问题
回购协议可以找到。它相当轻量级(组件比Redux的todo应用程序少)
这是我遇到麻烦的部分:
/src/components/TodoList.js
import React from 'react';
const TodoList = ({todos}) => {
return (
<ul>
{todos.map(todo =>
<li key={todo.id}>{todo.text}</li>
)}
</ul>
)
}
export default TodoList;
我很确定我的Redux商店的状态是正确的。可以找到AddTodo
但是,由于某种原因,TodoList
components/TodoList.js
中的组件没有作为{todos}
接收内部的todos状态。我想我可能犯了一些错误
如何正确显示
TodoList
中的所有todos
状态?您忘记在MapStateTrops
中返回值。应该是:
const mapStateToProps = state => ({
todos: state.todos,
});
哦,天哪,真不敢相信我这么做了。谢谢顺便说一下,我想我知道我的ES6箭头功能,但显然我不知道。离题了,但你知道为什么添加括号可以解决这个问题吗?这是因为大括号单独定义了函数体,所以基本上你之前所做的类似于函数中只有一个表达式。当你在花括号周围加上括号时,它们就变成了你返回的对象(简而言之,括号就像是
return
)的快捷方式。谢谢!哈哈,我也发现了这个:。页面的第一部分说明了一切。再次感谢您的帮助:)
const mapStateToProps = state => ({
todos: state.todos,
});