Как обновить родительское состояние в дочернем компоненте и вернуться к родительскому состоянию?

Я передаю объект из родительского компонента в дочерний компонент, и в дочернем компоненте есть несколько полей ввода, которые обрабатываются в родительском компоненте следующим образом:

import React, { Component } from "react";
import Child from 'path';

class parent extends Component {
    constuctor(props){
        super(props);
        this.state = {
            obj :{
                //object
            }
        }
        this.handlerInput =  this.handlerInput.bind(this);
    }

    handlerInput(e){
        //logic to update state obj
    }
    render(){
        return(
            <div className = "content">
                <Child changeHandle = {this.handlerInput}  />
            </div>
        );
    };
}



export default parent;



import React, { Component } from "react";

class Child extends Component {
    render(){
        return(
            <div className = "content">
                <input type = "text" onChange = { this.props.changeHandle } name = "xyz" />
            </div>
        );
    };
}



export default Child;

Теперь давайте предположим, что мне нужно использовать дочерний компонент в нескольких местах, поэтому каждый раз, когда я должен определять функцию changeHandle в родительском компоненте?

Любое предложение обновить родительское состояние от дочернего?

Вы можете использовать Redux для этого.

Hardik Chaudhary 29.05.2019 12:32
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
2
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете попробовать что-то вроде этого

import React, { Component } from "react";
import Child from "./Child";
class Parent extends Component {
    constructor(props){
        super(props);
    }
  state = {
      name: 'Parent',
  };

  changeHandle = e => {
    this.setState({ name: e.target.value });
  };

  render() {
    return (
      <div>
        <Child changeHandle = {this.changeHandle} name = {this.state.name}/>
      </div>
    );
  }
}

export default Parent;


import React, { Component } from "react";
class Child extends Component {
  constructor(props) {
    super(props);
  }
  state = {
    name: "Child"
  };
  render() {
    return (
      <div className = "content">
        <input
          type = "text"
          onChange = {this.props.changeHandle}
          name = "xyz"
          value = {this.props.name}
        />
      </div>
    );
  }
}

export default Child;

Другие вопросы по теме