react父子组件传值示例「建议收藏」

react父子组件传值示例「建议收藏」importReactfrom’react’;exportdefaultclassTextextendsReact.Component{//构造函数constructor(props){super(props);this.style={background:’#f00′,color:’#fff’};this.arr=[…

大家好,又见面了,我是你们的朋友全栈君。

import React from 'react';
export default class Text extends React.Component{ 
   
  // 构造函数
  constructor(props){ 
   
    super(props);
    this.style = { 
   background:'#f00',color:'#fff'};
    this.arr = [
      { 
   "name":"zhang","age":34},
      { 
   "name":"li","age":35},
      { 
   "name":"wang","age":14},
      { 
   "name":"zhao","age":24}
    ];
    this.state = { 
   
      num:0,
      b:'2hdlfghsoahf'
    }

  }
  a=1;
  addList(){ 
   
    // 通过循环生成dom
    return this.arr.map((v,i)=>{ 
   
      return (
        // ref 获取真实dom,需要render之后才能获取到
        <li ref={ 
   'li'+i} onClick={ 
   this.handle.bind(this,i)} key={ 
   i}>
          <span>{ 
   v.name}</span>
          <span>{ 
   v.age}</span>
        </li>
      )
    })
  }
  handle(e){ 
   

  }
  change(){ 
   
    this.setState({ 
   
      num:9
    })
  }
  // 渲染
  render(){ 
   
    return(
      <div ref={ 
   'box'} style={ 
   { 
   zIndex:9999999,...this.style,position:'absolute',left:this.props.left||0,top:this.props.top||'0px',fontSize:'40px',width:'100px',height:'100px'}}>
        { 
   /*事件名称小驼峰*/}
        <p onClick={ 
   this.change.bind(this)}>{ 
   this.state.num}</p>
        { 
   
          this.addList()
        }
        <input style={ 
   { 
   position:'absolute',zIndex:999999999999999}} type="text" ref={ 
   'input'}/>
        <button onClick={ 
   this.tarnsform.bind(this)}>请点击</button>
      </div>
    )
  }

  tarnsform(){ 
   
    this.props.onSubmit(this.refs.input.value);
  }

  componentWillMount(){ 
   
    // 组件初始化时候执行
    // 组件即将加载
  }

  componentDidMount(){ 
   
    // ajax
    // 组件初始化时候执行
    // 组件加载完成
    console.log(this.refs.box);
  }
  componentWillUpdate(){ 
   
    // 二次渲染时候执行
    // 组件即将更新
  }
  componentDidUpdate(){ 
   
    // 二次渲染时候执行
    // 组件更新完成
  }
  componentWillUnmount(){ 
   
    // 组件即将卸载
    // 清掉定时器等 内存释放
  }
}

//------------------------------------------------------------------
// <Test/>
{ 
   /*<Test onSubmit={this._click.bind(this)} data={'fdajgofa'} left={'800px'} top={500}/>*/}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145826.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月16日 下午2:20
下一篇 2022年5月16日 下午2:40


相关推荐

  • kali 更新源,亲测好用

    kali 更新源,亲测好用debhttp://mirrors.163.com/debian/jessiemainnon-freecontribdebhttp://mirrors.163.com/debian/jessie-updatesmainnon-freecontribdebhttp://mirrors.163.com/debian/jessie-backportsmainnon-f

    2022年5月8日
    47
  • 图文详解 MapReduce 工作流程

    图文详解 MapReduce 工作流程前言本文隶属于专栏 1000 个问题搞定大数据技术体系 该专栏为笔者原创 引用请注明来源 不足和错误之处请在评论区帮忙指出 谢谢 本专栏目录结构和参考文献请见 1000 个问题搞定大数据技术体系正文 MapReduce 编程模型 MapReduce 编程模型开发简单且功能强大 专门为并行处理大规模数据量而设计 接下来 通过一张图来描述 MapReduce 的工作过程 如图所示 关于 MapReduce 编程模型的更多细节请参考我的这篇博客 MapReduce 编程模型到底是怎样的 整体流程

    2026年3月18日
    2
  • 开始学习Linux嵌入式开发

    开始学习Linux嵌入式开发从工作到现在已经有六年了 头两年是做 VC nbsp 开发 方向是全文检索系统 后来由于自己和朋友合伙创业 就转向了企业应用开发 多数使用 VB 和 C 至今可以算是创业失败 又到了重新选择的时候 说实话 我对企业应用开发并不感兴趣 倒不是看不起应用开发 而是觉得做起来很无趣 没有技术上的成就感 而且经常要直接和客户打交道 对于我这种性格偏内向的人来说是很不喜欢的 结合创业期间接触的市场信息以及新闻报导

    2025年11月19日
    5
  • OpenClaw-VSCode:在 VS Code 里玩转 OpenClaw,远程管理+SSH 双剑合璧 – 教程

    OpenClaw-VSCode:在 VS Code 里玩转 OpenClaw,远程管理+SSH 双剑合璧 – 教程

    2026年3月13日
    7
  • python文件按回车闪退_为什么我的python文件夹闪退

    python文件按回车闪退_为什么我的python文件夹闪退有时候,我们在运行python程序的时候会闪退,到底是什么原因呢?python文件是以.py结尾的,可以自己在python环境下运行的。对于这种闪退的情况,大概可以从以下几个方面分析。第一步首先找到我们平时编辑python后,将文件储存的所在文件夹的位置,尝试下双击,看是否能打开。第二步如果打不开或者闪退,可以尝试选择打开方式,选择Python应用程序或者文本编译器看看是否能够打开文件。我先尝试了…

    2022年10月21日
    5
  • LINUX+APACHE+MYSQL+PHP+SVN+SVNMANAGER编译安装配置

    LINUX+APACHE+MYSQL+PHP+SVN+SVNMANAGER编译安装配置

    2021年8月13日
    59

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号