3 回答
TA贡献1775条经验 获得超11个赞
还绑定回调函数,以便this回调内部指向React Component的上下文,而不是回调函数
getPosts = () => {
$.ajax({
type: 'get',
url: urlname,
success: (data) => {
this.setState( { posts: data } )
}
});
}
或者你可以像这样使用bind
getPosts = () => {
$.ajax({
type: 'get',
url: urlname,
success: function(data) {
this.setState({ posts: data })
}.bind(this)
});
}
TA贡献1863条经验 获得超2个赞
这个问题与失去的环境相关的这个。请尝试以下方法:
let self = this;
getPosts = () => {
$.ajax({
type: 'get',
url: urlname,
success: function(data) {
self.setState( { posts: data } )
}
});
}
或者您可以使用bind:
getPosts = () => {
$.ajax({
type: 'get',
url: urlname,
success: function(data) {
self.setState( { posts: data } )
}
});
}.bind(this)
TA贡献1813条经验 获得超2个赞
您必须将上下文存储到变量中,因为“ this”引用在回调中将不可用。请尝试以下解决方案:
getPosts = () => {
let that=this;
$.ajax({
type: 'get',
url: urlname,
success: function(data) {
that.setState( { posts: data } )
}
});
}
分享编辑
添加回答
举报