我有个项目目前在某个网站上有。我需要做些改变。当我从gitlab下载一个项目并运行时,它会抛出一个错误:* This must be called within a setup function.*
路径:.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是默认的。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>
型
3条答案
按热度按时间pepwfjgg1#
根据我的经验,npm不能安装
@nuxtjs/composition-api
旧版本,或者类似的东西,所以我卸载了它的旧版本并安装了新版本,它工作正常这就是我所做
字符串
o0lyfsai2#
从现在的情况来看
@nuxtjs/composition-api
我建议你从你的项目中删除任何其他的composition-api,并坚持使用最新版本的官方
@nuxtjs/composition-api
withVuex v4
for Nuxt 2。在最新版本的
@nuxtjs/composition-api
中,可以使用字符串
注意:你必须直接在
setup()
函数中定义像const router = useStore()
这样的辅助函数,而不是在你的方法中,以避免This must be called within a setup function
错误。对于那些想要使用
route
为了顺利升级到Nuxt 3,建议 * 不要**从
useContext
访问route
、query
、from
和params
,而是使用useRoute
辅助函数。ssgvzors3#
我不知道那里发生了什么。我删除了那个仓库并再次克隆了它。接下来我这样做:
npm init
,然后是npm run dev
,这样就行了。