SyntaxError: missing : after property id
我在Firefox(Mac(上使用Algolia Instant Search的控制台中看到此错误。有人向我报告IE11在视觉上显示相同,但是,我不确定IE中的错误?Chrome和Safari都是没有错误的。
当我反编译我的代码时,Firefox 指出这一行是罪魁祸首,但是,我不确定这是问题行吗?
const {container, placeholder, delayTime = 500, suggestionsIndex, mainIndex} = renderParams.widgetParams;
=====
更新
问题在于 delayTime 的设置方式,尽管我不是 100% 确定应该如何设置它。在短期内,我不会按照上面设置的方式设置延迟时间。相反,我已经注释掉了 delayTime,我用 500 替换了它被调用的地方。
InstantSearch 文档提供的示例似乎使用了一些语法,这些语法在浏览器附带的 JavaScript 版本中可能不可用。
const {container, placeholder, delayTime = 500, suggestionsIndex, mainIndex} = renderParams.widgetParams;
等效于(在现代浏览器中(:
const container = renderParams.widgetParams.container;
const placeholder = renderParams.widgetParams.placeholder;
const delayTime = renderParams.widgetParams.delayTime || 500;
const suggestionsIndex = renderParams.widgetParams.suggestionsIndex;
const mainIndex = renderParams.widgetParams.mainIndex;
解决这些浏览器差异问题的一个常见解决方案是使用 Babeljs 将 JavaScript 代码转换为当前可用的 JavaScript 版本的最低公分母。Babel 的学习曲线一开始可能很陡峭,但这已成为交付适用于所有浏览器的代码的宝贵工具。