我需要在回调函数中调用setState。由于某种原因,它似乎没有被调用。在组件外部调用setState的正确方法是什么?这是我的代码:
service.findPlaceFromQuery(request, (results, status) => {
if (status == google.maps.places.PlacesServiceStatus.OK) {
(results) => {
console.log(this.setState())
this.setSate({
addressMarker: {
icon: results[0].image,
title: results[0].name,
lat: results[0].geometry.location.lat,
lng: results[0].geometry.location.lng
}
})
}
}
else
console.log("ERROR!: "+results)
})
我将代码更新如下:
service.findPlaceFromQuery(request, (results, status) => {
if (status == google.maps.places.PlacesServiceStatus.OK) {
console.log(this.setState())
this.setSate({
addressMarker: {
icon: results[0].image,
title: results[0].name,
lat: results[0].geometry.location.lat,
lng: results[0].geometry.location.lng
}
})
}
else
console.log("ERROR!: "+results)
})
但是变量仍然没有改变。.
答案 0 :(得分:0)
您的回调中还有一层箭头功能。删除行(results) => {
和匹配的}
。如所写,逻辑是“如果状态正常,则生成一个函数,但不对其执行任何操作”。您已经可以访问results
作为外部函数的第一个参数。