0
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 替换了它被调用的地方。

4

1 回答 1

0

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 的学习曲线一开始可能很陡峭,但它已成为交付适用于所有浏览器的代码的宝贵工具。

于 2018-07-18T13:37:14.587 回答