我有一个带有 react-native 的 tsx 文件。如果函数未设置为常量或让,则我的函数名称带有下划线,并显示以下消息:
找不到名称"goBack">
goBack = () => {
// do stuff
}
但是如果我设置 const 或让:
const goBack = () => {
// do stuff
}
为什么?
这与箭头函数没有任何关系。您正在尝试为尚未在任何地方声明的标识符分配值。
这:
goBack = () => {
// do stuff
}
将箭头函数分配给已声明的标识符goBack
。(或者,如果这是在class
内,它将创建一个新属性并将箭头函数分配给它 - 但我们知道您不会在类中执行此操作,因为如果您这样做,您的const
版本将失败。
就像:
answer = 42;
如果未声明answer
,则会收到来自 TypeScript 的错误。
这:
const goBack = () => {
// do stuff
}
创建一个局部变量(well,常量)并为其分配箭头函数,就像:
const answer = 42;
记住箭头函数没有声明语法很有用。箭头函数始终是一个表达式。示例中=
左侧的部分不是该箭头函数表达式的一部分(尽管有点令人惊讶的是,它可能会对创建的函数产生影响)。