React.js ライブラリ「react-autosuggest」を使用してサジェスト機能を実装する
- 2020.04.07
- React
- react-autosuggest, React.js, ライブラリ, 使い方

ライブラリ「react-autosuggest」をインストールすると、サジェスト機能が簡単に可能です。ここでは、3つキーワードのみの実装ですが、react.jsで react-autosuggestを利用するための手順と簡単な使い方を記述してます。
環境
- OS CentOS Linux release 8.0.1905 (Core)
- node V12.13.1
- npm 6.14.1
- React 16.13.0
react.js環境構築
下記のコマンドで構築してます。ここでは、react-appという名前でプロジェクトを作成してます。
1 |
create-react-app react-app |
react-autosuggestインストール
作成したプロジェクトに移動して、インストールします。
1 2 3 4 5 |
## 作成したプロジェクトに移動 cd react-app ## インストール npm install react-autosuggest |
react-autosuggest 使い方
srcディレクトリにsample.jsと名前で下記のコードを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
import React from 'react'; import Autosuggest from 'react-autosuggest'; const languages = [ { name: 'java', year: 1972 }, { name: 'C言語', year: 2012 }, { name: 'fotran', year: 2012 } ]; const getSuggestions = value => { const inputValue = value.trim().toLowerCase(); const inputLength = inputValue.length; return inputLength === 0 ? [] : languages.filter(lang => lang.name.toLowerCase().slice(0, inputLength) === inputValue ); }; const getSuggestionValue = suggestion => suggestion.name; // Use your imagination to render suggestions. const renderSuggestion = suggestion => ( <div> {suggestion.name}{suggestion.year} </div> ); class Sample extends React.Component { constructor() { super(); this.state = { value: '', suggestions: [] }; } onChange = (event, { newValue }) => { this.setState({ value: newValue }); }; onSuggestionsFetchRequested = ({ value }) => { this.setState({ suggestions: getSuggestions(value) }); }; onSuggestionsClearRequested = () => { this.setState({ suggestions: [] }); }; render() { const { value, suggestions } = this.state; const inputProps = { placeholder: 'プログラム言語を入力して下さい', value, onChange: this.onChange }; // Finally, render it! return ( <Autosuggest suggestions={suggestions} onSuggestionsFetchRequested={this.onSuggestionsFetchRequested} onSuggestionsClearRequested={this.onSuggestionsClearRequested} getSuggestionValue={getSuggestionValue} renderSuggestion={renderSuggestion} inputProps={inputProps} /> ); } } export default Sample |
次に、srcディレクトリ配下にあるApp.jsを下記のように編集します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import React from 'react'; import Sample from './sample'; import './App.css'; function App() { const style = { width: "50%", margin: "0 auto", marginTop: 150 }; return ( <div className="App"> <div style={style}> <Sample /> </div> </div> ); } export default App; |
実行します。
1 |
npm start |
ブラウザから http://プライベートIP:3000にアクセスすると、サジェスト機能が3ワードだけですが、実装されていることが確認できます。

-
前の記事
CentOs8に「VScode」をインストールする手順 2020.04.07
-
次の記事
React.js ライブラリ「react-slick」を使用してスライダーを実装する 2020.04.08
コメントを書く