如何更新项目以使用最新版本的javascript?
我目前正在构建一个新的personal React项目,并希望利用和使用javascript中添加的一些最新功能,如可选链接。我已尝试将此脚本包含在index.html文件中,但没有成功。在React项目中获得最新稳定的javascript版本的秘诀是什么? *编辑:很抱歉,我没有添加足够的信息,但我正在尝试在Reactjs中使用可选的链接功能。但是,当我运行此偶数处理程序时,它会出错并显示以下错误消息: Button.js:18未捕获类型错误:props.onClick不是函数 这是真的,因为我想看看可选链接是如何工作的,但显然在这里不起作用如何更新项目以使用最新版本的javascript?,javascript,reactjs,frontend,Javascript,Reactjs,Frontend,我目前正在构建一个新的personal React项目,并希望利用和使用javascript中添加的一些最新功能,如可选链接。我已尝试将此脚本包含在index.html文件中,但没有成功。在React项目中获得最新稳定的javascript版本的秘诀是什么? *编辑:很抱歉,我没有添加足够的信息,但我正在尝试在Reactjs中使用可选的链接功能。但是,当我运行此偶数处理程序时,它会出错并显示以下错误消息: Button.js:18未捕获类型错误:props.onClick不是函数 这是真的,因为
const eventHandler = (e) => {
console.log(e.target.value);
// other code
// onClick is the function that is passed from the parent component
props?.onClick(e);
}
老实说,直到我仔细研究它,我才完全理解这个语法。我不知道您可以使调用本身成为可选的,并且认为您只能对属性而不是方法/函数进行调用。但是,你可以!您只需要调整使用可选链接的方式。写为:
possiblyUndefinedObject?.possiblyUndefinedFunction?.()
看
如果使用回调或从具有
在分解赋值时,您可能有不存在的值
除非已经测试了函数的存在性,否则不能作为函数调用。使用
?。
,您可以避免此额外测试:
此外,请确保在支持它的浏览器中执行此操作(Firefox 68不起作用,但Chrome 84起作用)
constfoo={}
//你有什么
试一试{
foo?.bar();
}捕捉(错误){
console.error(err);//TypeError:foo?.bar不是函数
}
//带?()但未定义的条
试一试{
foo?.bar?();//未被调用
}捕捉(错误){
console.error(err);//无错误
}
foo.bar=()=>console.log(“bar”);
//带()定义条
试一试{
foo?.bar?();/“bar”
}捕捉(错误){
console.error(err);//无错误
}
JavaScript是非常向后兼容的。如果您可以添加更多关于“不起作用”的详细信息,我们可能会提供帮助。现在,我们不知道这是语法错误、React兼容性错误还是其他原因。请参阅。所使用的引擎决定了可用的功能。在大多数情况下,react表示使用的浏览器的类型和版本(否则为nodejs版本、引擎类型和一般版本)。有些功能在某些浏览器上(无论版本如何)都不可用。还要注意,这意味着最终用户的浏览器是限制。有时,您可以将现代javascript功能转换为旧的、等效的javascript(如果适用),例如使用babel。这是一个完整的话题。你应该阅读javascript执行的基本知识。我使用的是google chrome按钮。js:18未捕获类型错误:props.onClick不是函数
不是javascript语法错误,也不是缺少的功能。这看起来像是一个与您所谈论的主题完全无关的错误。您可能误解了可选链接的作用(在本例中,也可能没有)。