将vue-instantsearch从1.7.0版本更新为2.0.0后的黑屏

时间:2019-03-11 10:45:43

标签: vuejs2 algolia instantsearch.js vue-instant-search

节点版本:v10.14.1 NPM版本:6.4.1: 操作系统:Windows

说明: 我在我的vuejs项目中集成了阿尔戈利亚,该项目运行良好。现在,我将该模块从1.7.0升级到2.0.0。在升级程序包时,它显示控制台错误,并且屏幕上不显示任何内容。我也尝试通过包含必需的软件包来解决它,但没有得到结果。这是控制台错误:

[Vue warn]:Unknown custom element: <ais-index> - did you register the component correctly? For recursive components, make sure to provide the "name" option.
[Vue warn]: Unknown custom element: <ais-input> - did you register the component correctly? For recursive components, make sure to provide the "name" option
[Vue warn]: Error in nextTick: "TypeError: It looks like you forgot to wrap your Algolia search component "<ais-refinement-list>" inside of an "<ais-instant-search>" component."
TypeError: It looks like you forgot to wrap your Algolia search component "<ais-refinement-list>" inside of an "<ais-instant-search>" component.

这是我的代码:

<template>
  <div id="app">
    <p>{msg}</p>
    <div id="app">
      <ais-index app-id="latency" api-key="6be0576ff61c053d5f9a3225e2a90f76" index-name="ikea">
        <ais-search-box placeholder="Search for a product..."></ais-search-box>
        <ais-results>
          <template scope="{ result }">
            <div class="search-result">
              <img class="result__image img-responsive" :src="result.image">

              <div class="result__info">
                <h2 class="result__name">
                  <ais-highlight :result="result" attribute-name="name"/>
                </h2>
                <div class="result__type">
                  <ais-highlight :result="result" attribute-name="type"/>
                </div>
                <div class="result__rating">
                  <template v-for="n in 5">
                    <span v-if="n <= result.rating" class="result__star"></span>
                    <span v-else class="result__star--empty"></span>
                  </template>
                </div>
                <div class="result__price">${{result.price}}</div>
              </div>
            </div>
          </template>
        </ais-results>
        <ais-pagination v-bind:class-names="{'ais-pagination': 'pagination'}"></ais-pagination>
      </ais-index>
    </div>
  </div>
</template>
<script>
//main.js 
import 'babel-polyfill'
import Vue from 'vue'
import Vuetify from 'vuetify'
import InstantSearch from 'vue-instantsearch'

//router 
import router from './router'
Vue.use(InstantSearch)

Vue.config.productionTip = false

new Vue({
    store,
    router,
    i18n,
    render: h => h(App)
}).$mount('#app')

要使其生效需要进行哪些更改?如果有人需要更多信息,请告诉我。 谢谢!

1 个答案:

答案 0 :(得分:0)

根据您的错误消息:

TypeError: It looks like you forgot to wrap your Algolia search component "<ais-refinement-list>" inside of an "<ais-instant-search>" component.

看起来<ais-instant-search> API的新主要版本可能需要vue-instantsearch

因此,用<ais-instant-search>包裹组件,看看它如何进行:)