【发布时间】:2016-03-03 20:04:12
【问题描述】:
使用它作为参考,react.js - show a message on and after form submission,我试图复制类似的东西,但我在控制台中遇到错误,“未捕获的类型错误:无法读取未定义的属性 'setState'”。我无法确定在状态组件中丢失“this”引用的位置。
import React from 'react'
import RadarInput from './radarInput'
class RadarForm extends React.Component {
constructor(props) {
super(props);
}
onFormSubmit = (data, cb) => {
cb(data);
}
render() {
return (
<div>
<RadarInput OnRadarSubmit={this.onFormSubmit.bind(this)} />
</div>
)
}
}
export default RadarForm
import React from 'react'
class RadarInput extends React.Component {
constructor(props) {
super(props);
this.state = {value:"Hello!", message: ''}
}
handleChange = (evt) => {
this.setState({value: evt.target.value });
}
sendContent = function(e) {
console.log("I'm in content")
console.log("this is e: ", this.state.value);
e.preventDefault();
var radarNum = this.state.value
this.setState({value: '', message: 'Please wait ...'});
this.props.OnRadarSubmit({
value: radarNum
}, function(data){
console.log("data in cb ", data.value);
this.setState({ message: data.value });
});
}
render() {
return (
<div>
Title: <div>{this.state.message}</div>
<form onSubmit={this.sendContent.bind(this)}>
Radar Number: <input type="text" value={this.state.value} onChange={this.handleChange.bind(this)} />
<input type="submit" value="Submit" />
</form>
</div>
)
}
}
export default RadarInput
【问题讨论】:
标签: javascript reactjs this