2018年3月26日
プログラミング
Sliderを使ってみる 【これからはじめるReact Native】
目次
はじめに
前回はスイッチのオンオフを設定できる、Switch
コンポーネントの使い方をご紹介しました。
今回はSlider
コンポーネントを使ってみましょう。
Slider
コンポーネントもその名の通り、スライダーを作るコンポーネントです。
このように、つまみを左右にずらすことで値を変えることができます。
今回はこのSlider
を使い、その数値も表示されるようなサンプルを作っていきます。
Sliderを使ってみる
今回開発するイメージはこちらです。
スライダーのつまみを左右にさせると、値も変動するというものです。
では、今回もSnack Expo を立ち上げましょう。
今回のコードはこちらです。
コードの解説
コードのポイントを解説していきます。
import { Slider, Text, View, StyleSheet } from 'react-native';
こちらでSlider
コンポーネントをインポートしています。
state = {
value: 50
}
お馴染みになってきましたね。
state
の初期化処理です。
value
に50
を初期値として設定しています。
スライダーの初期値として50を設定しています。
ちょっと一言
Sliderのvalueですが、デフォルト値は0です。
今回はスライダーの真ん中である50を指定しましたが、何も指定しなければ0である左端がスライダーの開始地点となります。
changeValue = (value) => {
this.setState({
value: value
});
}
今までも似たようなケースを何回か見てきましたが、今回も値が変更されたら発生するイベントを設定します。
state
のvalue
にvalue
が設定されます。後ほど見ていく、スライダーのつまみの数値が設定されます。
const value = this.state.value;
何回かこのシリーズで出てきていますが、state
の値を変数に設定しています。
<Slider
step={1}
maximumValue={100}
onValueChange={this.changeValue}
value={value}
/>
最後はSlider
コンポーネントです。
1つずつprops
を見ていきます。
step
stepはつまみを調節することでの数値(value)の増減単位となります。
では、ここでstep
を10にしてみてください。
つまみを右に10ずらすと数値が増え、左にずらすと10減るはずです。
maximumValue
maximumValue
はその名の通り、最大値を表しています。
今回は100を最大値(一番右の値)としていますが、当然これも変更可能です。
今回は省略しましたが、反対のminimumValue
も存在します。指定しない場合の初期値は0です。
onValueChange
こちらは値が変化した場合に発動するイベントを設定することができます。
今回の場合は、changeValue
イベントが発動して、state
のvalue
にSlider
のvalue
が設定されます。
value
スライダーの値です。
実際はコントロールする値をドラッグするたびに変更するものではなく、初期値の設定のみで問題ないと考えてください。
流れの振返り
では、今回も流れの振返りをしましょう。
- まず初期化処理で
state
のvalue
に50
を設定する。 state
のvalue
の値をvalue
変数に設定する。Slider
コンポーネントで、value
にvalue
(50) が設定される。- スライダーが動かされる
Slider
コンポーネントのchangeValue
が発動し、state
のvalue
に動かされたつまみ分の値(value
)が設定される。Text
コンポーネントにvalue
が設定され、つまみで動かした値が表示され続ける。
まとめ
スライダーは値の設定などにとても向いています。
例えば体重の増減など、テキストとして直接打つのは少し面倒で、つまみを動かすだけで設定を簡単にしたい場合 などに向いています。
またつまみで動かした値はサーバやアプリケーション側に保存しておくなど、少し高度な方法についても今後説明していきます。
React Nativeのお仕事に関するご相談
Bageleeの運営会社、palanではReact Nativeに関するお仕事のご相談を無料で承っております。
zoomなどのオンラインミーティング、お電話、貴社への訪問、いずれも可能です。
ぜひお気軽にご相談ください。
この記事は
参考になりましたか?
0
0
関連記事
2021年8月30日
React Navigation 6.0のStack Navigatorの大きく変わった箇所の変更点をまとめてみた
2021年1月4日
react-native-svgを使ってReact NativeでSVGを扱う
2019年12月23日
Expo Bare Workflow で Firebase Analytics を設定する
2018年12月6日
【React Native】キーボードで画面が隠れる場合の対処法
2018年7月13日
TypeScriptでReact Native開発をする方法2018年最新版
2018年6月29日
React Navigationのタブナビゲーションをカスタマイズしてみよう!
簡単に自分で作れるWebAR
「palanAR」はオンラインで簡単に作れるWebAR作成ツールです。WebARとはアプリを使用せずに、Webサイト上でARを体験できる新しい技術です。
palanARへpalanでは一緒に働く仲間を募集しています
正社員や業務委託、アルバイトやインターンなど雇用形態にこだわらず、
ベテランの方から業界未経験の方まで様々なかたのお力をお借りしたいと考えております。
運営メンバー
Eishi Saito 総務
SIerやスタートアップ、フリーランスを経て2016年11月にpalan(旧eishis)を設立。 マーケター・ディレクター・エンジニアなど何でも屋。 COBOLからReactまで色んなことやります。
sasakki デザイナー
アメリカの大学を卒業後、日本、シンガポールでデザイナーとして活動。
やまかわたかし デザイナー
フロントエンドデザイナー。デザインからHTML / CSS、JSの実装を担当しています。最近はReactやReact Nativeをよく触っています。
Sayaka Osanai デザイナー
Sketchだいすきプロダクトデザイナー。シンプルだけどちょっとかわいいデザインが得意。 好きな食べものは生ハムとお寿司とカレーです。
はらた エンジニア
サーバーサイドエンジニア Ruby on Railsを使った開発を行なっています
こぼり ともろう エンジニア
サーバーサイドエンジニア。SIerを経て2019年7月に入社。日々学習しながらRuby on Railsを使った開発を行っています。
ささい エンジニア
フロントエンドエンジニア WebGLとReactが強みと言えるように頑張ってます。
Damien
WebAR/VRの企画・開発をやっています。森に住んでいます。
ゲスト bagelee
かっきー
まりな
suzuki
miyagi
ogawa
雑食デザイナー。UI/UXデザインやコーディング、時々フロントエンドやってます。最近はARも。
いわもと
デザイナーをしています。 好きな食べ物はラーメンです。
taishi kobari
フロントエンドの開発を主に担当してます。Blitz.js好きです。
kubota shogo
サーバーサイドエンジニア。Ruby on Railsを使った開発を行いつつ月500kmほど走っています!
nishi tomoya
aihara
グラフィックデザイナーから、フロントエンドエンジニアになりました。最近はWebAR/VRの開発や、Blender、Unityを触っています。モノづくりとワンコが好きです。
nagao
SIerを経てアプリのエンジニアに。xR業界に興味があり、unityを使って開発をしたりしています。
Kainuma
サーバーサイドエンジニア Ruby on Railsを使った開発を行なっています
sugimoto
asama
ando
iwasawa ayane
oshimo
異業界からやってきたデザイナー。 palanARのUIをメインに担当してます。 これからたくさん吸収していきます!