函数作为子组件也是React的一种设计模式,和高级组件一样,仅仅是一种设计模式。

这种模式如何工作的了?

举个栗子

这是三个按钮,我可以选择其中的一个,然后下方可以显示你的颜色。

这个如何用函数作为子组件解决了?

const options = [{ name: 'Red', val: 'red' },{ name: 'Orange', val: 'orange' },{ name: 'Blue', val: 'blue' }
];
class Selector extends React.Component {//按钮组件constructor (props) {super(props);this.state = {val: 'red',}}handle = (data) => {this.setState({val: data.val,})}render () {return (<div className = 'wrap'><ul>{ this.props.options.map( data => (<li key = { data.val }className = { `item ${ this.state.val == data.val ? 'selected' : '' }` }onClick = { () => this.handle(data) }  >{ data.name }</li>))}</ul>{ /* 这是关键 ,下面的代码调用子组件(函数),渲染出那一种颜色 */ }{ this.state.val && this.props.children(this.state.val)}</div>);}
}
class App extends React.Component {constructor (props) {super(props);}render () {return (<Selector options = { options } //子组件 (为一个函数),接受一个参数,然后渲染出来>{ color => (<div style = {{width: "50px",height: "50px",background: color,} }/>  )}</Selector>)}
}
ReactDOM.render(<App />,document.getElementById("root")
)
 .wrap {width:200px;border:1px solid #eee;
}
ul {list-style: none;padding:0px;
}
.item {text-align:center;color:white;background:gray;cursor:pointer;}
.selected {color: black;background: white;
}

它仅仅是一个设计模式,是否选择使用,完全在于你。

React - 函数作为子组件相关推荐

  1. react基础之--子组件向父组件传值

    在父组件中定义一个函数,该函数用于处理传递过来得值(比如用于修改父组件中state得数据) 在子组件调用部分通过属性绑定得形式绑定该函数(在子组件中就可以通过this.props.属性名就可以拿到该函 ...

  2. React开发(186):react 父调用子组件的方法

    <BaseTableSearchsearchParams={baseSearchParams}onSearch={this.handleSearch}onRef={(node) => (t ...

  3. react如何在父组件中调用子组件事件

    父组件是如何使用子组件的事件的,下边数值累加的例子 类组件 将子组件的this传到父组件,给父组件添加一个属性,值为this,之后就可以通过父组件的属性调用子组件的事件了 import React,{ ...

  4. React 函数组件导出自定义方法的办法说明

    在进行React开发时,函数组件是比较方便的,由于函数组件没有this指针,因此如果想在父组件里调用函数型子组件的方法,就需要用到React.useImperativeHandle 这个帮助函数. 办 ...

  5. 子组件获取父组件的值,将这个值作为状态值保存

    这是之前的一个想法,但是后来又思考了,如果我的子组件 在很多地方都要调用,为什么不把获取数据的函数放在子组件里面,父组件有需要就直接调用子组件的方式就可以.转换一个思路.同时发现一个神奇的事情目前没有 ...

  6. vue父组件与子组件之间传值

    1.父组件像子组件传值:v-bind进行绑定:(自定义属性) 父组件 其中counts是自定义属性,它的值是传给子组件的 子组件 子组件通过props属性,counts是父组件传过来的值 2.子组件向 ...

  7. vue 子组件调用($emit)父组件方法后父组件方法如何回调子组件方法

    子级组件中的实现 组件名称:EditTable.vue export default{ name:'ET', ....... methods:{ ShowMore(step){             ...

  8. vue3.0 父组件调用子组件方法及获取子组件的值

    vue3.0 父组件调用子组件方法及获取子组件的值 通过对比2.0的获取及调用方式这里我们也可以借鉴2.0中的this.$refs去获取3.0和2.0的refs获取的方式有点大同小异,但是思路还是一样 ...

  9. vue子组件和父组件之间传值方法

    父组件向子组件传值(prop-主要用于传递数据) 父组件向子组件传值分为两步: 1.父组件动态绑定一个需要传递的值 2.子组件在props属性中获取到父组件中传递的值,并使用 例子 父组件: 在父组件 ...

  10. React父组件调用子组件的方法【class组件和函数组件】

    在react组件之间的通信是通过props属性来完成的,比如父组件需要将数据传递给子组件,那么组件在渲染子组件的时候,直接将数据作为子组件的属性传参: <Child onChildEvent={ ...

最新文章

  1. Python中的pickle模块
  2. [译] 这可能是 2018 年最好的一篇 PHP 性能测评(包含 5.6 到 7.2,以及 HHVM)
  3. 取某个日期所在周的任意一天日期
  4. 磁盘 I/O 性能监控指标和调优方法
  5. Xray使用的一些经验分享(xray+burp的使用)
  6. 一步步教你实现富文本编辑器(第四部分)
  7. 《Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法》笔记
  8. html怎么把字转换为行内元素,什么是行内元素?
  9. js高级学习笔记(b站尚硅谷)-3-对象
  10. Java计算机毕业设计电脑小白网站源码+系统+数据库+lw文档
  11. Unix环境高级编程的学习环境的搭建
  12. 【2022美赛F奖】B题:水电共享
  13. 谷歌人工智能背后的大脑:没有他就没有今天的谷歌AI
  14. python比c语言好学吗-总算找到c语言和python哪个好学
  15. [HAOI2014] 贴海报
  16. 利用python生成微信h5_Python + Appium 微信公众号 H5 页面自动化测试
  17. Windows10 U盘无法格式化怎么办?U盘拒绝访问?
  18. fuse接口用法说明
  19. Alpha测试和Beta测试的区别
  20. 关于传奇聚灵珠Gom脚本的详细说明讲解

热门文章

  1. PCB Layout初学者必会知识总结(转)
  2. Marked.js让您的文档编辑更加轻松自如!
  3. 亚控科技工作中的编程知识小积累
  4. 30天搞定Java--day6
  5. C# OpenCvSharp 连通区域最小衔接矩形+最小标注信息(minx,miny,Width,Height)
  6. 知乎周源微信_每周源代码16-风管磁带版
  7. 圣诞表白html,Pyhton表白代码——浪漫圣诞节
  8. xshell linux 打开多个窗口快捷键,linux,xshell,快捷键
  9. Oracle9查询语句报无法访问oracore9.dll错误的解决方法
  10. lmdb.Error: 路径 : ϵͳ�Ҳ���ָ����·����解决办法