Я пытаюсь найти последовательность Фибоначчи, используя состояние и рекурсивное действие в vuex. В основном я пытаюсь переписать эту Javascript рекурсивную функцию с помощью vuex.
function fib(n) {
if (n < 2){
return n
}
return 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
}
}
, и именно так я вызываю и показываю значение store в компоненте.
<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>