Description
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')
}
})