반응형
상태 Vuex가 Nuxt.js 문제와 제대로 작동하지 않음
내 Nuxt.js 앱에 상태 vuex를 설정하려고 하는데 제대로 작동하지 않아.그래서 여기 내 상태를 가져오기 방법으로 설정했다.
fetch({app, store, route}) {
app.$axios.$get(`apps/${route.params.id}`)
.then(res => {
store.dispatch('setApp', {
...res,
id: route.params.id
})
console.log(app.store.state.app);
})
}
app.store를 로깅할 때 데이터가 존재하지만 로그인하려고 할 때는 다음과 같이 모든 것이 올바르게 작동한다.
created() {
console.log(this.$store);
},
mounted() {
console.log(this.$store);
}
여기 내 상점 코드:
const store = () => new Vuex.Store({
state: {
app: ''
},
mutations: {
'SET_APP' (state, payload) {
state.app = payload
}
},
actions: {
setApp (ctx, payload) {
ctx.commit('SET_APP', payload)
}
},
getters: {
}
})
나는 일을 하지 않는다. 내 주(州)가 비어 있어서 데이터가 내 템플릿에 렌더링되지 않는다. 나는 누군가가 나를 도와줬으면 좋겠다!
추신: 또한 클라이언트측에서 로그온할 때는 모든 것이 정상적으로 작동하지만 SSR에서는 (으)가 되지 않는다.
문서에 언급된 바와 같이
가져오기 방법을 비동기식으로 만들려면 Promise를 반환하고 Nuxt.js는 구성 요소를 렌더링하기 전에 약속이 해결될 때까지 기다리십시오.
위의 코드 예에서 공리 요청은 내부에서 이루어진다.fetch
훅, 그러나 Nuxt는 그것이 해결되기를 기다리지 않을 것이다, 왜냐하면 약속은 반환되지 않기 때문에 그것은 구성 요소를 계속 렌더링하여 실행되기 때문이다.created
그리고mounted
호출 시점까지 채워지지 않은 후크$store
.
잘 되려면, 약속을 돌려주어야 한다.fetch
방법
앱에 추가 코드가 없는 경우 간단히 추가return
성명서를 통해 이 문제를 해결할 수 있다:
fetch({app, store, route}) {
return app.$axios.$get(`apps/${route.params.id}`)
.then(res => {
store.dispatch('setApp', {
...res,
id: route.params.id
})
console.log(app.store.state.app);
})
}
참조URL: https://stackoverflow.com/questions/53045871/state-vuex-dont-work-correctly-with-nuxt-js-problem
반응형
'IT이야기' 카테고리의 다른 글
데이터를 최신 상태로 유지하기 위해 Vuex를 통해 API에서 데이터를 다시 가져오는 시기 (0) | 2022.04.12 |
---|---|
Vuex가 한 방향으로만 업데이트되는 Vue md-input (0) | 2022.04.12 |
vue.js 변경에 대한 파일 입력 (0) | 2022.04.12 |
형식 설명에서 Vue 구성 요소의 프로펠러 값을 인식하지 못함 (0) | 2022.04.12 |
Vuej 어레이의 항목에서 v-model을 사용하는 경우 데이터 바인딩이 작동하지 않음 (0) | 2022.04.12 |