Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 返回状态变量的计算属性不是被动的_Vue.js_Vuex_Vue Reactivity - Fatal编程技术网

Vue.js 返回状态变量的计算属性不是被动的

Vue.js 返回状态变量的计算属性不是被动的,vue.js,vuex,vue-reactivity,Vue.js,Vuex,Vue Reactivity,对于hangman游戏,我有一个Word.vue组件,其中我试图初始化一个名为WordTogueSasarray的数组,其中包含n个空项目n=Word中要猜测的字母数: <template> <section> <div v-for="(letter, i) in wordToGuessAsArray" :key="i"> </div> </section> </template> <scri

对于hangman游戏,我有一个Word.vue组件,其中我试图初始化一个名为WordTogueSasarray的数组,其中包含n个空项目n=Word中要猜测的字母数:

<template>
  <section>
    <div v-for="(letter, i) in wordToGuessAsArray" :key="i">
    </div>
  </section>
</template>

<script>
export default {
  computed: {
    wordToGuessAsArray () {
      return this.$store.state.wordToGuessAsArray
    }
  },
  mounted () {
    const wordToGuess = 'strawberry'
    for (var i = 0; i < wordToGuess.length; i++) {
      this.$store.commit('SET_WORD_AS_ARRAY_PUSH')
    }
  }
}
</script>
我的问题如下。在my Keyboard.vue组件中,当用户选择确实属于单词的字母进行猜测时,我会更新我的状态,因此:

this.$store.commit('SET_WORD_AS_ARRAY', { letter, i })
我希望此变异会更新我的word.vue组件中的单词:

<div v-for="(letter, i) in wordToGuessAsArray" :key="i">
但事实并非如此。WordTogueSasarray似乎没有反应,为什么?

这是因为state.WordTogueSasarray[value.i]=value.letter没有反应。 因为Vue.js只监视数组方法,如push或splice

您需要这样做。$setstate.wordToGuessAsArray,value.i,value.letter

或在Vuex中: Vue.setstate.WordTogueSasarray,value.i,value.letter;并在文件中导入Vue

请在此处阅读更多信息:


谢谢,但是我可以在商店里做这个吗?我明白了。$set不是函数错误
<div v-for="(letter, i) in wordToGuessAsArray" :key="i">