91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在React中實現父組件和子組件的數據傳輸

發布時間:2021-04-12 15:29:08 來源:億速云 閱讀:295 作者:Leah 欄目:開發技術

怎么在React中實現父組件和子組件的數據傳輸?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

一、父組件向子組件傳遞數據

父組件向子組件傳遞數據是通過在父組件中引用子組件時,在子組件標簽設置傳輸數據的屬性;而子組件中通過 this.props 接受傳過來的數據;這樣就實現了父組件向子組件的數據傳輸。

1.1、父組件代碼

import React, { Component } from 'react';
import './App.css';
import Child from './child'
class App extends Component {
    constructor(props){
        super(props);
        this.state={
            msg:'父類的消息',
            name:'John',
            age:99
        }
    }
    callback=(msg,name,age)=>{
        // setState方法,修改msg的值,值是由child里面傳過來的
        this.setState({msg});
        this.setState({name});
        this.setState({age});
    }
  render() {
    return (
      <div className="App">
        <p> Message: {this.state.msg}</p>
        <Child callback={this.callback} age={this.state.age} 
name={this.state.name}></Child>
      </div>
    );
  }
}
export default App;

代碼說明:父組件在使用子組件(Child)的過程中,對子組件傳輸了兩個屬性(age和name)和一個方法(callback 先不考慮)。

關鍵代碼:

<Child name={this.state.name} age={this.state.age}></Child>

1.2、子組件代碼

import React from "react";
class Child extends React.Component{
    constructor(props){
        super(props);
        this.state={
            name:'Andy',
            age:31,
            msg:"來自子類的消息"
        }
    }
    change=()=>{
        this.props.callback(this.state.msg,this.state.name,this.state.age);
    }
    render(){
        return(
            <div>
                <div>{this.props.name}</div>
                <div>{this.props.age}</div>
                <button onClick={this.change}>點擊</button>
            </div>
        )
    }
}
export default Child;

代碼說明:子組件中在 render 中直接使用 this.props 接受父組件傳輸的數據,并直接使用。不推薦子組件將接受到的數據,再使用this.setSate 方式處理。

關鍵代碼:

<div>{this.props.name}</div>
<div>{this.props.age}</div>

二、子組件向父組件傳輸數據

React 框架中子組件向父組件傳輸數據,要依賴于父組件向子組件傳輸數據。實際上就是父組件將自己作用域的函數傳輸給子組件;子組件調用該函數,并將要傳輸的數據,通過函數的參數的形式,傳輸給父組件。

2.1、父組件代碼

上面的代碼示例中,父組件中定義了函數,并將這個函數傳輸給了子組件。

class App extends Component {
......
    callback=(msg,name,age)=>{
        // setState方法,修改msg的值,值是由child里面傳過來的
        this.setState({msg});
        this.setState({name});
        this.setState({age});
    }
  render() {
    return (
      <div className="App">
        <Child callback={this.callback}></Child>
      </div>
    );
  }
}
export default App;

父組件將自己作用域的函數傳遞給子組件,子組件在通過 this.props 調用此函數的過程中,通過參數的方式將數據傳輸到組組件中。
這里父組件有三個形參:msg,name,age;子組件將數據傳輸過來后,父組件會將其使用 this.setState 方式處理。

2.2、子組件代碼

子組件通過使用 this.props 接受到父組件傳輸過來的函數;并調用此函數通過參數的方法,傳輸數據給父組件。

class Child extends React.Component{
......
    change=()=>{
        this.props.callback(this.state.msg,this.state.name,this.state.age);
    }
    render(){
        return(
            <div>
                <button onClick={this.change}>點擊</button>
            </div>
        )
    }
}
export default Child;

子組件中創建了一個方法 change(),此方法和點擊事件 onClick 綁定;change() 方法中會調用 this.props.callback() 函數(父組件傳輸過來的函數);函數的實參就是子組件傳輸給父組件的數據。

看完上述內容,你們掌握怎么在React中實現父組件和子組件的數據傳輸的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

耒阳市| 利川市| 惠东县| 花垣县| 凤台县| 平利县| 汕头市| 筠连县| 水城县| 谢通门县| 张家港市| 贞丰县| 南岸区| 通许县| 石城县| 本溪市| 安塞县| 麟游县| 长乐市| 蒲江县| 西安市| 漳浦县| 仪征市| 舞钢市| 阜宁县| 青州市| 田东县| 江津市| 沂水县| 金溪县| 和龙市| 南郑县| 涟源市| 南陵县| 措勤县| 伊吾县| 镇远县| 溧水县| 临颍县| 深州市| 茶陵县|