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)
    }
  }
}
相关推荐
gnip20 小时前
链式调用和延迟执行
前端·javascript
SoaringHeart20 小时前
Flutter组件封装:页面点击事件拦截
前端·flutter
杨天天.20 小时前
小程序原生实现音频播放器,下一首上一首切换,拖动进度条等功能
前端·javascript·小程序·音视频
Dragon Wu20 小时前
React state在setInterval里未获取最新值的问题
前端·javascript·react.js·前端框架
Jinuss20 小时前
Vue3源码reactivity响应式篇之watch实现
前端·vue3
YU大宗师20 小时前
React面试题
前端·javascript·react.js
木兮xg20 小时前
react基础篇
前端·react.js·前端框架
ssshooter21 小时前
你知道怎么用 pnpm 临时给某个库打补丁吗?
前端·面试·npm
IT利刃出鞘1 天前
HTML--最简的二级菜单页面
前端·html
yume_sibai1 天前
HTML HTML基础(4)
前端·html