4 回答

TA貢獻2037條經驗 獲得超6個贊
我遇到過同樣的問題。就我而言, render() 方法正在關閉我的父模式框。我剛剛在模態 div 中添加了“wire:ignore”。Livewire 每當調用 render() 方法時都會忽略該 div

TA貢獻1794條經驗 獲得超8個贊
我遇到了這種黑客:如果您關心的是不重新渲染視圖,您可以從render(). DOM 不會更新。
我的情況:我有一個不應該渲染任何內容的下載方法。
public function download()
{
$this->skipRender();
}
public function render()
{
if($this->shouldSkipRender) {
return '';
}
return view("xxxxx");
}
只要我沒有遺漏任何東西,這對我有用。

TA貢獻1797條經驗 獲得超4個贊
這就是 Livewire 的工作原理。每當您更改任何內容/觸發任何事件時。該組件將刷新。據我所知,livewire 沒有辦法阻止它,除非你將 die() 放在 showPOstAddedMessage 函數中,這將是一種非常奇怪的解決方法。

TA貢獻1877條經驗 獲得超6個贊
對于現在遇到此問題的任何人,Livewire 3 中的新功能可以解決此問題。
Livewire 3Component具有skipRender()可以在執行事件處理程序邏輯后調用的函數。
#[On('some_event')]
public function handleSomeEvent()
{
? ? -- event code here
? ? $this->skipRender();
}
順便說一句,在文檔中,還有一個#[Renderless]屬性可以添加到方法中,以指示它們不應導致組件重新渲染。#[On]但是,我發現這對也具有偵聽事件屬性的方法沒有影響。
- 4 回答
- 0 關注
- 196 瀏覽
添加回答
舉報