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。相反,我注释掉了delayTime,并用500代替了它的位置。
答案 0 :(得分: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的学习曲线可能会很陡峭,但这已成为运送适用于所有浏览器的代码的宝贵工具。