子関数コンポーネントから親クラスコンポーネントにフォーム値を送信します

マット・ブロディ

クラスコンポーネントの数を最小限に抑え、すべてのロジックをできるだけ少ないコンポーネントに保持することが最善であることを学びました。SearchBarコンポーネントの入力タグにこれを配置することで、1つのクラスコンポーネントのみを含むToDoリストを作成することができました。

onChange={e => props.updateVal(e.target.value)}

それはまさに私が望むことを行い、その1つのデータを親のupdateVal関数に送り返します。

私が理解したいのは、すべてテキストフィールドであるいくつかの入力を含む1つのフォーム送信でこれを行う方法です。それも可能ですか?参照を避けて、コンポーネントをクラスに変更したいと思います。私は反応が上手になるので、これは私にとって単なる練習であり、どんな洞察もいただければ幸いです。

マット・カルロッタ

アプリケーション全体で使用できる再利用可能なコンポーネントの作成に重点を置きます。

たとえば、独自の再利用可能なものを作成できますinput

import React from 'react';

// props will consist of "value", "onChange", "name" and a "placeholder"
const Input = props => <input type="text" {...props} />

export default Input;

次に、containerすべての入力を処理するを作成しますvalues

import React, { Component } from 'react';
import Input from '../Input";

const fields = [
 {
   name: "company",
   placeholder: "Company"
 },
 {
   name: "email",
   placeholder: "Email"
 },
 {
   name: "firstName",
   placeholder: "First Name"
 },
 {
   name: "lastName",
   placeholder: "First Name"
 },
];

class Form extends Component {
  state = { firstName: "", lastName: "", email: "", company: "" };

  handleChange = ({ target: {name, value} }) => this.setState({ [name]: value });

  handleSubmit = e => {
   e.preventDefault();
   alert(JSON.stringify(this.state, null, 4));
  }

  render = () => (
    <form onSubmit={this.handleSubmit}>
     {fields.map(props => <Input key="props.name" onChange={this.handleChange} {...props} /> )}   
     <button type="submit">Submit</button>
    </form>
  );

};

 export default Form;

実例(1つのclassコンポーネントと1つの再利用可能なコンポーネント-クリックRun code snippet):

const Input = props => <input type="text" {...props} />

const fields = [
  { name: "company", placeholder: "Company" },
  { name: "email", placeholder: "Email" },
  { name: "firstName", placeholder: "First Name" },
  { name: "lastName", placeholder: "First Name" }
];
    
class Form extends React.Component {
  state = { firstName: "", lastName: "", email: "", company: "" };
    
  handleChange = ({ target: {name, value} }) => this.setState({ [name]: value });
    
  handleSubmit = e => {
    e.preventDefault();
    alert(JSON.stringify(this.state, null, 4));
  }
    
  render = () => (
    <form onSubmit={this.handleSubmit}>
      {fields.map(props => <Input key="props.name" onChange={this.handleChange} {...props}/>)}   
      <button type="submit">Submit</button>
    </form>
  );
};

ReactDOM.render(<Form />, document.body);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>

さらに一歩進んで、Form再利用可能にすることができます。ただし、さまざまな入力、フィールドレベルの検証、およびフィールドのスタイル設定によってフォームが複雑になるため、保守が難しくなります。

class注目のフックに飛び込む前に、esの利用方法を学ぶことをお勧めします

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

親コンポーネントから子コンポーネントのFORMIKフォームフィールド値にアクセスします-ReactJS

分類Dev

子コンポーネントのフォームから親コンポーネントの数値の配列に数値を追加する方法

分類Dev

ネストされたreactコンポーネントの子からフォームonSubmitハンドル関数に値を渡します

分類Dev

React:送信時に子コンポーネントからフォーム値を取得します

分類Dev

React-子から親コンポーネントにカスタム関数を送信する方法

分類Dev

子コンポーネントから親に値を送信する方法(機能コンポーネント)

分類Dev

子コンポーネントからフォームからデータを取得し、それを親コンポーネントに返す方法は?

分類Dev

フォームデータ値を子コンポーネントから親コンポーネントに共有する-Reactjs

分類Dev

Angular5子コンポーネントから親コンポーネントの値を更新します

分類Dev

子から親コンポーネントに値を渡す

分類Dev

反応で子コンポーネントから親にフォーム値を渡す方法

分類Dev

Angular(4):クラスオブジェクトを子から親コンポーネントに渡します

分類Dev

React-親クラスコンポーネント関数は子コンポーネントのクラスを変更します

分類Dev

複数の子コンポーネントからReactの1つの親コンポーネントに情報を送信します

分類Dev

domを子コンポーネントから親コンポーネントに更新します

分類Dev

親から子コンポーネントを更新します

分類Dev

変数の値を子コンポーネントから親コンポーネントに送信するにはどうすればよいですか?

分類Dev

子コンポーネントから親に関数を介してパラメータを渡すReact Redux

分類Dev

親コンポーネントから子コンポーネントに小道具を2回送信する

分類Dev

React-ダムコンポーネント(子)からスマートコンポーネント(親)に参照を渡します

分類Dev

関数コンポーネントをクラスコンポーネントに変換します

分類Dev

親クラスからreact関数コンポーネントの状態を更新しています

分類Dev

Knockoutjs:子コンポーネントから親コンポーネントの関数を呼び出す

分類Dev

Angularの子コンポーネントから親コンポーネント関数を呼び出す

分類Dev

子コンポーネントから親コンポーネント関数を呼び出す

分類Dev

親コンポーネントから子(コンポーネント)関数を実行する

分類Dev

Angular 2:親コンポーネントから子コンポーネントにフィールドのデフォルト値を設定する方法は?

分類Dev

子機能コンポーネントから親クラスコンポーネントに値を渡す方法は?

分類Dev

反応:子コンポーネント(クラスコンポーネントではなく関数コンポーネント)の状態を親から変更するにはどうすればよいですか?

Related 関連記事

  1. 1

    親コンポーネントから子コンポーネントのFORMIKフォームフィールド値にアクセスします-ReactJS

  2. 2

    子コンポーネントのフォームから親コンポーネントの数値の配列に数値を追加する方法

  3. 3

    ネストされたreactコンポーネントの子からフォームonSubmitハンドル関数に値を渡します

  4. 4

    React:送信時に子コンポーネントからフォーム値を取得します

  5. 5

    React-子から親コンポーネントにカスタム関数を送信する方法

  6. 6

    子コンポーネントから親に値を送信する方法(機能コンポーネント)

  7. 7

    子コンポーネントからフォームからデータを取得し、それを親コンポーネントに返す方法は?

  8. 8

    フォームデータ値を子コンポーネントから親コンポーネントに共有する-Reactjs

  9. 9

    Angular5子コンポーネントから親コンポーネントの値を更新します

  10. 10

    子から親コンポーネントに値を渡す

  11. 11

    反応で子コンポーネントから親にフォーム値を渡す方法

  12. 12

    Angular(4):クラスオブジェクトを子から親コンポーネントに渡します

  13. 13

    React-親クラスコンポーネント関数は子コンポーネントのクラスを変更します

  14. 14

    複数の子コンポーネントからReactの1つの親コンポーネントに情報を送信します

  15. 15

    domを子コンポーネントから親コンポーネントに更新します

  16. 16

    親から子コンポーネントを更新します

  17. 17

    変数の値を子コンポーネントから親コンポーネントに送信するにはどうすればよいですか?

  18. 18

    子コンポーネントから親に関数を介してパラメータを渡すReact Redux

  19. 19

    親コンポーネントから子コンポーネントに小道具を2回送信する

  20. 20

    React-ダムコンポーネント(子)からスマートコンポーネント(親)に参照を渡します

  21. 21

    関数コンポーネントをクラスコンポーネントに変換します

  22. 22

    親クラスからreact関数コンポーネントの状態を更新しています

  23. 23

    Knockoutjs:子コンポーネントから親コンポーネントの関数を呼び出す

  24. 24

    Angularの子コンポーネントから親コンポーネント関数を呼び出す

  25. 25

    子コンポーネントから親コンポーネント関数を呼び出す

  26. 26

    親コンポーネントから子(コンポーネント)関数を実行する

  27. 27

    Angular 2:親コンポーネントから子コンポーネントにフィールドのデフォルト値を設定する方法は?

  28. 28

    子機能コンポーネントから親クラスコンポーネントに値を渡す方法は?

  29. 29

    反応:子コンポーネント(クラスコンポーネントではなく関数コンポーネント)の状態を親から変更するにはどうすればよいですか?

ホットタグ

アーカイブ