imは反応を使用しており、子をレンダリングして条件に応じてクラスを追加するだけのコンポーネントがあります。 これを行う最善の方法は何ですか?React - 子コンポーネントにクラスを追加する
7
A
答えて
10
私はこれは何私である、一週間前にそれを考え出しました欲しかっ:
export default class ContainerComponent extends React.Component {
constructor(props) {
super(props);
this.modifyChildren = this.modifyChildren.bind(this);
}
modifyChildren(child) {
const className = classNames(
child.props.className,
{...otherClassses}
);
const props = {
className
};
return React.cloneElement(child, props);
}
render() {
return (<div>
{React.Children.map(this.props.children, this.modifyChildren(child))}
</div>);
}
}
+1
私はこの解決策を試みましたが、レンダリング機能からエラーが発生しました。 "子は定義されていません。"私が匿名関数に変更した場合、クラスメソッド(あなたの例ではthis.modifyChildren)を呼び出すのではなく、エラーがなくなり、すべて正常に動作します。これは、 "太い矢印"と従来のJS無名関数の両方で動作します。私たちのコードがほぼ同じ場合、なぜあなたのために、私のためにはうまくいかないのか分かりません。 –
0
内部コンポーネントのメソッドレンダリング:
var childClasses = [],
childClassNames;
if (condition) {
childClasses.push('my-class-name');
}
childClassNames = childClasses.join(' ');
return (<div className={childClassNames}>
.... (your component here)
</div>);
1
あなたが子供に小道具を伝承することができますし、それを適用するためにどのようなクラスを選択することができます(あるいは単にクラス名を渡しますが、これはもっとセマンティックです):
をあなたの子供でレンダリング:
const classes = [];
if (props.contentVisible)
classes.push('visible');
<div className={classes.join(' ')} />
関連する問題
- 1. 子どもをReactコンポーネントに動的に追加する
- 2. React-Bootstrapコンポーネントにクラス名/ IDを追加する方法は?
- 3. ReactコンポーネントをJQueryダイアログに追加する
- 4. React:親コンポーネントがマウントされた後に子要素を追加
- 5. React Reduxコンポーネントを追加する
- 6. 子コンポーネントにルートを追加するReact.js
- 7. Reactの上位コンポーネントにメソッドを追加
- 8. 親コンポーネントの状態が変化したときに子コンポーネントにクラスを追加する
- 9. React(動的に子供を追加)の別のコンポーネントに影響する方法
- 10. React - onChange子コンポーネント
- 11. ** this ** elements子にクラスを追加する
- 12. es6子クラスにメソッドを追加する
- 13. React:ライブラリ内のコンポーネントに小道具を追加するには?
- 14. この子のクラスにクラスを追加
- 15. Reactに同じコンポーネントを追加するボタンがあります
- 16. npmリポジトリにreactコンポーネントを追加する方法は?
- 17. ReactネイティブARTコンポーネントにイベントリスナーを追加する
- 18. 複数の子コンポーネントまたは単純な親コンポーネントにイベントリスナーを追加する
- 19. Angular2は、子イベントの実行時に親コンポーネントにクラスを追加します。
- 20. コンポーネントをonPressに追加する(リアクションナビゲーション)
- 21. React:DOMにコンポーネントを追加する
- 22. 反応中に子コンポーネントを追加すると親が消えます
- 23. React - 親コンポーネントは子コンポーネントを別の要素/ノードにレンダリングする
- 24. React - 親コンポーネントの子コンポーネントにあるrefを取得します
- 25. Reactネイティブの子コンポーネントを設定する
- 26. Reactコンポーネントのthis.props.childrenにカスタム小道具を追加します。
- 27. ReactコンポーネントでStripe.jsスクリプトを追加する方法
- 28. Reactjs動的コンポーネントを他のコンポーネントに追加する
- 29. 子要素をReact要素に追加する
- 30. Reactコンポーネントのすべての子コンポーネントにアクセスする
[この](http://stackoverflow.com/questions/26863938/modify-attributes-of-children-in-reactjs-component)お手伝いをする必要があります。 –