Я не знаю, правильно ли я делаю это ... Если я хочу получить значение из ввода, я использую this.refs.whatever.value.trim(), но если этот вход является компонентом функции без состояния, как действительно ли я получаю значение onSubmit?Реакция безстоящего компонента this.refs..value?
Я знаю, что это неправильно сейчас после исследования, но как вы должны получать значение от этих полей ввода?
import React, {Component} from 'react'
import {InputField} from '../components/forms/InputField'
import {Button} from '../components/forms/Button'
export default class SignupWrapper extends Component {
_handleSubmit(e) {
e.preventDefault();
const email = this.refs.email.value.trim();
const password = this.refs.password.value.trim();
const confirm = this.refs.confirm.value.trim();
console.log({email, password, confirm});
}
render() {
return (
<form id="application-signup" onSubmit={this._handleSubmit.bind(this)}>
<InputField type={'email'} name={'email'} text={'email'}
helpBlock={'email is required'} ref="email" />
<InputField type={'password'} name={'password'} text={'password'}
helpBlock={'password is required'} ref="password" />
<InputField type={'password'} name={'confirm'} text={'confirm password'}
helpBlock={'password confirmation is required'} ref="confirm" />
<Button type={'submit'} className={'btn btn-primary'} text={'signup'} />
</form>
)
}
}
это безгосударственного InputField
import React from 'react'
export const InputField = (props) => (
<div className="form-group col-xs-12">
<label htmlFor={props.name}>{props.text}</label>
<input type={props.type} name={props.name} className="form-control"
data-stripe={props.stripe} />
<span className="help-block">{props.helpBlock}</span>
</div>
)
http://stackoverflow.com/questions/25941585/react-refs-with-components – jmancherje
Мой совет: избегать рефов, всегда. В вашем случае сделайте свой контейнер с сохранением состояния и передайте обработчик изменений в поля ввода. Всякий раз, когда изменяется поле ввода, он вызывает обработчик родителя для обновления состояния. – wintvelt
Спасибо, я понимаю это сейчас. Это форма для полосы, безопасно ли хранить информацию о кредитной карте в состоянии? И почему refs плохо? Мне интересно, потому что два учебника, которые я закончил: официальный ЦДТ Метеор + Реакт, и Meteor + Reuters для LevelOpTuts для всех используют refs. Можете ли вы объяснить это мне? – cocacrave