javascript - 您如何更新您的项目以使用最新版本的 javascript?
问题描述
我目前正在构建一个新的个人 React 项目,并希望利用和使用一些添加到 javascript 中的最新功能,例如可选链接。我曾尝试在我的 index.html 文件中包含此脚本,但这不起作用。在你的 React 项目中获得最新稳定的 javascript 版本的秘诀是什么?*编辑:对不起,我没有添加足够的信息,但我正在尝试在 Reactjs 中尝试可选的链接功能。但是,当我运行此偶数处理程序时,它会出现以下错误消息:
Button.js:18 Uncaught TypeError: 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 可以)。
const foo = {}
// What you have
try {
foo?.bar();
} catch (err) {
console.error(err); // TypeError: foo?.bar is not a function
}
// With ?.() but undefined bar
try {
foo?.bar?.(); // Doesn't get called
} catch (err) {
console.error(err); // No error
}
foo.bar = () => console.log("bar");
// With ?.() defined bar
try {
foo?.bar?.(); // "bar"
} catch (err) {
console.error(err); // No error
}
推荐阅读
- c# - 识别 USB 集线器上设备的端口号
- html - 使用管道的角度过滤器帖子
- python - 如何使用 python 获取我的 youtube 历史中最后观看的视频?
- wso2 - 在 WSO2 IS 5.10 中进行后端 api 调用时出现 CORS 问题的示例 Pickup 调度 Web 应用程序
- mysql - 如何从 MariaDB/MySQL 中的日期时间获取一分钟的开始?
- java - JavaFX 2D 组合框
- javascript - Javascript 运行代码显示为空
- typescript - typescript interfacer type between two values
- html - 将固定宽度设置为父级的 100% 高度
- r - how to use mutate c_across when there's multiple "." arguments in the same line