javascript - 如何更改 Alpine.js 中的共享状态?

标签 javascript alpine.js shared-state

我试图通过在调整窗口大小时更改共享状态来隐藏 DOM 内的多个元素。

<body class="font-body relative" x-data="{hideOnMobile:false}">
 <section class="mt-5" :class={'section' : !hideOnMobile , 'hidden' : hideOnMobile}">
   ...
  </section>
</body>

当我尝试时

window.onresize = function (event) {
   let data = document.querySelector('[x-data]');
         
       if (window.innerWidth > 639) {
           return data.__x.$data.hideOnMobile = true;
       }
    };

它应该将状态 ** hideOnMobile** 更改为 true 但不知何故?

最佳答案

您是否尝试过使用 @resize.window? (即使用 Alpine.js 添加 resize 监听器)它应该使您的代码比使用 window.onresize 更简单 + 尝试更新 Alpine.js __x.$数据内部。

<body
  class="font-body relative"
  x-data="{hideOnMobile:false}"
  @resize.window="hideOnMobile = window.innerWidth > 639"
>
 <section class="mt-5" :class={'section' : !hideOnMobile , 'hidden' : hideOnMobile}">
   ...
  </section>
</body>

关于javascript - 如何更改 Alpine.js 中的共享状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64558457/

相关文章:

javascript - 更改 TD 背景和文本的 MouseOver 事件

javascript - AlpineJS @click.away 不会隐藏/删除元素

java - 在 Java EE 服务器之间共享数据

python - 使用 Python 的 multiprocessing.pool.map 操作同一个整数

distributed-computing - CRDT 和 RAFT 协议(protocol)之间是否存在关系——或者它们是正交的?

javascript - 使用不同的 props 在容器中多次 react 渲染组件?

IE10 中的 Javascript 错误 (SCRIPT5022)

javascript - 将数组中的项目渲染到 DOM 中,并在单击时更改每个项目的值

javascript - Alpine.js 在新的 Laravel 和 Vite 实例中无法工作

javascript - 停止检查 alpineJS 中的复选框?