react子给父传值

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
</head>
<body>
<div id="test1"></div>
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<!-- 生产环境中不建议使用 -->
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
<script type="text/babel">
	//创建父组件
	class Father extends React.Component{
    constructor(){
      //this指向React.Component
      super()
      this.state={
        a:1,
        list:['a','b','c']
      }
    }
    father=(data)=>{
      console.log("111",data)
    }
		render(){
       //this指向React.Component
			return(
				<div>
             {/* 调用本身组件的函数 */}
        <div onClick={this.father}>父组件 </div> 
            {
              this.state.list.map((item)=>{
                 {/* 调用本身组件的函数并使用箭头函数包裹的方式给函数传递值   直接写成this.father(item)第一遍渲染时会执行 */}
                return <div onClick={()=>{this.father(item)}} key={item}>{item}</div>
              })
            }
            {/*给子组件绑定一个属性 这个属性会议对象的形式传递给子组件 */}
            <Childr father={this.father}></Childr>
          </div>
			  )
		  }
	}

  //创建子组件
  class Childr extends React.Component{
    constructor(){
      super()
    }
    state={
      b:'one'
    }
    child=()=>{
      // 接收到父组件传递过来的函数并调用,给函数传递值。父组件会执行函数,并接收到值
      const {father}=this.props
      father(this.state.b)
    }
    render(){
      return(
        <div onClick={this.child}>
          子组件
          </div>
      )
    }
  }
//渲染组件到页面
		ReactDOM.render(<Father/>,document.getElementById('test1'))
</script> 
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React中,组件向父组件传值是通过回调函数的方式实现的。具体步骤如下: 1. 在组件中定义一个回调函数,用于接收组件传递的值。 2. 将该回调函数作为props传递给组件。 3. 在组件中,通过props调用组件传递的回调函数,并将需要传递的值作为参数传入。 以下是一个示例代码: 组件: ```javascript import React, { useState } from 'react'; import Child from './Child'; function Parent() { const [value, setValue] = useState(''); // 定义回调函数,用于接收组件传递的值 const handleValueChange = (newValue) => { setValue(newValue); }; return ( <div> <Child onValueChange={handleValueChange} /> <p>组件接收到的值:{value}</p> </div> ); } export default Parent; ``` 组件: ```javascript import React, { useState } from 'react'; function Child(props) { const [inputValue, setInputValue] = useState(''); // 组件中的输入框值改变时,调用组件传递的回调函数,并将输入框的值作为参数传入 const handleChange = (e) => { setInputValue(e.target.value); props.onValueChange(e.target.value); }; return ( <div> <input type="text" value={inputValue} onChange={handleChange} /> </div> ); } export default Child; ``` 在上述示例中,组件通过useState定义了一个状态value,并将其作为props传递给组件。组件中的输入框值改变时,调用组件传递的回调函数onValueChange,并将输入框的值作为参数传入。组件接收到组件传递的值后,更新自身的状态value,并在页面上展示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值