我从instantsearch.js收到一个对我没有任何意义的错误.错误是:
错误:发生了缩小的异常; 使用非缩小的开发环境获取完整的错误消息和其他有用的警告.
我已经创建了一个有问题的代码小提琴:
https://jsfiddle.net/qkqzgsv9/
这是HTML:
Number | Name | Starts | Duration | Room |
---|
这是Javascript:
var search = instantsearch({ appId: '5V0BUFDX8J', apiKey: 'a25692c12853aea7a77c5a7125498512', indexName: 'C86FE050-6C48-11E5-84AA-BA5F164D0BA4_events', urlSync: { useHash: true } }); search.addWidget( instantsearch.widgets.searchBox({ container: '#search-box', autofocus: true, placeholder: 'Search for events by keyword, description, or event number.' }) ); search.addWidget( instantsearch.widgets.hits({ container: '#hits-container', templates: { empty: 'No events found', item: '' }, }) ); search.addWidget( instantsearch.widgets.pagination({ container: '#pagination-container' }) ); search.start(); {{event_number}} {{name}} {{startdaypart_name}} {{duration_name}} {{room_name}}
它发生在Safari和Chrome中.我甚至没有使用minimalsearch版本的instantsearch.js.知道是什么原因引起的吗?
这是一个棘手的bug,因为这个小部件在内部使用React而生成它.
小部件尝试呈现将包含您的模板的div.但这是不正确的,因为你的模板包含无法在div中呈现的td,因此浏览器会尝试修复它.这导致React抛出一个不变的违规错误,因为DOM不是它所期望的.最后,您可以看到此特定错误,因为React在构建中缩小了.
解决方法是不使用td或等待此问题https://github.com/algolia/instantsearch.js/issues/707修复.