【问题标题】:Livewire scripts configured but events not triggered已配置 Livewire 脚本但未触发事件
【发布时间】:2021-09-01 19:56:11
【问题描述】:

我有 3 个主要布局,并相应地配置了 livewire 脚本。这一切都在一个单独的组件函数中工作。我通过终端创建一个新组件来复制组件以满足我的需要。

该组件向父组件发出一个带有$this->emitUp('listener') 的事件,它不像其他组件那样被触发。

//first component

protected $listeners = ['paymentSuccessSingle'];

public function render()
{
 return view('livewire.unlock-contact')
     ->layout('layouts.app');
}

public function paymentSuccessSingle($job_id)
{
   Log::info('payment done');
   $this->unlockContact = true;
}
//component 2
protected $listeners = ['paymentSuccessSingleJob'];

public function render()
{
    return view('livewire.unlock-job');
}

public function paymentSuccessSingleJob($job_id)
{
    Log::info('payment done');
    $this->unlockJob = true;
}

组件 2 不工作,组件 1 工作。我做错了什么?

【问题讨论】:

    标签: laravel laravel-livewire


    【解决方案1】:

    您忘记在第二个组件中定义布局。

    public function render()
    {
        return view('livewire.unlock-job')
          ->layout('layouts.app');
    }
    

    如果您没有定义此脚本的托管位置,livewire 将无法理解您要说的内容。 The docs

    【讨论】:

    • 这不是真的,layouts.app 是默认值,除非明确覆盖。 laravel-livewire.com/docs/2.x/…
    • @Qirel 是的。我根据需要自定义了主布局,但忘记在复制时在第一个组件中定义的第二个组件中添加引用。
    猜你喜欢
    • 2021-08-19
    • 2021-07-21
    • 2012-02-15
    • 2018-07-28
    • 2021-01-14
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多