Vue.js 修改反应状态属性时Vuex冻结

Vue.js 修改反应状态属性时Vuex冻结,vue.js,vuex,Vue.js,Vuex,我是Vuex的新手,遇到了一个无法诊断的问题。我的商店的设置与类似,我在下面包含了相关模块 当应用程序加载时,会调用INIT操作,并且一切正常。LOOKUP操作稍后从组件调用,但在调用define时冻结 当前代码是在尝试了几个变通方法之后编写的。最终,我尝试从组件访问state.pages。我认为问题可能是因为state.pages是一个对象,所以我将其设置为非反应式,并尝试让组件监视pageCounter中的更改以检索新页面,但这不起作用 我可以包括任何其他相关信息 编辑:简化代码以更具体地显

我是Vuex的新手,遇到了一个无法诊断的问题。我的商店的设置与类似,我在下面包含了相关模块

当应用程序加载时,会调用
INIT
操作,并且一切正常。
LOOKUP
操作稍后从组件调用,但在调用
define
时冻结

当前代码是在尝试了几个变通方法之后编写的。最终,我尝试从组件访问
state.pages
。我认为问题可能是因为
state.pages
是一个对象,所以我将其设置为非反应式,并尝试让组件监视
pageCounter
中的更改以检索新页面,但这不起作用

我可以包括任何其他相关信息

编辑:简化代码以更具体地显示问题所在

store/modules/flashcards.js

// initial state
const state = () => ({
    counter: 0,
  })
  
  // actions
  const actions = {
  }
  
  // mutations
  const mutations = {
    increaseCounter(state) {
      console.log(state.counter)
      state.counter++;           <----------- Code stops here
      console.log(state.counter)
  }
  
  export default {
    namespaced: true,
    state,
    getters,
    actions,
    mutations
  }
//初始状态
常量状态=()=>({
柜台:0,,
})
//行动
常量动作={
}
//突变
常数突变={
递增计数器(状态){
console.log(state.counter)
state.counter++;state.flashcards.counter
})
},
方法:{
…映射突变('flashcards',['increaseCounter']),
increaseCounter
中,第一个
console.log(state.counter)
已打印,但第二个未打印。这是一个非常简单的访问模式,因此我希望能够深入了解它产生此错误的原因。

我发现了问题所在。创建Store对象时使用了
strict
标志。删除该标志后,一切都正常了。正如Tordek所说,不要这样做


我想我需要知道为什么这是一个问题,因为它指出了在一个突变之外被操纵的状态。

这不是一个固定的问题。如果你的代码在<代码>严格的< /COD>标志被启用时失败了,你的代码中有一些无效的访问模式。谢谢,我应该把我的答案写得更好。我不认为这是一个真正的修复。意思是,但它帮助我暂时继续,直到我找到无效访问模式的位置。首先,请注意,您最初的
状态
不包含
页面
元素。这非常可疑。第二,请显示访问
状态.pages
的代码。该代码正在修改某些内容,并触发我删除了
页面
,取而代之的是
页面计数器
,以简化调试。我进一步简化了代码,这反映在原始问题中。我仍然得到了错误。
<template>
    <div>
        <md-button @click='increaseCounter'>Test</md-button>
    </div>
</template>

<script>
import { mapState, mapMutations } from 'vuex';
import FlashCardComponent from './FlashcardComponent'
    export default {
        computed: {
            ...mapState({
                counter: state => state.flashcards.counter
            })
        },
        methods: {
            ...mapMutations('flashcards', ['increaseCounter']),
</script>