Livewire emitTo 和重定向
Livewire emitTo and redirect
在组件 AAA 的视图中,我有一个向组件 AAA 提交事件的按钮
组件 AAA 视图:
<button wire:click="$emit('goToPage')">Go To Two</button>
组件 AAA 是这样接收的:
protected $listeners = ['goToPage'];
然后我想触发另一个事件 重定向 以及 将选项卡值 从组件 BBB 中的 1 更改为 2。
看起来像这样(仍在组件 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
函数 return 或 die dump。
我该如何解决这个问题?
谢谢!
形成我的理解:
$this->redirectRoute('bbb', $this->bbb->id);
进行 HTTP 重定向,因此当您进行完整的重定向并且在重定向之后有新的组件时,发出事件不会产生任何变化。
我个人会改用:
return redirect()->route('bbb', ['param1'=> $this->bbb->id, 'tab' => 'two']);
然后在组件 mount
方法中使用请求变量来决定应该打开哪个选项卡。
当然,除了在 url 中公开选项卡之外,您还可以将其闪存到会话中以更加透明
在组件 AAA 的视图中,我有一个向组件 AAA 提交事件的按钮
组件 AAA 视图:
<button wire:click="$emit('goToPage')">Go To Two</button>
组件 AAA 是这样接收的:
protected $listeners = ['goToPage'];
然后我想触发另一个事件 重定向 以及 将选项卡值 从组件 BBB 中的 1 更改为 2。
看起来像这样(仍在组件 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
函数 return 或 die dump。
我该如何解决这个问题?
谢谢!
形成我的理解:
$this->redirectRoute('bbb', $this->bbb->id);
进行 HTTP 重定向,因此当您进行完整的重定向并且在重定向之后有新的组件时,发出事件不会产生任何变化。
我个人会改用:
return redirect()->route('bbb', ['param1'=> $this->bbb->id, 'tab' => 'two']);
然后在组件 mount
方法中使用请求变量来决定应该打开哪个选项卡。
当然,除了在 url 中公开选项卡之外,您还可以将其闪存到会话中以更加透明