关于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里面,而且好像是成了子组件?但是它里面也并没有声明成组件的代码啊?还有一个问题,这个函数里面的三个参数是怎么来的?求指点。


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

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

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

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



相关阅读:
一个js监听事件的小问题
webstorm中和subline中同样的文件在chrome控制台下调试时,不一样,是什么原因
angular-ui-router的预加载与控制器注入
laravel在中间件内生成的变量如何传到控制器
vue 路由跳转后 怎样去掉指定的组件?
求一个博客用的tags轮子,怎么都是laravel的。
[webstorm]webstorm如何打开.babelrc文件?
关于ajax请求
模拟草料上传二维码图片,得出识别结果
关于 浏览器 Cache-Control 不能设置问题。
transform属性在这种情况下为什么不生效啊?
怎样通过$.ajax跨域请求斗鱼TV API 取得json数据
cef3 cookie分离
标签添加成功了为什么不显示呢?
PHP水印合成中文乱码怎么解?网上教程没用
chrome下disabled的input不能选中和复制, 有解决办法吗
ps切图出现细线
canvas绘制的时钟,出现多余的黑色线条是怎么回事??
关于页面同时异步请求两个js,渲染页面等待如何优化
关于 promise 的问题:请问在这个短小函数里 then 会被执行几遍?



快速导航

Copyright © 2016 phpStudy |