在 Phoenix 实时视图中创建子实时视图时如何提供参数?

时间:2021-03-07 02:39:58

标签: phoenix-framework phoenix-live-view

在实时视图中,我有这个片段:

  <div id="chat"><%= live_render(@socket, MyAppWeb.ChatLive.Index, id: "watch-chats", guest: @guest) %></div>

在 ChatLive.Index 我有这个挂载功能:


  @impl true
  def mount(%{"guest_id" => guest_id}, _session, socket) do
    ...
  end

  def mount(:not_mounted_at_router, session, socket) do
    mount(%{"guest_id" => socket.assigns.guest.id}, session, socket)
  end

但它给出了这个错误:

key :guest not found in: %{flash: %{}, live_action: nil}

在带有 mount(%{"guest_id" => socket.assigns.guest.id}, session, socket) 的那一行。

如何将诸如guest 之类的参数传递给live_render 调用并在mount 函数中选取它?

1 个答案:

答案 0 :(得分:0)

如果你需要传递数据,你需要把它放在套接字的赋值中。