[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
2022-07-05 10:50:25
質問
2つのコンポーネントがあります。 親コンポーネント で、そこから子コンポーネントの状態を変更したい。
class ParentComponent extends Component {
toggleChildMenu() {
?????????
}
render() {
return (
<div>
<button onClick={toggleChildMenu.bind(this)}>
Toggle Menu from Parent
</button>
<ChildComponent />
</div>
);
}
}
そして 子コンポーネント :
class ChildComponent extends Component {
constructor(props) {
super(props);
this.state = {
open: false;
}
}
toggleMenu() {
this.setState({
open: !this.state.open
});
}
render() {
return (
<Drawer open={this.state.open}/>
);
}
}
子コンポーネントの を開く の状態を親コンポーネントから変更するか、子コンポーネントの toggleMenu() を親コンポーネントから呼び出すか?
どのように解決するのですか?
状態は親コンポーネントで管理する必要があります。親コンポーネントから
open
の値を子コンポーネントに転送するには、プロパティを追加します。
class ParentComponent extends Component {
constructor(props) {
super(props);
this.state = {
open: false
};
this.toggleChildMenu = this.toggleChildMenu.bind(this);
}
toggleChildMenu() {
this.setState(state => ({
open: !state.open
}));
}
render() {
return (
<div>
<button onClick={this.toggleChildMenu}>
Toggle Menu from Parent
</button>
<ChildComponent open={this.state.open} />
</div>
);
}
}
class ChildComponent extends Component {
render() {
return (
<Drawer open={this.props.open}/>
);
}
}
関連
-
[解決済み] 親メソッドから子メソッドを呼び出す
-
[解決済み] Reactコンポーネント外でのクリックを検出する
-
[解決済み] Reactのstateとpropsの違いとは?
-
[解決済み] font-faceフォントのプリロード?
-
[解決済み] javascriptからフィールドを無効とすることはできますか?
-
[解決済み] 料金制限のあるAPIを独自にDogfoodする
-
[解決済み] Chrome DevToolsでソースマップを無効にする
-
[解決済み] react-hooksによるステート更新時の非同期コードの実行
-
[解決済み] jQuery ui ダイアログのロードコールバック後にタイトルを変更する
-
[解決済み] AngularJS - $http.postがJSONの代わりにリクエストパラメータを送信する方法はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jqueryでdivの要素がオーバーフローしていないかチェックする
-
[解決済み] event.targetを使用して、要素の親要素をターゲットにすることができますか?
-
[解決済み] 文字列の最後の文字を取得するにはどうすればよいですか?重複
-
[解決済み] uint8配列をbase64エンコードされた文字列に変換する方法は?
-
[解決済み] javascriptからフィールドを無効とすることはできますか?
-
[解決済み] 料金制限のあるAPIを独自にDogfoodする
-
[解決済み] Bootstrap モーダル:トグル時に背景がトップにジャンプする
-
[解決済み] JavaScriptのswitch文で厳密な比較を仮定するのは安全ですか?
-
[解決済み] React Router v4 <NavLink>と<Link>の違いについて
-
[解決済み] JavaScriptの文字列は何バイトですか?