这是todolist里的一段代码:
todos.map(todo => {
return <Todo key={todo.id} {…todo} onClick={() => {toggleTodo(todo.id)}}/>
})
这是todo里的:
const { completed, text, onClick} = this.props;
return (
<li
onClick={onClick}
style={{
textDecoration: completed ? "line-through" : "none"
}}
>
{text}
</li>
);
有两个问题想请问一下:
1 子组件用es6的对象解构的方法获得了onClick方法,但是父组件中不是用onClick命名这个函数的,难道不是数组靠下标,对象靠属性名来取值和赋值么?为什么子组件可以随便给props中的属性改名字呢
2 对于父组件来说 onClick={() => {toggleTodo(todo.id)}}就相当于是把toggleTodo传递给子组件了是么,不需要用toggleTodo={toggleTodo}的形式了,是不是对于父组件来说,它上面绑定的事件的函数都可以被子组件用呢?相当于自动传递给他们了
我自己做的时候是把这两个地方都用我自己觉得符合直觉的方式重写了,也是可以正确运行的,但是感觉老师的写法让我觉得我对这些问题的理解有偏差,所以想请问下。非常感谢!