React 父向子传值

import React from 'react'

/* 
 实现父子通信中的父传子,把父组件中的数据传给子组件
 实现步骤:
 1.父组件提供要传递的数据 state
 2.给子组件标签添加属性值为satate中的数据
 3.子组件中通过props获取数据
    1.类组件中通过this.props获取
    2.函数组件中通过props获取(需要传参props)
注意事项:
1.props是只读对象,不能进行修改
2.props可以传递任何数据
数字、字符串、布尔值、对象、数组、函数、jsx元素、null、undefined、Symbol类型都可以传递

*/


class App extends React.Component {
  state = {
    message: 'this is message',
    list: [1, 2, 3, 4, 5],
    userInfo: {
      name: '张三',
      age: 18
    }

  }
  getMess = () => {
    console.log('父组件获取子组件传递的数据')

  }

  render () {

    return (
      <div>
        {/* 在子组件上绑定属性 */}
        <SonC msg={this.state.message} ></SonC>
        <SonF list={this.state.list} msg={this.state.message} user={this.state.userInfo} getMess={this.getMess}
          // 传递jxs
          child={<span>this is span</span>}
        />
      </div>
    )
  }
}


class SonC extends React.Component {
  render () {
    return (
      <div >这是类函数子组件,{this.props.msg}</div>
    )
  }
}

function SonF (props) {
  //props是一个对象,里面存着父组件传入的所有数据
  //解构赋值 如果解构赋值,就不需要再使用props.list了,直接使用list
  const { list, msg, user, getMess, child } = props
  return (
    <div>这是函数子组件,{msg},{list.map(item => <p key={item}>{item}</p>)},{user.name}
      <button onClick={getMess}>点击获取父组件传递的数据</button>
      {child}

    </div>
  )
}




export default App

  • 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
发出的红包

打赏作者

feyman很努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值