Boa tarde comunidade,
Estou com bastante dificultade em usar a abordagem utilizada no 2º curso do react para recuperar o valor do input, em vez de usar o state como no 1º curso.
incluindo um input do html funciona normal, mas ao usar um component como input não.
import React, { Component } from 'react';
import InputForm from './InputForm';
export default class FormProduto extends Component {
constructor(props) {
super(props);
}
formSubmit(event) {
event.preventDefault();
// Retorna o valor
console.log(this.login.value);
//Retorna undefined
console.log(this.nome.value);
//Retorna o obj InputForm
console.log(this.nome);
//Retorna undefined
console.log(this.nome.props.value);
}
render() {
return (
<div className="row">
<form className="col s12" onSubmit={this.formSubmit.bind(this)}>
<input type="text" ref={(input) => this.login = input} />
<InputForm
className="input-field col s12"
id="nome"
type="text"
name="nome"
label="Nome"
ref={(input) => { this.nome = input }} />
<button
className="btn waves-effect waves-light input-field col s12 deep-orange lighten-1"
type="submit"
name="action">
Cadastrar
</button>
</form>
</div>
);
}
}
Classe InputForm
import React, { Component } from 'react';
export default class InputForm extends Component {
render() {
return (
<div className={this.props.className}>
<input id={this.props.id} type={this.props.type} name={this.props.name} value={this.props.value} />
<label htmlFor={this.props.id}>{this.props.label}</label>
</div>
);
}
}
console.log(this.nome.props.value); Faz sentido não retornar nada, pois eu não estou enviando o value, ex: value, mas se eu passar o value teria que usar o metodo onchange como feito no 1º curso, certo? ou estou enganado? Queria usar o ref no lugar do onchange para recuperar o valor do input.
Creio que é não é algo complicado, mas estou me quebrando.
Desde já agradeço. Bons estudos à todos.