Skip to content

Cannot read property 'instantSearchInstance' of undefined #249

@superdiazzz

Description

@superdiazzz

I followed the intruction like this package project. i am using vue-instantsearch 4.0.0 for vuejs 3

I copied script like below:

<template>
<div class="app-container">
<div>
    <header class="header">
      <h1 class="header-title">
        <a href="/"> vue-instantsearch-app </a>
      </h1>
      <p class="header-subtitle">
        using
        <a href="https://github.com/algolia/vue-instantsearch">
          Vue InstantSearch
        </a>
      </p>
    </header>

    <div class="container">
      <ais-instant-search
        :search-client="searchClient"
        index-name="instant_search"
      >
        <div class="search-panel">
          <div class="search-panel__filters">
            <ais-refinement-list attribute="brand" />
          </div>

          <div class="search-panel__results">
            <div class="searchbox">
              <ais-search-box placeholder="" />
            </div>
            <ais-hits>
              <template v-slot:item="{ item }">
                <article>
                  <h1>
                    <ais-highlight :hit="item" attribute="name" />
                  </h1>
                  <p>
                    <ais-highlight :hit="item" attribute="description" />
                  </p>
                </article>
              </template>
            </ais-hits>

            <div class="pagination">
              <ais-pagination />
            </div>
          </div>
        </div>
      </ais-instant-search>
    </div>
  </div>
</div>
</template>

<script>
import algoliasearch from 'algoliasearch/lite'
import { h, onMounted, Fragment, render, ref } from 'vue'
import { useRouter } from 'vue-router'
import { createElement } from '../composables/adapter'



export default {

    data(){
      return {
        searchClient: algoliasearch(
          "latency",
          "6be0576ff61c053d5f9a3225e2a90f76"
        ),
      }
    },
    setup(){

        onMounted(() => {
        })

        return {
          
        }
    }

}
</script>

<style scoped>

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 1rem;
}
.search-panel {
  display: flex;
}
.search-panel__filters {
  flex: 1;
}
.search-panel__results {
  flex: 3;
}
.searchbox {
  margin-bottom: 2rem;
}
.pagination {
  margin: 2rem auto;
  text-align: center;
}

</style>

But the result is error in console.

Uncaught (in promise) TypeError: Cannot read property 'instantSearchInstance' of undefined
at Proxy.eval (widget.js?c00b:1)
at Proxy.created (widget.js?c00b:1)
at callWithErrorHandling (runtime-core.esm-bundler.js?5c40:154)
at callWithAsyncErrorHandling (runtime-core.esm-bundler.js?5c40:163)
at callHookFromMixins (runtime-core.esm-bundler.js?5c40:5914)
at callSyncHook (runtime-core.esm-bundler.js?5c40:5890)
at applyOptions (runtime-core.esm-bundler.js?5c40:5825)
at finishComponentSetup (runtime-core.esm-bundler.js?5c40:6503)
at setupStatefulComponent (runtime-core.esm-bundler.js?5c40:6436)
at setupComponent (runtime-core.esm-bundler.js?5c40:6376)
eval @ widget.js?c00b:1
created @ widget.js?c00b:1

Btw, i have same settings in main.js

import InstantSearch from 'vue-instantsearch/vue3/es'
import { projectAuth } from './firebase/config'

let app

projectAuth.onAuthStateChanged(() => {
    if(!app){
        app = createApp(App)
        .use(router)
        .use(store)
        .use(Notifications)
        .use(InstantSearch)
        .mount('#app')        
    }
})

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions