Vue 3 Composition API 使用功能时状态不更新
Vue 3 Composition API state not updating when use function
我为此浪费了时间。我之前使用的是 Vue 3 选项 API,我正在尝试更改为 compostion API。我想将对象推送到数组,但 state 不更新值,为什么会这样?
<script>
export default {
setup() {
const state = reactive([])
function myFunction() {
state.push({'item':1})
console.log(state); // state change
}
watchEffect(() => {
console.log(state) // state doesn't change
})
return {
myFunction
}
}
}
</script>
<template>
<button @click="myFunction()">Click Here</button>
</template>
您的代码中存在语法错误。函数声明应为 function myFunction() { ...
而不是 function myFunction {...
在互联网上询问之前,请务必先检查浏览器控制台是否有任何错误...
const app = Vue.createApp({
setup() {
const state = Vue.reactive([])
function myFunction() {
state.push({
'item': 1
})
console.log(state); // state change
}
Vue.watchEffect(() => {
console.log(state) // state doesn't change
})
return {
myFunction
}
}
})
app.mount("#app")
<script src="https://cdn.jsdelivr.net/npm/vue@3.2.26/dist/vue.global.min.js"></script>
<div id="app">
<button @click="myFunction()">Click Here</button>
</div>
我为此浪费了时间。我之前使用的是 Vue 3 选项 API,我正在尝试更改为 compostion API。我想将对象推送到数组,但 state 不更新值,为什么会这样?
<script>
export default {
setup() {
const state = reactive([])
function myFunction() {
state.push({'item':1})
console.log(state); // state change
}
watchEffect(() => {
console.log(state) // state doesn't change
})
return {
myFunction
}
}
}
</script>
<template>
<button @click="myFunction()">Click Here</button>
</template>
您的代码中存在语法错误。函数声明应为 function myFunction() { ...
而不是 function myFunction {...
在互联网上询问之前,请务必先检查浏览器控制台是否有任何错误...
const app = Vue.createApp({
setup() {
const state = Vue.reactive([])
function myFunction() {
state.push({
'item': 1
})
console.log(state); // state change
}
Vue.watchEffect(() => {
console.log(state) // state doesn't change
})
return {
myFunction
}
}
})
app.mount("#app")
<script src="https://cdn.jsdelivr.net/npm/vue@3.2.26/dist/vue.global.min.js"></script>
<div id="app">
<button @click="myFunction()">Click Here</button>
</div>