<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3/dist/cdn.min.js"></script>
<div x-data="info">
<span x-text="data"></span>
</div>
<div x-data="info">
<span x-text="data"></span>
</div>
<script>
let info ={
data: "hello"
}
document.addEventListener("alpine:init", () => {
info = Alpine.reactive(info)
Alpine.data("info", () => info);
});
</script>
以上代码给出以下错误:
如何解决这个问题并重用AlpineJS数据?
2条答案
按热度按时间hm2xizp91#
可以使用
Alpine.store
访问全局Alpine状态。(https://alpinejs.dev/magics/store)ctrmrzij2#
它不起作用,因为每个x-data将重新初始化其express,意味着将magics,Alpine.data注入x-data结果。在您的情况下,两个x-data引用同一个对象“info”。此信息将初始化两次,在第二次注入“$nextTick”magic时失败。解决方案将使x-data引用其自己的根对象,为它们的属性分配公共“信息”。下面是一个修改后的版本: