React提供了一个克隆组件的API:

React.cloneElement(
element,
[props],
[...child]
)

可以利用该方法,给子组件传值,使用如下:

class Parent extends Component{
constructor(){
super();
this.state = {
count: 1
};
}
getChildren(){
const _this = this;
let { children } = _this.props;
return React.Children.map(children, child => {
return React.cloneElement(child, {
count: _this.state.count
});
});
}
handleClick(){
this.setState({
count: this.state.count
});
}
render(){
return (
<div>
<button onClick={ this.handleClick.bind(this) }>点击增加次数</button>
{ this.getChildren() }
</div>
)
}
}
class Child extends Component{
render(){
return (
<div>
这是子组件:{ this.props.count }
</div>
)
}
}
class Test extends Component{
render(){
return (
<Parent>
<Child />
</Parent>
)
}
}

点击父组件中的按钮,子组件中的数字会增加。父组件成功向子组件传值。

注意:

如果写成下面这样则无法传值:

class Test extends Component{
render(){
return (
<Parent>
<div>
这是子组件:{ this.props.count }
</div>
</Parent>
)
}
}

本文转载自:https://blog.csdn.net/csm0912/article/details/85244970

最新文章

  1. 【腾讯Bugly干货分享】基于RxJava的一种MVP实现
  2. [hadoop in Action] 第3章 Hadoop组件
  3. php 获取数组第一个元素 以及最后一个元素 &amp;&amp; 最后一个元素的键名
  4. gulp教程之gulp-htmlmin
  5. Java——Swing事件处理
  6. xdg-open filename 以相应的程序 打开文件
  7. bug:无法给图片加边框
  8. ADB工具常用指令和使用情形分析
  9. R提高篇(二): 图形初阶
  10. 浅析Java反射机制
  11. .NET两种常见上传下载文件方法
  12. Android:布局单位换算
  13. dfs 生成排列和组合
  14. App Store不能下载一直等待中的两种解决办法
  15. VC++中字符串编码处理的一些相关问题
  16. Python--day08(文件操作)
  17. 【jpa】spring data jpa 配置使用
  18. Luminar 3 for Mac(照片编辑工具)v3.1.0中文特别版
  19. 交叉熵理解:softmax_cross_entropy,binary_cross_entropy,sigmoid_cross_entropy简介
  20. 苏宁基于Spark Streaming的实时日志分析系统实践 Spark Streaming 在数据平台日志解析功能的应用

热门文章

  1. Daily scrum 12.21
  2. Beta版本发布报告
  3. 【Beta阶段】第八次Scrum Meeting!
  4. git工具
  5. html 空白汉字占位符&amp;#12288;
  6. python中的hasattr()、getattr()、setattr()
  7. 业务-----添加Service常用逻辑
  8. Max length of title attribute in html
  9. [转帖]总结ORACLE系统视图及表大全
  10. spring学习总结(一)_Ioc基础(中)