JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

React Nativeでドロップダウンを表示する方法【Pickerコンポーネント徹底解説】

React NativeのPickerコンポーネントとは?

React NativeのPickerコンポーネントは、いわゆる「ドロップダウン」に相当するUIパーツです。あらかじめ用意された複数の選択肢の中から、ユーザーがひとつの値を選択するために使います。

基本構文

Pickerコンポーネントの基本的な記述方法は以下のとおりです。

<Picker selectedValue = {selectedelement} onValueChange = {updatefunc}>
   <Picker.Item label = "ItemLabel" value = "ItemValue" />
   <Picker.Item label = "ItemLabel" value = "ItemValue" />
</Picker>

Pickerを使用するには、まずreact-nativeからインポートする必要があります。

import { Picker } from 'react-native'

Pickerの主なプロパティ

番号プロパティと説明
1enabled
ブール値を指定します。falseに設定するとピッカーが無効になり、ユーザーは項目を選択できなくなります。
2itemStyle
各項目に適用されるスタイルを指定します。
3mode
ピッカーの項目をどのような形式で表示するかを決めるプロパティです。「dialog」と「dropdown」の2種類があり、dialogを指定すると項目がモーダルダイアログとして表示され、dropdownを指定すると通常のドロップダウン形式で表示されます。
4onValueChange
ピッカーで項目が選択されたときに呼び出されるコールバック関数です。引数には、実際に選択された値「itemValue」と、その項目のインデックス位置「itemPosition」を受け取ることができます。
5selectedValue
ピッカーで現在選択されている値を指定します。

実装例:Pickerでドロップダウンを表示する

ここでは、Pickerコンポーネントを使ってドロップダウンを表示する具体的な例を紹介します。

まず、JSX部分のコードは以下のとおりです。

<Picker selectedValue = {this.state.user} onValueChange = {this.updateUser}>
  <Picker.Item label = "Steve" value = "steve" />
  <Picker.Item label = "Ellen" value = "ellen" />
  <Picker.Item label = "Maria" value = "maria" />
</Picker>

この例では、「Steve」「Ellen」「Maria」の3つの選択肢をPickerに設定しています。続いて、アプリ全体のコードを見てみましょう。

import React, { Component } from 'react';
import { View, Text, Picker, StyleSheet } from 'react-native'
class PickerExample extends Component {
  state = {user: ''}
  updateUser = (user) => {
    this.setState({ user: user })
  }
  render() {
    return (
      <View>
        <Picker selectedValue = {this.state.user} onValueChange = {this.updateUser}>
        <Picker.Item label = "Steve" value = "steve" />
        <Picker.Item label = "Ellen" value = "ellen" />
        <Picker.Item label = "Maria" value = "maria" />
        </Picker>
      <Text style = {styles.text}>{this.state.user}</Text>
        </View>
      )
    }
  }
  export default PickerExample
  const styles = StyleSheet.create({
  text: {
    fontSize: 30,
    alignSelf: 'center',
    color: 'red'
  }
})

this.state.userがピッカーの状態管理に使われています。ユーザーが項目を選択するとupdateUser関数が呼び出され、stateが更新されて、選択した値が画面下部のテキストにリアルタイムで反映される仕組みです。

実行結果

アプリを実行すると、最初は以下のように何も選択されていない状態で表示されます。

React Nativeでドロップダウンを表示する方法【Pickerコンポーネント徹底解説】

ピッカーをタップして開くと、登録済みの名前の一覧が次のように表示されます。

React Nativeでドロップダウンを表示する方法【Pickerコンポーネント徹底解説】

補足:新しいバージョンでの注意点

なお、React Native本体のPickerコンポーネントはバージョン0.59以降、コアライブラリから分離されました。現在の開発では、コミュニティが提供する@react-native-picker/pickerパッケージをインストールして利用するのが推奨されています。ただし基本的な使い方は変わらないため、上記のコードを参考にしながらインポート元を変更するだけで簡単に対応できます。

  1. 【Android】TextViewでHTMLを表示するには?HtmlCompat.fromHtml()の使い方を解説

    AndroidのTextViewでHTMLを表示する方法Androidアプリ開発では、HTML形式の文字列を取得して、そのままテキストとして画面に表示したい場面があります。本記事では、TextViewにHTMLを表示するためのシンプルな実装方法を、サンプルコード付きでステップごとに解説します。Step 1:プロジェクトを新規作成するまず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目をすべて入力してプロジェクトを作成しましょう。Step 2:レイアウトファイルにTextViewを追加する次に、res/lay

  2. 【Android開発入門】トースト(Toast)を表示する方法をステップ解説

    Androidでトーストを表示するには?この記事では、Androidアプリでトースト(Toast)を表示する方法を、実際のコード例とともにわかりやすく解説します。トーストとは、画面の下部に短時間だけ表示される小さなポップアップメッセージのことで、ユーザーへの簡単な通知やフィードバックに活用されます。それでは、具体的な手順を見ていきましょう。ステップ1:新規プロジェクトを作成するまず、Android Studioを起動し、メニューから「File」→「New Project」を選択して、必要な情報を入力して新しいプロジェクトを作成します。ステップ2:レイアウトファイルにコードを追加する次に、res