Algolia instantsearch.js发生了缩小的异常;不变

时间:2015-12-29 17:03:20

标签: algolia

我从instantsearch.js收到一个对我没有任何意义的错误。错误是:

错误:发生了缩小的异常;使用非缩小的开发环境获取完整的错误消息和其他有用的警告。

我创造了一个问题代码的小提琴:

https://jsfiddle.net/qkqzgsv9/

这是HTML:

<div type="text" id="search-box" class="form-control"></div>
<table class="table table-striped">
            <thead>
                <tr>
                    <th>Number</th>
                    <th>Name</th>
                    <th>Starts</th>
                    <th>Duration</th>
                    <th>Room</th>
                    <th><span class="glyphicon glyphicon-info-sign"></span></th>
                </tr>
            </thead>
            <tbody id="hits-container">
            </tbody>
</table>
<div id="pagination-container"></div>

这是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: '<tr><td><a href="{{view_uri}}">{{event_number}}</a></td><td><a href="{{view_uri}}" target="_new">{{name}}</a></td><td>{{startdaypart_name}}</td><td>{{duration_name}}</td><td>{{room_name}}</td><td><span class="glyphicon glyphicon-info-sign" data-toggle="tooltip" title="{{description}}"></span></td></tr>'
      },
    })
  );

  search.addWidget(
    instantsearch.widgets.pagination({
      container: '#pagination-container'
    })
  );

  search.start();

在Safari和Chrome中都会发生这种情况。我甚至没有使用minimalsearch版本的instantsearch.js。知道是什么导致了它吗?

1 个答案:

答案 0 :(得分:5)

这是一个棘手的错误,因为这个小部件在内部使用了React而生成它。

小部件尝试呈现将包含模板的div。但这是不正确的,因为您的模板包含无法在div中呈现的td,因此浏览器会尝试修复该问题。这导致React抛出一个不变的违规错误,因为DOM不是它所期望的。最后,您可以看到此特定错误,因为React在构建中缩小了。

修复方法是不使用td或等待解决此问题https://github.com/algolia/instantsearch.js/issues/707