Blogブログ

react-selectについて

エンジニアの信尾海翔です。
第十一回目のブログではreact-selectについて簡単に紹介できればと思います。

react-selectとは

ReactJSのライブラリでセレクトボックスにサジェスト機能、複数選択などたくさんの機能を持たせたようなライブラリとなっています。

react-selectを使ってセレクトボックスを作成

今回はreact-selectを使って複数選択できるセレクトボックスを作成したいと思います。
reactの環境構築についてはCreate React Appを使用しています

react-selectをインストール

npm install react-select

以下がreact-selectを使用したコードになっています

import Select from 'react-select'

const App = () => {

  const options = [
    { value: 'value1', label: '値1'},
    { value: 'value2', label: '値2'},
    { value: 'value2', label: '値3'},
  ]

  return (
    <Select 
      options={options}
      isMulti  
      defaultValue={{label:'初期値',value:'default'}}
      onChange={(value)=>{console.log(value)}}
    />
  );
}

export default App;

optionsには表示したい選択肢を配列として渡しています、
表示したい文字列をlabel、受け取りたい値をvalueに定義しています。

isMultiを指定することで複数選択できるようになります。

defaultValueにlabelとvalueを渡すことで初期値を設定することできます。

サジェスト機能がついているので「1」を入力すると「値1」が表示されます。

onChangeには選択された値をconsole.logに表示する処理を渡しています。
例として値1と値2に選択した場合、以下のように配列となって表示されています。

isLoadingを渡すとセレクトボックスの端にローディングアニメーションが表示されます。
trueで表示、falseで非表示となります。

isDisabledを渡すと入力無効状態にすることができます。
trueで無効状態、falseで有効状態

isClearableを渡すとクリアボタンの表示非表示状態を変更することができます。
デフォルトでは表示されていますがfalseを指定して渡すことで非表示にもできます。

余談

一つのセレクトボックスで複数選択させたいなと思い色々探していた所、react-selectを見つけました。
簡単に実装できて、サジェスト機能などでとても分かりやすくよくお世話になっています。
また今回は省略しましたが、Creatableなどを使うことで事前に用意したオプション、自由に値を決めるオプションをユーザが選べるようにすることもできます、またmakeAnimatedを使うことでアニメーションを付けることもできます。

信尾

執筆者

Developer

信尾