我有一个简单的ExpenseShow
组件,它有一个子ExpenseForm
组件。在ExpenseShow
我有一个简单的更新按钮:
<x-cards. Button
wire:click"$emitTo('expenses. Expense-form', 'editExpense', {{$expense->id}})"
>
Edit Expense
</x-cards. Button>
...
@livewire('expenses.expense-new-form')
单击该按钮将发出editExpense
事件,该事件将打开一个模式,并且费用按预期更新。然后我从子组件(' ExpenseForm'上的更新方法)发射回$this->emitTo('expenses.expense-show', 'refreshComponent');
,它冻结了我的页面(父组件在模态消失和数据库更新后)几秒钟。
然而,当我在刀片中的ExpenseShow
组件上使用wire.poll
时,一切都更新得很好,没有延迟。我只是觉得这太浪费了。我不需要服务器每2秒运行一次请求,这就是为什么我认为refreshComponent
在这里更适用。什么好主意吗?我的ExpenseForm
有几个下拉菜单,每个下拉菜单有数百个条目,但wire:poll
没有延迟,它会不停地做。
感谢您的任何输入。Patryk .
编辑:这里有一个合理的答案。看起来他把答案删了。当我执行其中一个选项时,我打算将其标记为已回答。我希望那位好心的用户再次展示它。简而言之,他建议我通过wire: model
绑定我的父组件和子组件,或者我使用livewire: loading
或livewire: on
来取代我的on: click
和emit
…有人能填补空缺吗?不知道为什么他们的答案被删除了…
哇。当我写这篇文章时,Chrome和Edge浏览器都遇到了这两个问题。从那时起,Chrome已经更新,我能够达到我想要的结果每个livewire文档(刷新组件),不久之后,它看起来像微软边缘也在工作!