React.js ライブラリ「react-simple-timefield」を使用してシンプルな時刻入力フォームを作成する

React.js ライブラリ「react-simple-timefield」を使用してシンプルな時刻入力フォームを作成する

ライブラリ「react-simple-timefield」をインストールすると、シンプルな時刻入力フォームの作成が可能です。ここでは、react.jsで react-simple-timefield を利用するための手順と簡単な使い方を記述してます。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • node V12.13.1
  • npm 6.14.2
  • React 16.13.0

react.js環境構築

下記のコマンドで構築してます。ここでは、react-appという名前でプロジェクトを作成してます。

create-react-app react-app

react-simple-timefieldインストール

作成したプロジェクトに移動して、インストールします。

## 作成したプロジェクトに移動
cd react-app
 
## インストール
npm install react-simple-timefield @material-ui/core

ここではmaterial-uiも利用します。

react-simple-timefield使い方

srcディレクトリにsample.jsと名前で下記のコードを記述します。

import React from 'react';
import TimeField from 'react-simple-timefield';
import TextField from '@material-ui/core/TextField';

class Sample extends React.Component {
    constructor() {
      super();
  
      this.state = {        
        timeSeconds: '12:34:56'
      };
  
      this.onTimeChange = this.onTimeChange.bind(this);
    }
  
    onTimeChange(event, value) {
      const newTime = value.replace(/-/g, ':');
      const timeSeconds = newTime.padEnd(8, this.state.timeSeconds.substr(5, 3));
  
      this.setState({timeSeconds});
    }
  
    render() {
      const {timeSeconds} = this.state;
  
      return (
        <section className="container">
          <section>
            <div style={{marginRight: 20}}>
              <TimeField
                showSeconds
                value={timeSeconds}
                onChange={this.onTimeChange}
                style={{width: 100}}
                input={<TextField label="Name" value={timeSeconds} variant="outlined" />}
              />
            </div>
          </section>
        </section>
      );
    }
  }
  
export default Sample

次に、srcディレクトリ配下にあるApp.jsを下記のように編集します。

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;

実行します。

npm start

ブラウザから http://プライベートIP:3000にアクセスすると、時刻入力フォームが実装されていることが確認できます。