博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
进阶组件之render props中进行公共属性的对象封装
阅读量:7135 次
发布时间:2019-06-28

本文共 987 字,大约阅读时间需要 3 分钟。

前言

我们经常需要把一些常见的组件属性封装到一个对象里,然后在渲染属性中使用。

回顾下之前的写法

function Usage({    onToggle = (aregs) => console.log('Ontoggle',...aregs)}){    return (
{(on,toggle)=>(
{ on ? 'button is on' : 'button is off'}
) }
)}复制代码

发现的问题

从上面的例子中,我们可以看到onClick属性,在switch组件以及button组件都传入了一个事件属性并绑定了同一个函数。这部分可以优化为下面的方式。

// 吧需要的点击属性封装到一个对象里getStateAndHelpers() {     return {     on: this.state.on,     toggle: this.toggle,     togglerProps: {         onClick: this.toggle,         'aria-pressed': this.state.on,     } } }render(){ return this.props.children(this.getStateAndHelpers())}function Usage({    onToggle = (aregs) => console.log('Ontoggle',...aregs)}){    return (
{(on,toggle)=>(
{ on ? 'button is on' : 'button is off'}
) }
)}复制代码

小结

本文涉及到的技巧非常简单,主要是将render props中的部分公用属性封装为一个对象,然后进行简化操作。

转载地址:http://cmvrl.baihongyu.com/

你可能感兴趣的文章
Xcode配置测试环境和线上环境
查看>>
三大主流软件负载均衡器对比(LVS 、 Nginx 、Haproxy)
查看>>
学习技能总结:
查看>>
高可用集群----理论
查看>>
backtrack两种开启ssh方式
查看>>
redis 目录
查看>>
C语言中const的用法
查看>>
理解inode
查看>>
我的友情链接
查看>>
Delegates (Delegate, Func, Predicate, Action and Lambda)
查看>>
快速打开Windows的大部分程序
查看>>
SSIS 系列 - Lookup 组件的使用与它的几种缓存模式 - Full Cache, Partial Cache, NO Cache...
查看>>
监测textfield输入的值得变化
查看>>
lvs简介和命令
查看>>
RPM 命令详解
查看>>
在Centos7中使用firewall添加端口
查看>>
python 通过threading多线程ssh
查看>>
spark-submit使用及说明
查看>>
jquery验证表单的js代码(HTML+CSS+PHP代码部分省略)
查看>>
Linux学习之CentOS(二十)--CentOS6.4下修改MySQL编码方法
查看>>