ボタンを含むヘッダーコンポーネントがあり、クリックするとこのボタンに別のコンポーネント(モーダルページ)が表示されます。他のコンポーネントからコンポーネントメソッドを呼び出す方法は?
は、私はこのような何かを行うことができます:ここで
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 />
)
}
}
が他のコンポーネント上のボタンをクリックますときに表示されなければならないモーダルページのための私のコンポーネントです:
は、ここに私のヘッダーコンポーネントの
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>
)
}
}
ライブラリをモーダルに使用されている:https://github.com/marcio/react-skylight
少なくとも ' – stinodes
'に' this.refs'の下で登録されるためには、 'Component'Display'に' ref' propを追加するべきですが、正直なところ、あなたはクリック時に状態を更新し、ダイアログが表示されるかどうかを決定するダイアログが表示されます。 – stinodes
[ReactJS - 別のコンポーネントから1つのコンポーネントメソッドを呼び出す]の可能な複製(https://stackoverflow.com/questions/39119537/reactjs-call-one-component-method-from-another-component) –