【发布时间】:2021-06-05 19:55:41
【问题描述】:
我有一个项目。它目前在某个网站上可用。我需要进行一些更改。当我从 gitlab 下载一个项目并运行它时,它会抛出一个错误:这必须在设置函数中调用。
路径:.nuxt/composition-api/index.js
const useContext = () => {
const vm = CompositionApi.getCurrentInstance();
if (!vm)
throw new Error("This must be called within a setup function.");
return {
...(vm[globalNuxt] || vm.$options).context,
route: CompositionApi.computed(() => vm.$route),
query: CompositionApi.computed(() => vm.$route.query),
怎么了?
我需要运行项目以进行一些更改,但无法将其部署到我的本地服务器上。
更新: useContex 在 default.vue 中
...
setup (_, { isServer, refs }: any) {
// console.info(context)
// const refs = context.refs
const { store } = useContext()
const { scrolllock } = scrollLock(store)
const locationName = computed(() => store.getters.locationName)
const location = computed({
set (val: boolean) {
store.dispatch('setLocationModal', val)
},
get () {
return store.getters.locationModal
}
})
...
我尝试访问该站点时的 cmd 输出
[Vue warn]: [vue-composition-api] already installed. Vue.use(VueCompositionAPI) should be called only once.
ERROR [Vue warn]: Error in data(): "Error: This must be called within a setup function." 22:50:04
found in
---> <Layouts/default.vue> at layouts/default.vue
<Root>
ERROR [Vue warn]: Error in data(): "Error: This must be called within a setup function." 22:50:05
found in
---> <Layouts/default.vue> at layouts/default.vue
<Root>
ERROR [Vue warn]: Error in data(): "Error: This must be called within a setup function." 22:50:24
found in
---> <Layouts/default.vue> at layouts/default.vue
<Root>
【问题讨论】:
-
错误提示您在使用
@vue/composition-api和@nuxtjs/composition-api之外。你只需要后者,你不需要用那个模块调用Vue.use(VueCompositionAPI)。 -
不幸的是,它没有帮助。我从 composition-api.js 中删除了 Vue.use(VueCompositionAPI) 并没有帮助。也许还有另一种方式来启动它?我只需要更改 scss 文件。
-
没有足够的上下文来确定问题。你能分享一个复制的链接吗?