ReactJS状態の1つの入力フィールドから2つの数値を保存するにはどうすればよいですか?

ファミリーガイ

私はプログラミングに不慣れで、Reactを学びたいと思っています。現在、状態の概念は私には非常に混乱しています。以下のコードでは、ユーザーに1番を入力し、その番号を保存してから2番を入力し、その番号も保存して、最後に合計を表示するように求めるこの単純なアプリを作成しようとしています。入力フィールドに入力できる数字は1つだけです。入力フィールドに値として何を入力すればよいかわかりません。

import React, { Component } from 'react';
import ReactDOM from 'react-dom';

class Random extends Component {
  state = {
    numberOne: '',
    numberTwo: '',
    message: 'Enter number One',
    showTotal: ''
  };

  AddNumbersInTheTextField_one = event => {
    this.setState({
      numberOne: parseInt(event.target.value)
    });
  };

  AddNumbersInTheTextField_two = event => {
    this.setState({
      numberTwo: parseInt(event.target.value)
    });
  };

  HandleSaveButton = () => {
    this.setState(
      {
        numberOne: this.state.numberOne,
        numberTwo: this.state.numberTwo
      },
      function() {
        this.setState({
          numberOne: '',
          message: 'Enter number two'
        });
      }
    );
  };

  HandleShowTotalButton = () => {
    this.setState({
      showTotal: this.state.numberOne + this.state.numberTwo,
      message: this.state.showTotal
    });
  };

  render() {
    return (
      <div>
        <h1>{this.state.message}</h1>
        <div>
          <input
            value={this.state.numberOne}
            onChange={this.AddNumbersInTheTextField_one}
          />
        </div>
        <div>
          <button onClick={this.HandleSaveButton}>Save Number</button>
          <button onClick={this.HandleShowTotalButton}>Show Total</button>
          <div>{this.state.showTotal}</div>
        </div>
      </div>
    );
  }
}

ReactDOM.render(<Random />, document.getElementById('root'));

Q-58999634を編集-EnterNumber

fvaldez421

問題はここにあります:

  HandleSaveButton = () => {
    this.setState(
      {
        // there is no need to set these values because we already have them in state
        numberOne: this.state.numberOne,
        numberTwo: this.state.numberTwo
      },
      function() {
        this.setState({
          // you're setting your numberOne value to ''
          numberOne: '',
          message: 'Enter number two'
        });
      }
    );
  };

入力変更関数をユニバーサルにし、入力の名前属性に値を割り当てることで、コードを少し乾かすことができます。次に、状態のアクティブフィールドに応じて、handleSaveを動的にすることで、コードを単純化します。

state = {
  activeField: 'fieldOne',
  fieldOne: '',
  fieldTwo: '',
  total: '',
  message: '',
}
// this will update any shallow inputs in state
handleInputChange(e) {
  const { target: { name, value } } = e;
  this.setState({ [name]: value });
}
handleSave(e) {
  const { activeField, fieldOne, fieldTwo } = this.state; 
  if (activeField == 'fieldOne') {
    this.setState({ 
      activeField: 'fieldTwo',
      message: 'Enter number two.'
    });
  } else if (activeField == 'fieldTwo') {
    // here we basically cut out the logic you have in HandleShowTotalButton,
    // you may show total to handle a boolean value instead and conditionally
    // render the total value after the user clicks it
    this.setState({ total: fieldOne + fieldTwo });
  }
}
// below is just an example of what your input should look like not the literal jsx you'll be using
render() {
  // we use the activeField as a key in state to obtain our activeValue
  const { activeField } = this.state;
  const activeValue = this.state[activeField];
  return (
    // your inputs could look like this with a dynamic name and value
    <input name={activeField} value={activeValue} onChange={this.handleInputChange} />

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

2つの入力フィールドを必須にし、codeigniterで1つから値を受け入れるにはどうすればよいですか?

分類Dev

リストから1つの入力フィールドのデータ値を取得するにはどうすればよいですか?

分類Dev

1つの入力から2つの整数値を取得するにはどうすればよいですか?

分類Dev

1つのRails4入力フィールドに2つのタイプを設定するにはどうすればよいですか?

分類Dev

ラジオボタンの下の2つの入力フィールドからデータを取得するにはどうすればよいですか?

分類Dev

1つの入力タグから複数のファイルを追加/アップロード/選択するにはどうすればよいですか?

分類Dev

reactjsを使用して別の入力フィールドに入力フィールド値を表示するにはどうすればよいですか?

分類Dev

1つのsqliteテーブルから3つのフィールドレコードを連結し、それを2番目のテーブルの1つのフィールドに挿入するにはどうすればよいですか?

分類Dev

ラジオボタンの値の入力フィールドから値を保存するにはどうすればよいですか?

分類Dev

テキストフィールドと入力する2つの変数を連結するにはどうすればよいですか?

分類Dev

phpの単一フィールドに2つの変数値を挿入するにはどうすればよいですか?

分類Dev

同じ名前の複数の入力テキストフィールドから1つの値のみを取得するにはどうすればよいですか?

分類Dev

reactの複数のフィールドから同じ入力タイプから値を取得するにはどうすればよいですか?

分類Dev

2つのUI要素から状態変数を設定するにはどうすればよいですか?

分類Dev

数値である2つの入力フィールドの値を取得し、Jqueryを使用して除算し、結果を別の入力に表示するにはどうすればよいですか?

分類Dev

コレクションの下で同じuid(状態のようなフィールドの1つ)を持つ異なるドキュメントの特定のフィールド(状態)の値を変更するにはどうすればよいですか?

分類Dev

フォームに1つの入力フィールドのみを送信するにはどうすればよいですか?

分類Dev

Elasticsearchで複数の値を持つ1つのフィールドを検索するにはどうすればよいですか?

分類Dev

複数のテーブルから1つのフィールドのデータを取得するにはどうすればよいですか?

分類Dev

1つのフィールドにデフォルト値がない場合、Laravelに行を挿入するにはどうすればよいですか?

分類Dev

jquery:1つの入力フィールドのパスワードを切り替えるにはどうすればよいですか?

分類Dev

Asp.Net Core Web Appでモデルの1つのフィールドに複数の値を追加するにはどうすればよいですか?

分類Dev

Spring Controllerの1つのフォームから複数の同一のエンティティを保存するにはどうすればよいですか?

分類Dev

キーの1つのフィールドでマップから値を取得するにはどうすればよいですか?

分類Dev

別の列に1つの条件を指定するときに、フォワード値を入力するにはどうすればよいですか?

分類Dev

入力フィールドを壊さないように、数値の挿入にコンマを使用するにはどうすればよいですか?

分類Dev

複数の入力の状態を処理し、それらの状態を親から変更するにはどうすればよいですか?

分類Dev

2つの入力値を計算し、その結果をVue、jsの別の入力フィールドに入力するにはどうすればよいですか?

分類Dev

2つのテーブルから、djangoのいくつかの関連フィールドを選択するにはどうすればよいですか?

Related 関連記事

  1. 1

    2つの入力フィールドを必須にし、codeigniterで1つから値を受け入れるにはどうすればよいですか?

  2. 2

    リストから1つの入力フィールドのデータ値を取得するにはどうすればよいですか?

  3. 3

    1つの入力から2つの整数値を取得するにはどうすればよいですか?

  4. 4

    1つのRails4入力フィールドに2つのタイプを設定するにはどうすればよいですか?

  5. 5

    ラジオボタンの下の2つの入力フィールドからデータを取得するにはどうすればよいですか?

  6. 6

    1つの入力タグから複数のファイルを追加/アップロード/選択するにはどうすればよいですか?

  7. 7

    reactjsを使用して別の入力フィールドに入力フィールド値を表示するにはどうすればよいですか?

  8. 8

    1つのsqliteテーブルから3つのフィールドレコードを連結し、それを2番目のテーブルの1つのフィールドに挿入するにはどうすればよいですか?

  9. 9

    ラジオボタンの値の入力フィールドから値を保存するにはどうすればよいですか?

  10. 10

    テキストフィールドと入力する2つの変数を連結するにはどうすればよいですか?

  11. 11

    phpの単一フィールドに2つの変数値を挿入するにはどうすればよいですか?

  12. 12

    同じ名前の複数の入力テキストフィールドから1つの値のみを取得するにはどうすればよいですか?

  13. 13

    reactの複数のフィールドから同じ入力タイプから値を取得するにはどうすればよいですか?

  14. 14

    2つのUI要素から状態変数を設定するにはどうすればよいですか?

  15. 15

    数値である2つの入力フィールドの値を取得し、Jqueryを使用して除算し、結果を別の入力に表示するにはどうすればよいですか?

  16. 16

    コレクションの下で同じuid(状態のようなフィールドの1つ)を持つ異なるドキュメントの特定のフィールド(状態)の値を変更するにはどうすればよいですか?

  17. 17

    フォームに1つの入力フィールドのみを送信するにはどうすればよいですか?

  18. 18

    Elasticsearchで複数の値を持つ1つのフィールドを検索するにはどうすればよいですか?

  19. 19

    複数のテーブルから1つのフィールドのデータを取得するにはどうすればよいですか?

  20. 20

    1つのフィールドにデフォルト値がない場合、Laravelに行を挿入するにはどうすればよいですか?

  21. 21

    jquery:1つの入力フィールドのパスワードを切り替えるにはどうすればよいですか?

  22. 22

    Asp.Net Core Web Appでモデルの1つのフィールドに複数の値を追加するにはどうすればよいですか?

  23. 23

    Spring Controllerの1つのフォームから複数の同一のエンティティを保存するにはどうすればよいですか?

  24. 24

    キーの1つのフィールドでマップから値を取得するにはどうすればよいですか?

  25. 25

    別の列に1つの条件を指定するときに、フォワード値を入力するにはどうすればよいですか?

  26. 26

    入力フィールドを壊さないように、数値の挿入にコンマを使用するにはどうすればよいですか?

  27. 27

    複数の入力の状態を処理し、それらの状態を親から変更するにはどうすればよいですか?

  28. 28

    2つの入力値を計算し、その結果をVue、jsの別の入力フィールドに入力するにはどうすればよいですか?

  29. 29

    2つのテーブルから、djangoのいくつかの関連フィールドを選択するにはどうすればよいですか?

ホットタグ

アーカイブ