在組件 AAA 的視圖中,我有一個按鈕將事件提交給組件 AAA
組件 AAA 視圖:
<button wire:click="$emit('goToPage')">Go To Two</button>
組件 AAA 像這樣接收它:
protected $listeners = ['goToPage'];
然后我想觸發另一個事件,該事件重定向以及將組件 BBB 中的選項卡值從一更改為二。
看起來像這樣(仍在組件 AAA 中*):
public function goToPage()
{
$this->emit('changeTabs', $this->tab="two")->to('Alphabet.BBB');
$this->redirectRoute('bbb', $this->bbb->id);
}
在組件 BBB 上,我有以下內容:
public $tab = 'one'; //THIS IS THE DEFAULT TAB
protected $listeners = ['changeTabs'];
public function changeTabs()
{
return $this->tab="two";
//dd(Made it here);
}
我從頁面 AAA 重定向到頁面 BBB,但該changeTabs功能不起作用。該選項卡保持其默認選項卡之一。
它永遠不會到達changeTabs函式回傳或 die dump。
我該如何解決這個問題?
謝謝!
uj5u.com熱心網友回復:
形成我的理解:
$this->redirectRoute('bbb', $this->bbb->id);
進行 HTTP 重定向,因此在您進行完全重定向時發出事件不會做出任何更改,并且在重定向后有新的組件。
我個人會改為使用:
return redirect()->route('bbb', ['param1'=> $this->bbb->id, 'tab' => 'two']);
然后在組件mount方法中使用請求變數來決定應該打開哪個選項卡。
當然,除了在 url 中公開選項卡之外,您還可以將其閃存到會話以更加透明
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/361738.html
上一篇:vue3if條件與v-for回圈
