I have this watcher (inside <script setup>
:
const form = reactive({
body: '',
image: ''
})
watch(() => form.image, () => {
console.log(form.image)
})
which I want to expand to watch two reactive objects:
watch(() => (form.image, form.body), () => {
console.log(form)
})
but this now only watches form.body
. I've been trying to implement this question's answer, but it doesn't seem to work like my watcher with new and old values. I want the watcher to trigger, when both values are updated.
CodePudding user response:
You need to call watch each time if you need multiple watchers:
watch(() => form.image, () => {
console.log(form.image)
})
watch(() => form.body, () => {
console.log(form.body)
})
if what you need is a watcher to watch the two then :
watch([() => form.image, () => form.body],
([newImage, newBody], [prevImage, prevBody]) => {
console.log(form.body, form.image)
})
if we take example on that answer : https://stackoverflow.com/a/45853349/8126784 from the question you linked
CodePudding user response:
I figured something out. It'll trigger when both values are true. You can put your own conditions in there.
const form = reactive({
body: '',
image: ''
})
watch(() => ([form.image, form.body]), () => {
if (form.image && form.body) {
console.log(form)
}
})