javascript - 在突变和吸气剂之间失去状态 - Vuex / Nuxt
问题描述
我尝试根据单击按钮的状态(navBar.vue
)呈现组件。
我看到了具有正确数据的动作和突变,但我无法让 getter 检索pageVisible
(应该是perso-page
or result-page
)的状态。它是:
- 不明确的
- 什么都没有(没有console.log)
我尝试了许多选项,例如设置一些选项,async await
但没有一个真正成功。我确信这是一件显而易见的事情,但我无法确定原因。
如果您看到我如何在 getter 中获得正确的状态并调用它,请告诉我page.vue
(现在它不会渲染任何东西,但这不是这个问题的重点)。
谢谢!
页面.vue
<template>
<div class="container-week">
<NavBar></NavBar>
<InputPerso v-if="pageVisible === 'perso-page'"></InputPerso>
<Results v-else></Results>
</div>
</template>
<script>
import NavBar from '../components/week-seven/NavBar'
import InputPerso from '../components/week-seven/personalised/InputPerso'
import Results from '../components/week-seven/Results'
export default {
name: 'Week7',
components: {
NavBar,
InputPerso,
Results
},
data() {
return {
pageVisible: ''
}
},
computed: {
getCurrentPage() {
return this.$store.getters.currentPage
}
}
}
</script>
导航栏.vue
<template>
<div class="container">
<ul class="container__links">
<li>
<button @click="setContentPage('perso-page')">
Personalised
</button>
</li>
<li>
<button @click="setContentPage('result-page')">See result</button>
</li>
</ul>
</div>
</template>
<script>
export default {
name: 'NavBar',
data() {
return {
pageVisible: 'perso-page'
}
},
methods: {
setContentPage(page) {
this.$store.dispatch('pageDisplayed', page)
}
}
}
index.js(商店)
import actions from './actions'
import mutations from './mutations'
import getters from './getters'
import Vuex from 'vuex'
new Vuex.Store({
state: () => ({
pageVisible: 'perso-page'
}),
actions,
mutations,
getters,
})
动作.js
export const pageDisplayed = (context, payload) => {
context.commit('PAGE_DISPLAYED', payload)
}
突变.js
export const PAGE_DISPLAYED = (state, payload) => {
state.pageVisible = payload
}
getters.js
export const currentPage = (state, payload) => {
return state.pageVisible
}
解决方案
推荐阅读
- multi-tenant - 没有数据同步代理的混合数据库同步
- php - 来自 php 的 SOAP 请求不起作用并给出错误:HTTP-Internal Server Error
- java - 获取此错误 java.lang.ClassNotFoundException: sun.swing.plaf.nimbus.NimbusLookAndFeel
- function - 为什么我的过程的参数出现“不是函数”错误?
- python - keras 后端设置
- django - 将 django 项目移至 Github 会删除其依赖包
- r - 将多个ggplot geom组合成一个图形
- django - 如何在 Django 的 HTML 模板中设置会话变量?
- c++-cli - 在 C++ Windows 窗体应用程序中使用“查询用户/服务器:XXX”命令
- scorm - 如何参考其他 LMS 的培训课程?