React:選択したオプションに基づいてテキスト入力を追加/変更します

Shrav

選択したオプションに基づいて、新しいテキスト入力を表示しようとしています。以下のようにそれを行うことができますが、新しい選択オプションを何に変更しても、入力された古い値は常に存在します。

これを達成するためのより良い方法は何でしょうか?提案に感謝します。

class loadComponent extends React.Component {
    static propTypes = {
      ......
    };
    static defaultProps = {
     ....
    };
    constructor() {
     super();
     this.state = {
       value: ""
     };
    }
     state = {
      ...
     };

reset = (selected) => {
       this.setState({
        selectedInputName: selected.target[selected.target.selectedIndex].text,
        selectedInputId: selected.target.value
       });
};

makeTextInput = () => {
    return (
        <TextInput
            label={this.state.selectedInputName}
            placeholder={`Please enter ${this.state.selectedInputName} here!`}
            onBlur={event => this.setState({[this.state.selectedInputId]: event.target.value})}
            showClear
            value={this.state.value}
        />
    );
};
render() {
    let newInputText = '';
    if (this.state.selectedInputId !== '') {
        newInputText = this.makeTextInput();
    }
    return (
        <Select
            label="What would you like to search with?"
            options={this.props.searchOptions}
            onChange={selected => this.reset(selected)}
        />
        <div className="search margin_bottom_large">
            {newInputText}
    );
マルゼリン

makeTextInput関数は新しいオブジェクトを作成しますが、reactの観点からreactは、typeとを見て区別するため、同じコンポーネントkeyです。reactに要素を再作成させるには、これらの値の1つを変更する必要があります。

このコードはtypeNewInputTextレンダリングするたび要素を変更しますNewInputText常に新しい関数を参照するため)。

reset = (selected) => {
       this.setState({
        selectedInputName: selected.target[selected.target.selectedIndex].text,
        selectedInputId: selected.target.value
       });
};

makeTextInput = () => {
    return (
        <TextInput
            label={this.state.selectedInputName}
            placeholder={`Please enter ${this.state.selectedInputName} here!`}
            onBlur={event => this.setState({[this.state.selectedInputId]: event.target.value})}
            showClear
        />
    );
};
render() {
    let NewInputText = () => '';
    if (this.state.selectedInputId !== '') {
        NewInputText = () => this.makeTextInput();
    }
    return (
        <Select
            label="What would you like to search with?"
            options={this.props.searchOptions}
            onChange={selected => this.reset(selected)}
        />
        <div className="search margin_bottom_large">
            <NewInputText />
    );

このコードは、TextInput毎回異なるキーを割り当てます

reset = (selected) => {
       this.setState({
        selectedInputName: selected.target[selected.target.selectedIndex].text,
        selectedInputId: selected.target.value
       });
};

makeTextInput = () => {
    return (
        <TextInput
            key={Math.random()}
            label={this.state.selectedInputName}
            placeholder={`Please enter ${this.state.selectedInputName} here!`}
            onBlur={event => this.setState({[this.state.selectedInputId]: event.target.value})}
            showClear
        />
    );
};
render() {
    let newInputText = '';
    if (this.state.selectedInputId !== '') {
        newInputText = this.makeTextInput();
    }
    return (
        <Select
            label="What would you like to search with?"
            options={this.props.searchOptions}
            onChange={selected => this.reset(selected)}
        />
        <div className="search margin_bottom_large">
            {newInputText}
    );

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

選択したオプションjavascriptに基づいてスパンテキストを動的に変更します

分類Dev

JavaScript-選択オプションの性別選択に基づいて入力テキスト値を変更する方法

分類Dev

選択したオプションに基づいて入力の値を変更しますが、複数のセットの場合

分類Dev

追加された選択ボックスの入力ボックスの値に基づいてオプションボックスを選択します

分類Dev

選択したオプションに基づいてテキストを変更するにはどうすればよいですか?

分類Dev

入力の値に基づいてオプションを選択します

分類Dev

選択した番号に基づいてテキスト入力を追加します

分類Dev

jQuery-値ではなくテキストに基づいて選択オプションを削除します

分類Dev

jQueryを使用したテキストボックス入力に基づいて、ドロップダウンリストでオプションを選択します

分類Dev

別の選択に基づいて選択オプションにVueとJSONを入力します

分類Dev

Appmaker入力フォーム、以前のドロップダウンの選択に基づいてオプションを変更します

分類Dev

選択したオプションに基づいて、同じ選択でオプションを変更します

分類Dev

選択ボックスのオプション値に基づいて画像のsrc値を変更します

分類Dev

選択したドロップダウンオプションに基づいて、テキストの長さを2つの値のいずれかに変更します

分類Dev

選択したオプションテキストに基づいて<select>要素を選択するにはどうすればよいですか?

分類Dev

操り人形師:外部関数のテキストに基づいて選択されたドロップダウンオプションを設定します

分類Dev

ReactJSは、プロップテキストの一致に基づいて選択されたオプションを設定します

分類Dev

入力のすべての値に基づいてオプションを選択します

分類Dev

選択したオプションからテキストを取得して入力に送信する

分類Dev

Jquery:テキストボックスのテキストに基づいてドロップダウンのオプションを選択します

分類Dev

選択オプションに基づいてテキストボックスに自動入力

分類Dev

選択したものに応じて、テキスト入力または選択オプションをデータベースに投稿する

分類Dev

選択した曜日と週末に基づいて、入力にテキスト/数値を表示します

分類Dev

選択オプションに基づいてテキストフィールドに入力

分類Dev

選択したオプションに基づいて値を変更するには?

分類Dev

選択したドロップダウン値に基づいて入力テキストボックス列の合計を取得します

分類Dev

反応-オプションに基づいてsingleValueの色を変更するを選択します

分類Dev

入力ボックスの数値に基づいて選択ボックスオプションを選択します

分類Dev

クリックした<a>に基づいて選択オプションを変更する

Related 関連記事

  1. 1

    選択したオプションjavascriptに基づいてスパンテキストを動的に変更します

  2. 2

    JavaScript-選択オプションの性別選択に基づいて入力テキスト値を変更する方法

  3. 3

    選択したオプションに基づいて入力の値を変更しますが、複数のセットの場合

  4. 4

    追加された選択ボックスの入力ボックスの値に基づいてオプションボックスを選択します

  5. 5

    選択したオプションに基づいてテキストを変更するにはどうすればよいですか?

  6. 6

    入力の値に基づいてオプションを選択します

  7. 7

    選択した番号に基づいてテキスト入力を追加します

  8. 8

    jQuery-値ではなくテキストに基づいて選択オプションを削除します

  9. 9

    jQueryを使用したテキストボックス入力に基づいて、ドロップダウンリストでオプションを選択します

  10. 10

    別の選択に基づいて選択オプションにVueとJSONを入力します

  11. 11

    Appmaker入力フォーム、以前のドロップダウンの選択に基づいてオプションを変更します

  12. 12

    選択したオプションに基づいて、同じ選択でオプションを変更します

  13. 13

    選択ボックスのオプション値に基づいて画像のsrc値を変更します

  14. 14

    選択したドロップダウンオプションに基づいて、テキストの長さを2つの値のいずれかに変更します

  15. 15

    選択したオプションテキストに基づいて<select>要素を選択するにはどうすればよいですか?

  16. 16

    操り人形師:外部関数のテキストに基づいて選択されたドロップダウンオプションを設定します

  17. 17

    ReactJSは、プロップテキストの一致に基づいて選択されたオプションを設定します

  18. 18

    入力のすべての値に基づいてオプションを選択します

  19. 19

    選択したオプションからテキストを取得して入力に送信する

  20. 20

    Jquery:テキストボックスのテキストに基づいてドロップダウンのオプションを選択します

  21. 21

    選択オプションに基づいてテキストボックスに自動入力

  22. 22

    選択したものに応じて、テキスト入力または選択オプションをデータベースに投稿する

  23. 23

    選択した曜日と週末に基づいて、入力にテキスト/数値を表示します

  24. 24

    選択オプションに基づいてテキストフィールドに入力

  25. 25

    選択したオプションに基づいて値を変更するには?

  26. 26

    選択したドロップダウン値に基づいて入力テキストボックス列の合計を取得します

  27. 27

    反応-オプションに基づいてsingleValueの色を変更するを選択します

  28. 28

    入力ボックスの数値に基づいて選択ボックスオプションを選択します

  29. 29

    クリックした<a>に基づいて選択オプションを変更する

ホットタグ

アーカイブ