这个特性解决了什么问题?
Vue 的 Teleport
和 React 的 Portal
组件需求性挺强的,对于弹窗多的小程序很必要。
本质上它们都是通过操作DOM API来实现 (比如 document.insertBefore), 现在的 Taro3 实现了类似的DOM API,应该已经可以实现这类功能了?
可以通过ref取到 TaroElement
, 然后传给 Teleport
const teleportRef = inject('teleportRef')
<Teleport :to="teleportRef">
....
</>
现在尝试了下会报这个错误:
Cannot read property '__treeManager__' of undefined
这个 API 长什么样?
const teleportRef = inject('teleportRef')
<Teleport :to="teleportRef">
....
</>
3条答案
按热度按时间nukf8bse1#
如果尝试更新teleport里面的dom,就会导致
我隐约记得前几个月测试的时候是ok的,不知道是vue更新了还是taro更新了,现在又不行了😭
4ngedf3f2#
问题在于小程序环境要实现跨页面的全局组件,这点还是不好实现,需要再想想
axr492tv3#
问题在于小程序环境要实现跨页面的全局组件,这点还是不好实现,需要再想想
我觉得小程序没必要实现跨页面?Portal啥的只需要传当前页面的node ref就行了,毕竟小程序不会同时显示两个页面。