`createIf` doesn't update
xiaodong2008 opened this issue · 3 comments
xiaodong2008 commented
createIf only updates when passing a context ref.
const value = ref(true)
const Parent = {
render() {
return createComponent(Child)
},
}
const Child: Component = {
+ setup() {
+ return { value }
+ },
render(_ctx) {
return createIf(() => _ctx.value, template(`<div>`), template(`<span>`))
},
}
const { html, serialize } = define(Parent).render()
value.value = false
await nextTick()
console.log(html()) // Doesn't change when without setupGaoNeng-wWw commented
xiaodong2008 commented
It doesn't look like bug
git commit:
5eb43b08
Reproduce:
const value = ref(true)
const Parent = {
render() {
return createComponent(Child)
},
}
const Child: Component = {
render() {
return createIf(() => value, template(`<div>`), template(`<span>`))
},
}
const { html, serialize } = define(Parent).render()
value.value = false
await nextTick()
console.log(html()) // Doesn't change when without setupmoushicheng commented
@xiaodong2008
Hello,it seems not a bug
in component Child, you must use value.value instead of value to track effect.
render() {
return createIf(() => value.value, template(`<div>`), template(`<span>`))
},

