Recursion 如何在vuex中进行递归操作/变异

Recursion 如何在vuex中进行递归操作/变异,recursion,vuex,action,store,mutation,Recursion,Vuex,Action,Store,Mutation,我试图在vuex中使用状态和递归操作来查找斐波那契序列。 基本上,我在这里尝试的是用vuex重写这个Javascript递归函数 function fib(n) { if (n < 2){ return n } return fib(n - 1) + fib (n - 2) } 函数fib(n){ if(n{ 返回状态号 } }, 行动:{ findFibNum:({dispatch,commit,state})=>{ 如果(状态编号

我试图在vuex中使用状态和递归操作来查找斐波那契序列。 基本上,我在这里尝试的是用vuex重写这个Javascript递归函数

function fib(n) {
  if (n < 2){
    return n
  }
  return fib(n - 1) + fib (n - 2)
}
函数fib(n){
if(n<2){
返回n
}
返回fib(n-1)+fib(n-2)
}
但是,即使我将状态指定给动作,状态的值也不会改变。 我怎样才能让它工作?我是说。。。我为此挣扎了几天,所以如果你能给我一些建议,或想法,这将真的很有帮助

谢谢。下面是我的代码

import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

export const store = new Vuex.Store ({
    state: {
        number: 8
    },
    mutations: {
        showTheNumber: (state) => {
            return state.number
        }
    },
    actions: {
        findFibNum: ({ dispatch, commit, state }) => {
            if (state.number < 2) {
                return state.number
            } else {
                dispatch('findFibNum', state.number - 1) + dispatch('findFibNum', state.number - 2)
            }
            return commit('showTheNumber')// I am not sure if it is redundant 

        }
    }

从“Vue”导入Vue;
从“Vuex”导入Vuex;
Vue.use(Vuex);
导出常量存储=新建Vuex.store({
声明:{
电话:8
},
突变:{
显示编号:(状态)=>{
返回状态号
}
},
行动:{
findFibNum:({dispatch,commit,state})=>{
如果(状态编号<2){
返回状态号
}否则{
分派('findFibNum',state.number-1)+分派('findFibNum',state.number-2)
}
return commit('showTheNumber')//我不确定它是否冗余
}
}
这就是我调用和显示组件中存储的值的方式

<template>
    <div>
        <input @input="addUserInput"></input>
        <p>Counter is: {{ counter }}</p>   
    </div>

</template>

<script>
    export default {
        methods: {
            addUserInput () {
                this.$store.dispatch('findFibNum')

            }
        },
        computed: {
            counter(){
                return this.$store.state.number;
            }
        }
    }
</script>


计数器为:{{Counter}}

导出默认值{ 方法:{ addUserInput(){ 此.$store.dispatch('findFibNum')) } }, 计算:{ 计数器(){ 返回此。$store.state.number; } } }
即使你们不能回答这个问题,如果你们能告诉我如何在vuex中实现递归也会有所帮助。非常感谢!在我看来,这个数字永远不会发生变化,并且始终保持在8。这意味着FindFBnum()将始终使用7(state.number-1)和6(state.number-2)进行计算。如果是这种情况,请尝试使用另一个变异来更新编号。您的代码似乎不正确。没有任何代码会变异状态编号。变异中的代码实际上就像一个getter,它不会变异任何内容。即使您无法回答问题,请告诉我如何在vuex帮助中使递归工作s、 非常感谢!在我看来,这个数字永远不会发生变异,并且将始终保持为8。这意味着findFibNum()将始终使用7(state.number-1)和6(state.number-2)进行计算。如果是这种情况,请尝试使用另一个变异来更新编号。您的代码似乎不正确。没有任何代码会对状态编号进行变异。变异中的代码实际上就像一个getter,它不会对任何内容进行变异。