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)
    }
  }
}
相关推荐
Never_Satisfied1 小时前
在JavaScript / Node.js / 抖音小游戏中,使用tt.request通信
开发语言·javascript·node.js
一只小透明啊啊啊啊2 小时前
Java Web 开发的核心组件:Servlet, JSP,Filter,Listener
java·前端·servlet
你的人类朋友3 小时前
设计模式有哪几类?
前端·后端·设计模式
Yeats_Liao3 小时前
Go Web 编程快速入门 10 - 数据库集成与ORM:连接池、查询优化与事务管理
前端·数据库·后端·golang
啃火龙果的兔子3 小时前
前端八股文react篇
前端·react.js·前端框架
打小就很皮...3 小时前
React 实现 i18next 中英文切换集成
前端·react.js·i18next
拉不动的猪3 小时前
函数组件和异步组件
前端·javascript·面试
淮北4944 小时前
html + css +js
开发语言·前端·javascript·css·html
你的人类朋友4 小时前
适配器模式:适配就完事了bro!
前端·后端·设计模式
Setsuna_F_Seiei4 小时前
CocosCreator 游戏开发 - 利用 AssetsBundle 技术对小游戏包体积进行优化
前端·cocos creator·游戏开发