ReactJS无法读取未定义的属性“setState”
ReactJS cant read property 'setState' of undefined
以此为参考,反应.js - 在表单提交时和之后显示一条消息,我正在尝试复制类似的东西,但我在控制台中遇到错误,"未捕获的类型错误:无法读取未定义的属性'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
您需要
先将this
设置为OnRadarSubmit()
回调之外的变量。
var self = this;
this.props.OnRadarSubmit({ value: radarNum}, function(data){
console.log("data in cb ", data.value);
self.setState({ message: data.value });
});
原因是在回调中,this
不再引用类作用域,因此通过设置 self
,您显式使用封闭作用域。
进一步阅读。
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- AngularJS-使用'true'属性
- 可以't使用JavaScript获取width属性
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何在选项卡上定义属性'的主窗口对象
- 锚点元素的href属性自动更改
- ReactJS无法读取未定义的属性“setState”
- React-无法读取属性'setState'的未定义