javascript 如何在Vue 3脚本设置中观察多个值?

t3psigkw  于 2023-02-18  发布在  Java
关注(0)|答案(2)|浏览(131)

我有一个监视器(在<script setup>中:

const form = reactive({
    body: '',
    image: ''
})

watch(() => form.image, () => {
    console.log(form.image)
})

我想扩展一下来观察两个 reactjs 体

watch(() => (form.image, form.body), () => {
    console.log(form)
})

但是现在只监视form.body。我一直在尝试实现this question's answer,但是它似乎不像我的监视器那样工作,有新的和旧的值。我希望监视器在两个值都更新时触发。

a2mppw5e

a2mppw5e1#

我想到了一个办法。当两个值都为真的时候它就会触发。你可以把你自己的条件放进去。

const form = reactive({
    body: '',
    image: ''
})

watch(() => [form.image, form.body], () => {
    if (form.image && form.body) {
        console.log(form)
    }
})
eqqqjvef

eqqqjvef2#

如果您需要多个监视程序,则每次都需要调用watch:

watch(() => form.image, () => {
    console.log(form.image)
})
watch(() => form.body, () => {
    console.log(form.body)
})

如果你需要一个观察者来观察这两个人,那么:

watch([() => form.image, () => form.body], 
([newImage, newBody], [prevImage, prevBody]) => {
    console.log(form.body, form.image)
})

如果我们举个例子来回答:https://stackoverflow.com/a/45853349/8126784来自您链接的问题

相关问题