我正在遵循有关如何构建 LiveComponent 的官方文档。
我收到此错误,我不明白为什么: 当我加载 /cameras 时出现此错误:
[error] GenServer #PID<0.864.0> terminating
** (UndefinedFunctionError) function MyAppWeb.HeroComponent.__live__/0 is undefined (module MyAppWeb.HeroComponent is not available)
我创建了 lib/my_app_web/components/hero.exs
defmodule MyAppWeb.HeroComponent do
use MyAppWeb, :live_component
def mount(_params, _session, socket) do
{:ok, socket}
end
def render(assigns) do
~H"""
<div class="hero"><%= @content %></div>
"""
end
在 lib/my_app_web/live/camera_live/index.ex 中,我添加了一个别名:
defmodule MyAppWeb.CameraLive.Index do
use MyAppWeb, :live_view
alias MyApp.Cameras
alias MyApp.Cameras.Camera
alias MyAppWeb.HeroComponent # Added this
我通过添加此行更新了camera_live/index.html.heex:
<.live_component module={HeroComponent} id="hero" content={"random data"} />
路线:
mix phx.routes | ack cameras
GET /cameras MyAppWeb.CameraLive.Index :index
我正在使用 Phoenix 1.7.11 和 Phoenix LiveView 0.20.2
我错误地将 LiveComponent 命名为
hero.exs
,而它应该是 .ex
。