函数回调中的setState

时间:2018-07-08 18:12:05

标签: reactjs

我需要在回调函数中调用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)
            })

但是变量仍然没有改变。.

1 个答案:

答案 0 :(得分:0)

您的回调中还有一层箭头功能。删除行(results) => {和匹配的}。如所写,逻辑是“如果状态正常,则生成一个函数,但不对其执行任何操作”。您已经可以访问results作为外部函数的第一个参数。

相关问题