Como passar o valor do formulário do componente filho para o componente pai

Indrjit Kumar

Existe uma maneira de passar dados do formulário do componente filho para o componente pai, onde os botões de envio foram mantidos no componente pai.

NOTA: - Não quero usar ref para isso, pois o ref seria um desperdício de muita memória e posso ter de 6 a 7 filhos no pai.

Eu criei uma situação semelhante para mostrar no que estou preso.

class FirstChildForm extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            data: []
        }
    }

    render() {
        return (
            <div className="form">
                <input type="text" placeholder="Enter your name..." />
                <input type="password" placeholder="Enter password" />
            </div>
        )
    }
}


class SecondChildForm extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            data: []
        }
    }

    render() {
        return (
            <div className="form">
                <input type="text" placeholder="Enter your name..." />
                <input type="password" placeholder="Enter password" />
            </div>
        );
    }
}



export default class App extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            data: []
        }
    }

    handleSubmit = () => {

    }

    render() {
        return (
            <div className="parent">
                <FirstChildForm />
                <SecondChildForm />

                <button onClick={this.handleSubmit}> Submit</button>
            </div>
        )
    }
}
Predrag Beocanin

Claro, o conceito é chamado de levantamento do estado . Basicamente, seu <App />componente manteria os dados de ambos os componentes. Vou simplificar um pouco, mas você deve entender o que estou fazendo.

FirstChildForm.js

<input type="text" name="username" onChange={e => props.updateData('user', e.target.value)}

SecondChildForm.js

<input type="password" name="password" onChange={e => props.updateData('pass', e.target.value)}

App.js

export default class App extends React.Component {
    constructor() {
        super();
        this.state = {
            user: '',
            pass: '',
        };
    }

    handleSubmit = () => {};

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

    render() {
        return (
            <div className="parent">
                <FirstChildForm updateData={this.updateData} />
                <SecondChildForm updateData={this.updateData} />

                <button onClick={this.handleSubmit}> Submit</button>
            </div>
        );
    }
}

O <App />componente é a fonte da verdade. Observe:

Ao elevar o estado, <FirstChildForm />e <SecondChildForm />não precisam mais ser componentes baseados em classe, eles podem ser componentes funcionais. Se você quiser que eles permaneçam na classe por qualquer motivo, mude props.updateDatapara this.props.updateData, senão não funcionará.

O pai é onde definimos a função, o filho é onde a executamos, enviando dados para o pai, basicamente!

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como passar o valor do componente filho para o pai

Como passar os valores do formulário do componente filho para o pai na reação

Como passar os dados do formulário do componente pai para o filho?

Como passar o valor do componente pai para o componente filho (reagir)

Como passar o valor do componente filho (componente baseado em função) para o componente pai (componente baseado em classe)

Como passar dados do componente filho para o pai [Angular]

Como passar dados do componente angular filho para o pai

Como passar o estado do componente pai para filho

Como passar dados únicos do componente filho para o pai?

Como passar o valor de entrada do componente pai para o filho sem usar ng no angular?

Como passar o valor de entrada do componente filho para o pai reage

Passar variável do componente pai para o componente filho

Não é possível passar o valor do componente Filho para o Pai (COMPONENTE FUNCIONAL) no ReactJS

Angular4 @Input () para passar o valor do componente pai para o componente filho

VueJs: Como passar um valor de 'função computada' do componente filho para o componente pai usando $ emit (optionalPayload) e $ on?

Como passar a função do componente pai para o componente filho com o tipo assingable

Não é possível passar o valor do botão do componente filho para o pai

Como passar o valor do pai para o filho na primeira renderização e alterar o valor do componente pai do filho?

como passar o estado do componente filho para o componente pai em reações

Como passar o parâmetro href do componente pai vue para o componente filho?

Compartilhe o valor dos dados do formulário do componente filho para o componente pai - React js

Reagir: Passando valor do componente filho para o componente pai

Reagir: Passando valor do componente filho para o componente pai

Como passar dados assíncronos para o componente filho do componente pai?

Como passar a matriz do componente pai para o componente filho em reactjs

Como passar uma matriz do componente filho para o componente pai usando ganchos no react

Como passar dois argumentos para uma função de componente pai do componente filho angular 7?

Como passar dados do componente filho para o componente pai no Angular4

Como posso passar os objetos do componente Pai para o componente Filho no Angular 2?