【发布时间】:2019-07-24 14:20:39
【问题描述】:
基于页面中的示例:https://redux.js.org/basics/usage-with-react
我们有以下物品:
const Todo = ({ onClick, completed, text }) => (
<li
onClick={onClick}
style={{
textDecoration: completed ? 'line-through' : 'none'
}}
>
{text}
</li>
)
Todo.propTypes = {
onClick: PropTypes.func.isRequired,
completed: PropTypes.bool.isRequired,
text: PropTypes.string.isRequired
}
此外,我们还有:
const TodoList = ({ todos, onTodoClick }) => (
<ul>
{todos.map((todo, index) => (
<Todo key={index} {...todo} onClick={() => onTodoClick(index)} />
))}
</ul>
)
谁能告诉我上面代码中的 {...todo} 是什么?
我知道 ... 运算符是一种扩展语法,可以说是 [...todos, newTodoItem] (将新的待办事项连接到旧的待办事项列表)。 但是,在上面的示例中,todo item 不是一个数组,它似乎生成了一个对象。因此对我来说,看起来 {...todo} 等于 {todo}。
另外,组件上分配了什么样的属性?
【问题讨论】:
-
扩展语法不仅仅适用于数组,参见例如developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…。 “分配了什么样的属性” - 无论对象中有什么类型,这就是重点。参见例如stackoverflow.com/questions/32363911/…、stackoverflow.com/questions/31048953/… 和 React 教程的大部分介绍。
标签: javascript reactjs redux react-redux