关于redux中几个参数的来历

代码如下:

const TodoList = ({ todos, onTodoClick }) => (
  <ul>
    {todos.map(todo =>
      <Todo
        key={todo.id}
        {...todo}
        onClick={() => onTodoClick(todo.id)}
      />
    )}
  </ul>
)

这是todolist,里面有个Todo,但是它的写法是这样的:

    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
}

想问一下,这个Todo明明是个函数,为什么可以直接写在上面的todolist里面,而且好像是成了子组件?但是它里面也并没有声明成组件的代码啊?还有一个问题,这个函数里面的三个参数是怎么来的?求指点。

阅读 2.4k
1 个回答

这个Todo明明是个函数,为什么可以直接写在上面的todolist里面,而且好像是成了子组件?
React组件有两种声明方式,一种叫Class Component,一种叫Functional Component,后者也就是你的写法。具体文档看这里

其实,Functional Component就等于Class Component只包含render方法,一般写一些很简单的展示组件的时候,可以用Functional

这个函数里面的三个参数是怎么来的?

这三个参数应该是你的todo对象里面包含的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进