Ich habe eine Header-Komponente, die eine Schaltfläche enthalten, und ich möchte diese Taste eine andere Komponente (modal Seite) angezeigt werden, wenn es angeklickt wird.So rufen Sie eine Komponentenmethode von einer anderen Komponente auf?
Kann ich etwas tun, wie folgt aus:
Hier ist meine Header-Komponente:
import ComponentToDisplay from './components/ComponentToDisplay/index'
class Header extends React.Component {
constructor(props) {
super(props)
}
props : {
user: User
}
_handleInvitePlayerClick =() => {
this.refs.simpleDialog.show();
}
render(){
return(
<Button onClick={this._handleInvitePlayerClick} ><myButton/></Button>
<ComponentToDisplay />
)
}
}
Hier ist meine Komponente für die modal-Seite, die angezeigt werden soll, wenn die Taste auf der anderen Komponente angeklickt wird:
class ComponentToDisplay extends React.Component {
componentDidMount() {
}
render() {
return (
<div>
<SkyLight
ref="simpleDialog"
title={"Title for the modal"}>
{"Text inside the modal."}
<Button onClick={() => this.refs.simpleDialog.hide()}>{"Close modal"}</Button>
</SkyLight>
</div>
)
}
}
Bibliothek für die modale verwendet: https://github.com/marcio/react-skylight
sollten Sie die 'ref'-Stütze zu Ihrem' ComponentToDisplay' hinzufügen, damit es unter 'this.refs' mindestens – stinodes
registriert wird, aber in aller Ehrlichkeit sollten Sie nur einen Zustand auf Klick aktualisieren und das als Prop zu übergeben Ihr Dialog, damit er entscheiden kann, ob er rendern soll oder nicht. – stinodes
Mögliches Duplikat [ReactJS - Call Eine Component-Methode von einer anderen Komponente] (https://stackoverflow.com/questions/39119537/reactjs-call-one-component-method-from-another-component) –