无法让 Phoenix.LiveComponent 示例工作

问题描述 投票:0回答:1

我正在遵循有关如何构建 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

elixir phoenix-live-view
1个回答
0
投票

我错误地将 LiveComponent 命名为

hero.exs
,而它应该是
.ex

© www.soinside.com 2019 - 2024. All rights reserved.