同じsetstateメソッドを使用して、reactを使用して異なる変数の状態をtrue / falseに設定するにはどうすればよいですか?

someuser2491

状態を特定の条件に設定するtruefalse、特定の条件に基づいて設定する必要があります。親コンポーネントで状態を定義し、その状態を子コンポーネントに設定するtruefalse、子コンポーネントからメソッドを呼び出します。

以下はコードです、

class ParentComponent extends React.purecomponent {
    state = {
        first: false,
        second: false,
    };

    set_first_to_true =() => {
        this.setState({first: true});
    }

    set_first_to_false =() => {
        this.setState({first: false});
    }

    set_second_to_true =() => {
        this.setState({second: true});
    }

    set_second_to_false =() => {
        this.setState({second: false});
    }
    render() {
        return (
            <ChildComponent 
                set_first_to_true={this.set_first_to_true}
                set_first_to_false={this.set_first_to_false}
                set_second_to_true={this.set_second_to_true}
                set_second_to_false={this.set_second_to_false}/>)
     }
 }

 class ChildComponent extends react.purecomponent {
     componentDidUpdate () {
         this.props.set_first_to_true();
         this.props.set_first_to_false();
         this.props.set_second_to_true();
         this.props.set_second_to_false();
     }
}

上記のコードからわかるように、コードの重複があります。繰り返しがないようにこれをリファクタリングするにはどうすればよいですか?ありがとう。

テクノフィル

次のように、1つの状態更新ハンドラーを再利用できます。

// Parent

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

...
render() {
  return (
    <Child onUpdate={this.handleUpdate} />
  );
}

// Child

...
this.props.onUpdate('first', true);
this.props.onUpdate('first', false);
this.props.onUpdate('second', true);
...

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

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

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ