老师您好,我这边代码不使用keep-alive包裹三个子组件的时候能够正常显示,为什么包裹了keep-alive之后就报错了呢?
Uncaught RangeError: Maximum call stack size exceeded
以下是我的代码:
<template>
<div>
<button @click="changeState('A')">A</button>
<button @click="changeState('B')">B</button>
<button @click="changeState('C')">C</button>
<keep-alive>
<keep-alive-state-a v-if="state==='A'" />
<keep-alive-state-b v-if="state==='B'" />
<keep-alive-state-c v-if="state==='C'" />
</keep-alive>
</div>
</template>
<script>
import KeepAliveStateA from './KeepAliveStateA.vue'
import KeepAliveStateB from './KeepAliveStateB.vue'
import KeepAliveStateC from './KeepAliveStateC.vue'
export default {
name: 'KeepAlive',
components: {
KeepAliveStateA,
KeepAliveStateB,
KeepAliveStateC
},
data () {
return {
state: 'A'
}
},
methods: {
changeState (state) {
this.state = state
}
}
}
</script>
<style>
</style>