reactで親コンポーネントのクラスのメソッドをpropsとしてまとめて渡す方法はありますか??
<Child parentMethod={this.allMethod}>.
のようなイメージです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
こんにちは。
質問で求められている問題解決になっているか分かりませんが、
例えばこういうことでしょうか?
javascript
1import { Component } from "react"; 2 3class Parent extends Component { 4 constructor(props) { 5 super(props); 6 7 this.handleClick = this.handleClick.bind(this); 8 this.handleChange = this.handleChange.bind(this); 9 this.handleFocus = this.handleFocus.bind(this); 10 11 this.handlers = { 12 onClick: this.handleClick, 13 onChange: this.handleChange, 14 onFocus: this.handleFocus, 15 } 16 } 17 18 handleClick() { 19 // ・・・ 20 } 21 22 handleChange() { 23 // ・・・ 24 } 25 26 handleFocus() { 27 // ・・・ 28 } 29 30 render() { 31 // ・・・ 32 return ( 33 <div> 34 <Child parentHandlers={this.handlers} /> 35 </div>); 36 } 37}
上記では、 Parent
のインスタンスにバインドした3つのハンドラを
this.handlers
にまとめておいて、
<Child parentHandlers={this.handlers} />
として渡しています。
Child
側では、 this.props.parentHandlers.onClick()
のようにして使うことを
想定しています。
Parent
のインスタンスにバインドしていないメソッドを Child
でも
使いたいとすれば、それは utils/
のようなディレクトリを作って、
そこに入れておき、どのコンポーネントからでも使えるユーティリティにすべき
ものなのではないかと思います。
以上は、想像で書いているだけなので、繰り返しになりますが、
質問で求められている問題解決になっているか分かりません。
より的確な回答をお望みであれば、<Child>
を使う側のコンポーネントの
ソース全体を載せたほうがよいかもしれません。
以上参考になれば幸いです。
投稿2018/06/03 06:22
編集2018/06/03 06:24総合スコア9058
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。