为什么不能在商店的 nuxtServerInit 中获取工作?
Why doesn't fetch work in store's nuxtServerInit?
对于我的项目,我使用的是 Nuxt。在商店的动作中,我有这段代码:
async nuxtServerInit({ commit }) {
this.dispatch('fetchAllClients')
},
async fetchAllClients({ commit, state }) {
console.log('fetch clients')
await fetch('http://localhost:1337/api/clients', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
})
.then((res) => res.json())
.then((res) => commit('storeClients', res))
},
所以,在 Nuxt init 上,我希望一些提取是 运行,这样它就可以更新一些状态(这是在提取中提交的 storeClients()
中完成的)。如果我在 nuxtServerInit()
中复制 fetchAllClients()
方法,那么一切正常。
async nuxtServerInit({ commit }) {
await fetch('http://localhost:1337/api/clients', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
})
.then((res) => res.json())
.then((res) => commit('storeClients', res))
},
但是当我调用上面代码中所示的单独方法时,fetch 将不起作用。显示了日志,因此正确调用了该方法。但不知何故,获取并没有做任何事情。我做错了什么?
你应该改用这个
async nuxtServerInit({ dispatch }) {
await dispatch('fetchAllClients')
}
对于我的项目,我使用的是 Nuxt。在商店的动作中,我有这段代码:
async nuxtServerInit({ commit }) {
this.dispatch('fetchAllClients')
},
async fetchAllClients({ commit, state }) {
console.log('fetch clients')
await fetch('http://localhost:1337/api/clients', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
})
.then((res) => res.json())
.then((res) => commit('storeClients', res))
},
所以,在 Nuxt init 上,我希望一些提取是 运行,这样它就可以更新一些状态(这是在提取中提交的 storeClients()
中完成的)。如果我在 nuxtServerInit()
中复制 fetchAllClients()
方法,那么一切正常。
async nuxtServerInit({ commit }) {
await fetch('http://localhost:1337/api/clients', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
})
.then((res) => res.json())
.then((res) => commit('storeClients', res))
},
但是当我调用上面代码中所示的单独方法时,fetch 将不起作用。显示了日志,因此正确调用了该方法。但不知何故,获取并没有做任何事情。我做错了什么?
你应该改用这个
async nuxtServerInit({ dispatch }) {
await dispatch('fetchAllClients')
}