gpt4 book ai didi

javascript - const javascript中的调用函数 react native

转载 作者:行者123 更新时间:2023-11-29 17:41:59 25 4
gpt4 key购买 nike

我是 React Native 和 JavaScript 的新手。我来自 java 和 android 开发。我想在 const 中调用一个函数,但无论我尝试什么方式,我都会遇到一大堆错误。

我收到错误:

this.collectionUpdate is not a function

主屏幕:

 onCollectionUpdate = (doc) => {
const items = [];

doc.forEach((doc)=> {
console.log("doc received");
const {Name, imageDownloadUrl,Location} = doc.data();

items.push({
key: doc.id,
doc, //DocumentSnapshot
Name,
imageDownloadUrl,
Location,

});
});

this.setState({
items,
loading: false,
});
}




componentDidMount() {

const geoQuery = geoFirestore.query({
center: new firebase.firestore.GeoPoint(10.38, 2.41),
radius: 10.5
});

const onReadyRegistration = geoQuery.on('ready', () => {
console.log('GeoFirestoreQuery has loaded and fired all other events for initial data');
});


const onKeyEnteredRegistration = geoQuery.on('key_entered', function(key, doc, distance) {
console.log(key + ' entered query at ' + doc.coordinates.latitude
+ ',' + doc.Name
+ ',' + doc.coordinates.longitude
+ ' (' + distance + ' km from center)')

this.onCollectionUpdate(doc)



});

this.onCollectionUpdate = this.onCollectionUpdate.bind(this);
}

我知道这可能对我不起作用,因为我对 javascript 的了解还不足以理解我做错了什么,但是,我将很快开始学习 Javascript 类(class)以更好地理解。但我会非常感谢任何能告诉我哪里出错的人。我觉得这是因为我试图在 const 中调用函数?

最佳答案

这不是关于 const,而是关于 function。使用关键字 function 编写的函数为 this 创建了一个新的作用域。当您在 function 中使用 this 时,您看到的是与函数外部不同的 this

geoQuery.on('key_entered', function(key, doc, distance) {
this.onCollectionUpdate(doc) // wrong "this"
})

解决它的一个简单方法是在这里使用 => 函数:

geoQuery.on('key_entered', (key, doc, distance) => {
this.onCollectionUpdate(doc) // correct "this"
})

关于javascript - const javascript中的调用函数 react native ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52542241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com