2016-08-25 61 views
1

React Nativeコンポーネントを作成してTouchable要素をラップし、テーマカラーを小道具として取ります。テーマによって、ボタンの背景色が異なります。今私は、小道具をチェックし、それに応じてスタイルを選択するレンダリング関数にifステートメントを持っています:これは正しい方法ですか? if文を別の場所に移動する必要がありますか?これに別のアプローチがありますか?React Nativeの動的背景色のボタンを作成する

答えて

1
Rather than doing this what about : 

super(props); 
this.state = {bgColor : (this.props.theme === 'blue')? styles.blueBg : styles.redBg}; 

render(){ 
return (
<TouchableHighlight style={[styles.button,this.state.bgColor]}> 
    {/* ... */} 
    </TouchableHighlight> 

) 
} 
+0

いいえ、レンダリングが何度も呼び出される可能性があるので、初期化時にテーマを設定することは妥当と思われます。しかし、より多くのテーマがありますので、私は三項演算子を使用しません。 – nbkhope

関連する問題