Heim > Artikel > Web-Frontend > So rufen Sie die Methode der untergeordneten Komponente in der übergeordneten React-Komponente auf
Aufrufmethode: 1. Aufrufe in Klassenkomponenten können mit React.createRef(), funktionaler Deklaration von ref oder props mit dem benutzerdefinierten onRef-Attribut implementiert werden. 2. Aufrufe in Funktionskomponenten und Hook-Komponenten können mit useImperativeHandle oder forwardRef throw implementiert werden ref, um dies zu erreichen.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, React18-Version, Dell G3-Computer.
In React rufen wir häufig die Methode der übergeordneten Komponente in der untergeordneten Komponente auf, normalerweise mithilfe des Props-Callbacks. Manchmal ist es jedoch auch erforderlich, die Methode der untergeordneten Komponente in der übergeordneten Komponente aufzurufen, um eine hohe Kohäsion zu erreichen. Es gibt viele Methoden, wenden Sie sie nach Bedarf an.
Vorteile: leicht verständlich, mit Referenz versehen.
Nachteile: Unterkomponenten, die HOC verwenden, sind nicht verfügbar und können nicht auf echte Unterkomponenten verweisen
Einige häufig verwendete Schreibmethoden, z. B. in @observer von mobx eingeschlossene Unterkomponenten, gelten beispielsweise nicht für diese Methode. 2. Funktionale Deklaration von Referenzen Das Gleiche, aber die Art und Weise, ref zu definieren, ist anders.
import React, { Component } from 'react'; class Sub extends Component { callback() { console.log('执行回调'); } render() { return <div>子组件</div>; } } class Super extends Component { constructor(props) { super(props); this.sub = React.createRef(); } handleOnClick() { this.sub.callback(); } render() { return ( <div> <Sub ref={this.sub}></Sub> </div> ); } }
... <Sub ref={ref => this.sub = ref}></Sub> ...
import React, { Component } from 'react'; import { observer } from 'mobx-react' @observer class Sub extends Component { componentDidMount(){ // 将子组件指向父组件的变量 this.props.onRef && this.props.onRef(this); } callback(){ console.log("执行我") } render(){ return (<div>子组件</div>); } } class Super extends Component { handleOnClick(){ // 可以调用子组件方法 this.Sub.callback(); } render(){ return ( <div> <div onClick={this.handleOnClick}>click</div> <Sub onRef={ node => this.Sub = node }></Sub> </div>) } }Zusammenfassung
Das obige ist der detaillierte Inhalt vonSo rufen Sie die Methode der untergeordneten Komponente in der übergeordneten React-Komponente auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!