5

を介してルーターから LiveView をレンダリングしたとしますlive "/awesome", AwesomeLive.Index, :index

さて、通常のテンプレートまたはコントローラーからレンダリングするには、 を使用する必要がありますlive_render/3

しかし、それはうまくいきません。cannot invoke handle_params/3 on AwesomeLive.Index because it is not mounted nor accessed through the router live/3 macro

リファクタリングのhandle_params/3方法 内部は自動生成されたコードですphx.gen.live

  @impl true
  def handle_params(params, _url, socket) do
    {:noreply, apply_action(socket, socket.assigns.live_action, params)}
  end

の中params:not_mounted_at_router

編集:

handle_params/3壊れているように見えずlive_patch/2、JavaScript エラーをスローします。

phoenix_live_view.js:1 Uncaught TypeError: Cannot read property 'el' of null
    at e.value (phoenix_live_view.js:1)
    at phoenix_live_view.js:1
    at e.value (phoenix_live_view.js:1)
    at e.value (phoenix_live_view.js:1)
    at e.value (phoenix_live_view.js:1)
    at phoenix_live_view.js:1
    at phoenix_live_view.js:1
    at Object.callback (phoenix_live_view.js:1)
    at e.value (phoenix.js:1)
    at phoenix.js:1

バージョン:

  • アーラン/OTP 23
  • エリクサー 1.10.3
  • :フェニックス、「1.5.1」
  • :phoenix_live_view, "0.12.1"
4

0 に答える 0