Javascript this.setToken不是函数
我试图在我的操作中调用函数,但得到错误Javascript this.setToken不是函数,javascript,Javascript,我试图在我的操作中调用函数,但得到错误this.setToken不是函数: async function setToken() { const { credentials: { year, group, student } } = this.props; const fcmToken = await firebase.messaging().getToken(); if (fcmToken) { firebase
this.setToken不是函数
:
async function setToken() {
const {
credentials: { year, group, student }
} = this.props;
const fcmToken = await firebase.messaging().getToken();
if (fcmToken) {
firebase
.firestore()
.collection("users")
.doc(fcmToken)
.set({
year
})
.then(function() {
return true;
})
.catch(function(error) {
return false;
});
}
}
export function fetchEvents(id) {
const currentDateString =
moment().format("YYYY-MM-DD") + "T" + "07:00:00.000Z";
const url = xxx;
return async dispatch => {
dispatch(isLoading(true));
const setToken = await setToken(); // call here
fetch(url)
.then(response => {
return response;
})
.then(response => response.json())
.then(data => {
const { error } = data;
if (error) {
dispatch(hasErrored(error.message));
} else {
dispatch(fetchSuccessEvents(data.items));
}
navigate("Month");
dispatch(isLoading(false));
});
};
}
有什么想法吗?
setToken
被定义为一个独立的函数,而不是实例或当前this
的属性,或类似的属性:
async function setToken() {
所以,像调用任何其他函数一样调用它,而不要将this
放在它前面
您也不能在内部作用域中使用相同的变量名,否则将引用内部变量(它将以undefined
/uninitialized开头);将结果指定给不同的变量名:
const token = await setToken();
但是您当前的代码没有setToken
解析任何内容,在这种情况下,您可以简单地等待它,而不将结果分配给任何内容:
await setToken();
setToken
被定义为一个独立的函数,而不是实例或当前this
或类似内容的属性:
async function setToken() {
所以,像调用任何其他函数一样调用它,而不要将this
放在它前面
您也不能在内部作用域中使用相同的变量名,否则将引用内部变量(它将以undefined
/uninitialized开头);将结果指定给不同的变量名:
const token = await setToken();
但是您当前的代码没有setToken
解析任何内容,在这种情况下,您可以简单地等待它,而不将结果分配给任何内容:
await setToken();
使用
而不是
this.setToken()
据我所知,您不在类环境中,因此setToken()
不是一个实例或属性,而是一个独立的函数。
如果您喜欢使用类表示法,可以使用window.setToken()
使用
而不是
this.setToken()
据我所知,您不在类环境中,因此setToken()
不是一个实例或属性,而是一个独立的函数。
如果您喜欢使用类表示法,可以使用window.setToken()
这并不是您想象的那样。使用bind
或在您拥有它时保留它的引用。请记录该对象,JS引擎不会对你撒谎。是的,请阅读javascript中这个
的上下文。使用bind
或在您拥有它时保留它的引用。请记录这个对象,JS引擎不会欺骗你。是的,阅读javascriptAh中这个的上下文,你也在使用相同的变量名,需要修复它,所以你使用不同的变量名啊,你也在使用相同的变量名,需要修复它,所以你使用不同的变量名