ネイティブプロジェクトのiOSアプリケーションに反応するボタンが3つあります。クラスをアクティブにしてクリックされたボタンにする方法と、このクラスを他のクラスから削除する方法はありますか? jQueryで使用したaddClass/removeClassと同じですか?ボタンを押したときに元のアクティブなアクティブなクラスに反応します
0
A
答えて
2
まず、あなたのスタイルを「クラス」に定義してください。
const styles = StyleSheet.create({
btnSelected: {
...
},
notSelected : {
}
});
あなたの反応コンポーネントでは、stateプロパティを使用できます。
例:
state = {
btnSelected: 1
}
<Button
style={(this.state.btnSelected== 1)?styles.btnSelected:styles.notSelected}
onPress={() => this.setState({ btnSelected: 1 })} ... />
<Button
style={(this.state.btnSelected== 2)?styles.btnSelected:styles.notSelected} ...
onPress={() => this.setState({ btnSelected: 2 })} .../>
<Button
style={(this.state.btnSelected== 3)?styles.btnSelected:styles.notSelected}
onPress={() => this.setState({ btnSelected: 3 })} ... />
1
React and React Nativeのキーコンセプトは、UIの状態を強制的に設定しないということです。代わりに、いくつかの状態を変更し、それに基づいてUIを宣言的にレンダリングします。
class Buttons extends React.Component {
state = {
activeButton: 'first'
}
render() {
return (
<View>
<Button
onPress={() => this.setState({ activeButton: 'first' })}
isActive={this.state.activeButton === 'first'}
/>
<Button
onPress={() => this.setState({ activeButton: 'second' })}
isActive={this.state.activeButton === 'second'}
/>
<Button
onPress={() => this.setState({ activeButton: 'third' })}
isActive={this.state.activeButton === 'third'}
/>
</View>
)
}
}
onPress
イベントハンドラはすぐに再レンダリングするコンポーネントを起こしsetState
、と地元のコンポーネントの状態を設定します。
あなたは、たとえばローカルコンポーネントの状態(this.state
)を使用することができます。 isActive
プロパティは、this.state.activeButton
と何らかの値を比較する式に基づいて、すべてのボタンに設定されます。
関連する問題
- 1. メニューコンポーネントに「アクティブ」クラスを渡すことに反応しました
- 2. アクティブなクラスを選択したアイテムに追加する反応
- 3. キーボードのボタンを押したときにリンクをアクティブにする
- 4. キーを押したときにボタンをアクティブにするC#ユニバーサルアプリケーション
- 5. jQueryのは、アクティブな押されたボタンを作成し、アクティブでない他のすべてのボタンは
- 6. スライドがアクティブなときにカルーセルカスタムボタンをアクティブに設定します。
- 7. ボタンがアクティブなときにシャドウを削除します。
- 8. アニメーションとアクティブなボタン
- 9. ホバリング時にアクティブなクラスを設定し、アクティブなクラスを維持する
- 10. ボタンはリスト内の要素をアクティブ/非アクティブにします(複雑なケース)
- 11. 親がアクティブなときにJqueryの子がアクティブになる
- 12. 共有ボタンをクリックした後にボタンをアクティブにします
- 13. ボタンをクリックしたときにキーボードをアクティブにする方法
- 14. 現在のスライドにアクティブなクラスを追加します。3次元カルーセル
- 15. HTML無効ボタン:アクティブなCSS疑似クラス
- 16. リンクをクリックしたときにアクティブなクラスを変更するにはjavascript、codeigniter
- 17. キーボードのキーを押してC#ボタンをアクティブにできません
- 18. Androidスタジオ:タップしたときにImageButtonがアクティブにならない
- 19. ファンデーション6 - クリックしたときにドロップダウンアイテムがアクティブにならない
- 20. ボタンをアクティブ/非アクティブにするアンカータグ
- 21. 1つの要素のみアクティブにします(アクティブなもの)
- 22. CallContext.SetData() - スレッドがアクティブ - 非アクティブ - アクティブ(TPL)になったときに使用可能なオブジェクトですか?
- 23. ネストされたナビゲータから反応ナビゲーション変更のアクティブなタブ
- 24. ブートストラップ4のNavbarが反転して非アクティブになります。
- 25. フィルタリングするときにアクティブなボタンをチェックする
- 26. React Nativeで数回押すまでボタンが反応しない
- 27. Angularjs:ボタンにアクティブなクラスを追加する方法
- 28. ボタンにアクティブなクラスを追加するReactJs
- 29. スクリプトアプリがアクティブになるのに反応する方法はありますか?
- 30. 選択したアンカーにアクティブなクラスを追加する