I have like this code in my project:
<script setup> import { ref, watch } from 'vue' const num = ref(null) // Some condition if(true) { // Doesn't works. Why? num.value = 1 // Works //setTimeout(() => { // num.value = 2 //}) } // Simple watcher watch(num, (newVal, oldVal) => { console.log("Num changed to: ", newVal) }) </script>
My watcher
doesn’t work when I set num.value = 1
. How I can fix this to work?
But when I run with setTimeout
it’s work
Demo project here
Advertisement
Answer
You add the watcher after you set it to 1, so there is no chance for it to catch it.