react父子组件传值

1.父组件向子组件传值使用props

复制代码
import React,{Component} from 'react'
import Center from './components/Center'

export default  class App extends Component {
  state={
    todos:[
      {id:'001',name:'吃饭',done:true},
      {id:'002',name:'睡觉',done:true},
      {id:'003',name:'打代码',done:false},
    ]
  }
 
  render(){
    return (
      <div>
         <Center todos={this.state.todos}/>
      </div>
      
    ); 
  }
  
}

子组件接收,渲染页面

复制代码
import React, { Component } from 'react'
import Center from './index.module.css'
export default class index extends Component {
  render() {
    let {todos} =this.props;
    return (
      <div>
        <ul>
                {todos.map((i)=>{
                    return (
                        <li key={i.id} className={Center.li}>
                            <div className={Center.leftBox}>
                                <input type="checkbox" defaultChecked={i.done}/>
                                <span>{i.name}</span>
                            </div>
                            <button>删除</button>
                        </li>
                    )
                })}
        </ul>
      </div>
    )
    
  }
}

2.子组件向父组件传递参数

复制代码
import React,{Component} from 'react'
// import Hello from './components/Hello'
import Header from './components/Header'
import Center from './components/Center'
import Foot from './components/Foot'

export default  class App extends Component {
  
  // ,data是子组件传给父组件的值
    a=(data)=>{
      console.log(data,'app')
    }
  render(){
    return (
      <div>
        <Header  a={this.a}/>
         <Foot/>
      </div>
      
    ); 
  }
  
}

子组件通过父组件传过来的函数,在合适的时机传给,父元素函数接收的data上

复制代码
import React, { Component } from 'react'
import Header from './index.module.css'
export default class index extends Component {
  render() {
    return (
      <div>
        <input 
        className={Header.input} 
        type="text" 
        placeholder='请输入你的任务,按回车键确认'
        onKeyUp={this.keyCode}></input>
      </div>
    )
  }
  // 回车响应
  keyCode=(e)=>{
    if(e.keyCode===13){
      this.props.a(e.target.value)
    }
  }
}
相关推荐
小小小小宇2 分钟前
Vue `import` 为什么可以异步加载
前端
WMYeah7 分钟前
【无标题】
前端·rust·抽奖程序·跨平台抽奖程序
Unbelievabletobe8 分钟前
免费外汇api的响应时间在不同时段下的波动分析
大数据·开发语言·前端·python
大哥,带带弟弟17 分钟前
Grafana 前端嵌入与 JWT 鉴权实战
前端·grafana
小小小小宇18 分钟前
前端 V8 引擎垃圾回收机制与内存问题排查
前端
前端老石人29 分钟前
CSS 值定义语法
前端·css
sheeta199840 分钟前
Vue 前端基础笔记
前端·vue.js·笔记
小小小小宇40 分钟前
GitLab + GitLab Runner + Qiankun 微前端 + Nginx + Node 中间件 前端开发机从零搭建 CI/CD 全流程
前端
前端那点事44 分钟前
别再写垃圾组件!Vue3 如何设计「真正可复用」的高质量通用组件
前端·vue.js
卷帘依旧1 小时前
JavaScript 中的 Symbol
前端·javascript