概要: このチュートリアルでは、React Native の Switch コンポーネントを使用してトグルスイッチを作成する方法を学びます。
React Native Switch コンポーネントの紹介
Switch コンポーネントを使用すると、オンとオフの2つの状態を切り替えることができるトグルスイッチを作成できます。
Switch コンポーネントを使用する手順は次のとおりです
まず、react-native ライブラリから Switch コンポーネントをインポートします
import { Switch } from 'react-native';Code language: JavaScript (javascript)次に、useState フックを使用して、スイッチがオンかオフかを追跡するためのブール型の状態変数を作成します
const [isEnabled, setIsEnabled] = useState(false);Code language: JavaScript (javascript)3番目に、Switch を切り替える関数を定義します。この関数は、Switch コンポーネントの現在の状態を否定します
const toggleSwitch = () => setIsEnabled(!isEnabled);Code language: JavaScript (javascript)最後に、isEnabled 状態変数と toggleSwitch 関数を Switch コンポーネントの props に渡します
<Switch
value = {isEnabled }
onValueChange={toggleSwitch}
/> Code language: HTML, XML (xml)完全なアプリは次のとおりです
import React, { useState } from 'react';
import { StyleSheet, Text, View, Switch } from 'react-native';
const SwitchDemo = () => {
const [isEnabled, setIsEnabled] = useState(false);
const toggleSwitch = () => setIsEnabled(!isEnabled);
return (
<View style={styles.container}>
<Text style={styles.text}>{isEnabled ? 'Switch is ON' : 'Switch is OFF'}</Text>
<Switch
onValueChange={toggleSwitch}
value={isEnabled}
/>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
text: {
fontSize: 18,
marginBottom: 10,
},
});
export default SwitchDemo;
Code language: JavaScript (javascript)出力
Switch コンポーネントのスタイル設定
Switch コンポーネントには、外観を変更できる props が用意されています。次のものがあります。
thumbColortrackColorios_backgroundColor(iOS のみに関連)
thumbColor
thumbColor は、スイッチグリップの前景色を指定します。iOSで thumbColor を設定すると、スイッチグリップのドロップシャドウが表示されなくなります。
Switch の状態と組み合わせることで、スイッチがオンまたはオフのときにサムカラーを設定できます。
trackColor
trackColor は、次の2つのキーを持つオブジェクトとしてトラックの色を指定します
falseは、Switch がオフのときのトラックの色を設定します。trueは、Switch がオンのときのトラックの色です。
ios_backgroundColor
この prop は、Switch の背景色を false または無効として設定します。
たとえば、次の例は、thumbColor、trackColor、および ios_backgroundColor の props を変更する方法を示しています
import React, { useState } from 'react';
import { StyleSheet, Text, View, Switch } from 'react-native';
const SwitchDemo = () => {
const [isEnabled, setIsEnabled] = useState(false);
const toggleSwitch = () => setIsEnabled(!isEnabled);
return (
<View style={styles.container}>
<Text style={styles.text}>{isEnabled ? 'Switch is ON' : 'Switch is OFF'}</Text>
<Switch
onValueChange={toggleSwitch}
value={isEnabled}
trackColor={{ false: '#ddd', true: '#f6706b' }}
thumbColor={isEnabled ? '#fbd0cf' : '#fff'}
ios_backgroundColor="#ddd"
/>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
text: {
fontSize: 18,
marginBottom: 10,
},
});
export default SwitchDemo;
Code language: JavaScript (javascript)出力
概要
Switchコンポーネントを使用して、トグルスイッチを作成します。