我目前正在构建一个新的个人React项目,并希望利用javascript中添加的一些最新特性,比如可选链接。 我曾尝试将此脚本包含在index.html文件中,但没有成功。 在React项目中获得javascript最新稳定构建的秘诀是什么? *编辑:很抱歉,我没有添加足够的信息,但我正在尝试ReactJS中的可选链接特性。 但是,当我运行这个even处理程序时,它会出现以下错误消息:
button.js:18未捕获的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可以)。
null
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
}