Reactを使用して簡単な連絡フォームを作成しようとしています。最終的に状態から収集されたデータをデータベースに送信しますが、今は正しい値をコンソールログに記録しようとしています。フォーム提出から2つの入力フィールドの状態を更新する
メールフィールドは名前フィールドよりも優先され、コンソールログの両方の状態では名前が表示され、メールは未定義です。ここに私のevent.target.email
への参照がイベント要素上に存在しないコンポーネント
import React, { Component, PropTypes } from 'react';
import ContactData from '../data/ContactData.js';
class FormContact extends Component {
constructor(props) {
super(props)
this.state = {
name: '',
email: '',
textArea: ''
}
}
handleChange(event) {
event.preventDefault();
this.setState({
name: event.target.value,
email: event.target.email
})
}
handleSubmit(event) {
event.preventDefault();
console.log(this.state.name + ' ' + this.state.email);
}
render() {
return (
<form onSubmit={this.handleSubmit.bind(this)}>
<label> Name:
<input type="text" placeholder="Name" value={this.state.name} onChange={this.handleChange.bind(this)} />
</label><br />
<label> Email:
<input type="text" placeholder="Email" value={this.state.email} onChange={this.handleChange.bind(this)}/>
</label><br />
<input className="btn btn-primary" type="submit" value="Submit" />
</form>
)
}
}
FormContact.PropTypes = {
subName: PropTypes.string,
subEmail: PropTypes.string
}
FormContact.defaultProps = {
subName: 'Sam',
subEmail: ''
}
class Contact extends Component {
render() {
return (
<div>
<h1>CONTACT PAGE</h1>
<FormContact />
</div>
)
}
}
export default Contact;
私は仕事の後でこれを設定します - 私が探していたもののように見える、ありがとう! – user3622460
FormContactは、制御されるタイプのテキストの制御されない入力を変更しています。入力要素は、制御されていない状態から制御された状態に切り替わるべきではありません(またはその逆)。コンポーネントの寿命の間、制御された入力要素または制御されていない入力要素を使用するかどうかを決めます。 - - このエラーを生成します – user3622460
制御されない入力の問題を修正するには、名前と電子メールの空の文字列でformValuesオブジェクトを初期化する必要があります。 –