反応のネイティブ絵スライダー
16363 ワード
✅ ゴール
🏗 プロセス
次のNPMパッケージをインストールします😢
yarn add @react-native-community/slider
スライダコンポーネントを追加しましょう!<View style={styles.container}>
<Slider
/>
</View>
小道具なしでは、部品は正しく見えません..これは、画面上のドットです.スタイルプロップをいくつかの幅と高さを与えるために加えることによって、それを修正します
<View style={styles.container}>
<Slider
style={{width: 200, height: 40}}
/>
</View>
今、我々は話している!だから我々は、ユーザーが様々なポイントにスライダをスライドさせ、それらに示されている絵文字を変更することができる評価をしたい.このミニチュートリアルのために、5つの異なるEmojisを選ぶことができます.だから我々は設定したい
minimumValue
をmaximumValue
である.また、設定したいstep
プロップする1
意味は、我々は1つのポイントを“ステップ”になるスライダを移動するたびに.<View style={styles.container}>
<Slider
style={{width: 200, height: 40}}
minimumValue={1}
maximumValue={5}
step={1}
/>
</View>
次は設定しますonValueChange
スライダの値が変わるたびに呼び出される関数を受け取るprop.これは反応を使いましょうuseState
フックは、我々の機能コンポーネントの状態を維持することができます.反応フックの詳細情報のためにチェックアウトthe documentation .export default function App() {
const [rating, setRating] = React.useState(3);
return (
<View style={styles.container}>
<Slider
style={{width: 200, height: 40}}
minimumValue={1}
maximumValue={5}
step={1}
onValueChange={setRating}
/>
</View>
);
}
それはスライダーのためにそれでなければなりません.我々はそれをスライドさせ、我々のコンポーネントの状態に返される値を保存することができます.これは、ユーザーに表示される絵文字を変更する方法です.セットアップしましょう.それは単に簡単になります<Text>
コンポーネントを変更し、フォントサイズを大きくします.export default function App() {
const [rating, setRating] = React.useState(3); // 3 is the default value
return (
<View style={styles.container}>
<Slider
style={{width: 200, height: 40}}
minimumValue={1}
maximumValue={5}
step={1}
onValueChange={setRating}
/>
<Text style={{ fontSize: 50 }}>
😐
</Text>
</View>
);
}
したがって、この絵文字を変更するためには、コンポーネントがレンダリングされるたびに、関数が呼び出されるようになりますsetRating
フック.const getRatingEmoji = () => {
if (rating === 1){ return '😡' }
if (rating === 2) { return '😫' }
if (rating === 3) { return '😶' }
if (rating === 4) { return '🙂' }
if (rating === 5) { return '😁' }
}
この関数は非常に簡単です、そして、評価が特定の数に等しいならば、単にチェックしてください、そして、それがその数と一致する適当な絵文字を返すならば.最後に、私たちがしなければならないことは、<Text>
コンポーネント.export default function App() {
const [rating, setRating] = React.useState(3);
const getRatingEmoji = () => {
if (rating === 1){ return '😡' }
if (rating === 2) { return '😫' }
if (rating === 3) { return '😶' }
if (rating === 4) { return '🙂' }
if (rating === 5) { return '😁' }
}
return (
<View style={styles.container}>
<Slider
style={{width: 200, height: 40}}
minimumValue={1}
maximumValue={5}
step={1}
onValueChange={setRating}
/>
<Text style={{ fontSize: 50 }}>
{getRatingEmoji()}
</Text>
</View>
);
}
💥 最終結果
ここのフルワーキングコードのチェックRepo
より多くのために私に続いてください!
Reference
この問題について(反応のネイティブ絵スライダー), 我々は、より多くの情報をここで見つけました https://dev.to/jeff_codes/react-native-emoji-slider-3nekテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol