前言

在使用React组件时,经常用到props和Children传递数据给子组件,其中最常用的是:父组件传递元素给子组件,子组件用Children来渲染,但是Children还有一些其他的用法,下面总结一下。

一  常用用法

父组件传递元素给子组件

// 子组件
function Child({ children }) {return (<div className="child">{children}</div>)
}
// 父组件
function Parent() {return (<Child><span>Hello, world.</span></Child>)
}

二  将对象作为Children传入

// 子组件
function Child({ children }) {return (<div className="child">{children.firstName}, {children.lastName}</div>)
}
// 父组件
function Parent() {const user = {firstName: 'Hello',lastName: 'world'}return (<Child>{user}</Child>)
}

三  将函数作为Children传入

我们以一个ToDoList为例:

// 子组件
function Child({ todos, children }) {return (<ul>{todos.map((item, index)=> (<li key={index}>{children(item)}</li>))}</ul>)
}// 父组件
function Parent() {const todos = [{ label: '任务一', status : 'done' },{ label: '任务二', status : 'progress' },{ label: '任务三', stat us: 'done' }];const isCompleted = todo => todo .status === 'done';return (<Child todos={ todos }>{todo => isCompleted(todo) ? <b>{ todo.label }</b> : todo.label}</Child>)
}

最后

上面第二和第三种用法就是常常被我们忽略的Children用法,希望对你有所帮助。如有问题,欢迎指正。

文章原文放到我自己的博客上了,欢迎点赞:

常被忽略的React Children用法https://www.cikayo.com/article/122

文章内容部分参考于《React模式》

常被忽略的React Children用法相关推荐

  1. React.Children 详解

    React.Children 详解 React.Children提供了处理 this.props.children 的 API,this.props.children 支持任何数据(组件.字符串.函数 ...

  2. 十、children的深入用法-React.Children对象上的方法

    目标 理解什么是children 掌握React.Children对象上的方法 知识点 什么是children 上图中我们看到了,我们之前学过的React.createElement方法,现在大家发现 ...

  3. react 遍历对象_React 源码系列 | React Children 详解

    本文基于 React V16.8.6,本文代码地址 测试代码 源码讲解 React 中一个元素可能有 0 个.1 个或者多个直接子元素,React 导出的 Children 中包含 5 个处理子元素的 ...

  4. React - children props 与 render props

    React - children props 与 render props 一. children props 1. 函数组件形式 2. 类组件形式 二. render props 1. 函数组件形式 ...

  5. 小程序通过 ajax读取的图片数据如何展示_一个常被忽略的intouch的小技巧—鼠标悬停...

    JZGKCHINA工控技术分享平台经常看到网上的大数据采集平台,平台的前端都是采用H5编写,熟悉H5技术的人应该都知道,H5主要是负责编写前台页面,炫酷的网站页面交互特效.3D效果都离不开H5.但是作 ...

  6. 【React】React.Children.only expected to receive a single React element child

    背景: React  项目使用Ant Design + Storybook时发报: Uncaught Error: React.Children.only expected to receive a ...

  7. 【重点】React.Component用法

    组件(Components)允许您将UI拆分为独立的可重用的部分,并单独的考虑每个部分. 总览 React.Component是一个抽象基类.这意味着直接引用React.Component是毫无意义的 ...

  8. 一些学习中常被忽略的 JavaScript 小技巧

    点击上方"IT平头哥联盟",选择"置顶或者星标" 一起进步- 作者:冷星 https://segmentfault.com/a/1190000018897633 ...

  9. linux编译忽略warning,忽略警告@SuppressWarnings的用法

    @SuppressWarnings注解用法 @SuppressWarnings注解主要用在取消一些编译器产生的警告对代码左侧行列的遮挡,有时候这会挡住我们断点调试时打的断点. 我们可以在方法上加上@S ...

最新文章

  1. 包继承Maven的超级POM
  2. 2021-03-04 Halcon初学者知识 【18】谈谈秩滤波(Rank filter)
  3. C# using static 声明
  4. 耿美玉起诉饶毅名誉侵权,法院判了!驳回请求,但对饶毅方也应给予批评
  5. EVE-NG安装步骤
  6. 适合pythonpandas的软件_Pandas的10大惊人应用-哪个行业领域正在使用Python Pandas?...
  7. 多语言网站开发 不完全技术分析收录
  8. 每日一题题目26:选择排序(冒泡排序改进版)
  9. IntelliJ IDEA创建和配置Maven项目并运行
  10. Avaya Aura™ 独家观察报告
  11. ios 根据日期知道周几_iOS 计算指定日期是周几星期几
  12. 高考读卡机是谁发明的?
  13. 用python更换桌面壁纸
  14. 华宇智能数据官网全新上线,赋能行业数字化转型
  15. 2022年全国职业院校技能大赛试题3(中职组)
  16. 博客园有一段时间登不上
  17. 英特尔芯片漏洞危机:波及谷歌微软 影响你的电脑和手机 | 热点
  18. oracle ERP凭证打印样式,Oracle ERP二次开发中特色鲜明的Web打印模式设计与实现
  19. Word简历如何插入个人头像?
  20. 西门子服务器提升抱闸信号不输出,西门子V90伺服调试工程师不可不知的一些事儿...

热门文章

  1. java取网页数据_Java抓取网页数据(原来的页面+Javascript返回数据)
  2. MATLAB常用的函数
  3. python自学(转义字符篇)
  4. docker安装及修改默认镜像下载路径和配置加速器
  5. python 中的[:-1]和[::-1]
  6. Matlab绘图合集:plot 绘图
  7. 二嗨租车系统java_Java第二季-嗒嗒租车系统
  8. C++ 面向对象思想
  9. Busybox版insmod的一个坑
  10. linux找不到insmod命令