为什么 Phoenix LiveView 函数 `push_event` 未定义?

fra*_*909 2 elixir phoenix-framework phoenix-live-view

我想使用以下功能将事件从 liveView 服务器发送到客户端:

\n
  def handle_event("test", _, socket) do\n    {:noreply, push_event(socket, "testEvent", %{coins: 23, user: "user"})}\n  end\n
Run Code Online (Sandbox Code Playgroud)\n

这在 liveview 文档中的解释非常相似。 \n https://hexdocs.pm/phoenix_live_view/js-interop.html \n但是我收到此错误消息:

\n
(CompileError) undefined function push_event/3\n\nStacktrace:\n  \xe2\x94\x82 (elixir 1.10.4) src/elixir_locals.erl:114: anonymous fn/3 in :elixir_locals.ensure_no_undefined_local/3\n  \xe2\x94\x82 (stdlib 3.8) erl_eval.erl:680: :erl_eval.do_apply/6\n
Run Code Online (Sandbox Code Playgroud)\n

我错过了一些导入吗?或者我做错了什么?

\n

fra*_*909 5

我认为问题出在我的实时取景版本上。我必须升级:

{:phoenix_live_view, "~> 0.13.0"},
Run Code Online (Sandbox Code Playgroud)

到:

{:phoenix_live_view, "~> 0.14.4"},
Run Code Online (Sandbox Code Playgroud)

  • 是的,如果我没记错的话,`push_event` 是在 0.14 版本中添加的 (2认同)