複数のReactコンポーネントの場合、Reactのライフサイクルに共通のコードを挿入します。
何か良い方法がありますか?Reactのコンポーネントに共通のコードを挿入するには
-1
A
答えて
0
@jzmによって提案された高次の構成要素アプローチがbetterですが、あなたはまた、ミックスインを使用することができます。
var myMixin = {
componentWillMount: function(){
//common code
},
componentDidUpdate: function(){
//common code
}
};
var ComponentA = React.createClass({
mixin: [myMixin]
});
var ComponentB = React.createClass({
mixin: [myMixin]
})
1
複数のコンポーネント間で機能を共有することを意味しますか?もしそうなら、あなただけの別のファイルにそれらを保つことができ、必要に今までどこにそれらをインポートします。
// common js
function hello() {
console.log('hello');
}
module.exports = hello;
// your component
var hello = require('./common');
var ComponentA = React.createClass({
componentDidUpdate: function(){
hello();
},//...
http://www.webpackbin.com/Nk80m1x_W
あなたがすることができるもう一つは、ラッパー(高い順)コンポーネントを作成することです:
var WrapperComponent = React.createClass({
componentDidUpdate: function() {
// code you want to inject.
},
render: function() {
return(<div>{this.props.children}</div>);
}
});
あなたがそのライフサイクルを持つコンポーネントを使用する必要がある時はいつでも、その後、あなたはJSXでこれを行うことができます。
<WrapperComponent>
<ComponentA />
</WrapperComponent>
関連する問題
- 1. ReactコンポーネントのコンストラクタとcomponentWillReceivePropsの共通コード
- 2. Semantic UI + React Dropdownコンポーネントにlabel要素を挿入する方法は?
- 3. Reactコンポーネント間の通信
- 4. React-native:コンポーネント間の通信
- 5. React-router - クリックしたリンクに応じてコンポーネントに挿入するデータを選択
- 6. Reactコンポーネントとプロパティを共有するには?
- 7. 共通jコンポーネントによるトランザクション管理
- 8. ReactにHTMLコメントを挿入する
- 9. Svgにangular2コンポーネントを挿入
- 10. View ControllerのView関数に共通のコードを入れる場所は?
- 11. 1つのReactコンポーネントにデータを入力して別のReactコンポーネントにレンダリングする方法は?
- 12. html内にコンポーネントを挿入する
- 13. 共通のヘッダの下にコンポーネントをネストする方法
- 14. Reactコンポーネント間のプロパティの共有
- 15. HTMLコードを挿入するにはMediumEditor?
- 16. リッチテキストエディタのコードをデータベースに挿入する
- 17. Reactコンポーネントのhistory.listenにアクセスするには?
- 18. ReactコンポーネントをDOMに動的に挿入するにはどうすればいいですか?
- 19. Reactコンポーネントのエラー(入力)
- 20. 複数のReact/Reduxアプリケーションにわたる共有コンポーネント
- 21. 通話ログにアプリを挿入する
- 22. 通知バーにトグルスイッチを挿入する
- 23. 親なしのReactコンポーネント間の通信
- 24. 共通のコードは、私がトップにbuild.gradle(モジュール)から共通のコードを抽出したいトップレベルのbuild.gradle(プロジェクト)
- 25. React jsは共通のヘッダーを使用する
- 26. SQL:ネストされた共通テーブル式のテンポラリテーブルへの挿入
- 27. スイッチコードの共通コードのリファクタリング
- 28. サブラインのkeypressにテキスト/コードの行を挿入するには
- 29. angle2コンポーネントにカスタムスクリプトを挿入します。
- 30. React-router v4パラメータを持つ共有コンポーネント
実際、それは@jzmのアプローチではうまくいきませんでした。私もmixinで解決されました。 mixinが便利です。 – izuchy
申し訳ありませんが、私も 'ミックスインで解決されました'とはどういう意味ですか? –
@izuchyミックスインは、今後、反応でサポートされなくなります。だから彼らはこれにアプローチする正しい方法ではありません。 https://facebook.github.io/react/blog/2016/07/13/mixins-considered-harmful.html – jzm