作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个 ClockComponent 来了解 Phoenix LiveComponents。我几乎拥有它,但它正在向其父级发送 :tick 消息。我怎样才能让它将该消息发送给自己?我想用 myself()
而不是 self()
但显然这不是一回事。
defmodule ClockComponent do
use Phoenix.LiveComponent
@impl true
def mount(socket) do
if connected?(socket), do: :timer.send_interval(1000, self(), :tick)
{:ok, assign(socket, date: :calendar.local_time())}
end
def handle_info(:tick, socket) do
{:noreply, assign(socket, date: :calendar.local_time())}
end
@impl true
def render(assigns) do
~L"""
The time is <%= @date |> Timex.to_datetime("America/Denver") |> Timex.format!("{RFC1123}") %>
"""
end
end
最佳答案
我认为你不能以此为基础:https://hexdocs.pm/phoenix_live_view/Phoenix.LiveComponent.html#module-managing-state
组件在 LiveView 进程内运行,但可能有自己的状态和事件处理。
我相信“子组件”和父组件共享相同的过程。
关于elixir - 如何让 Elixir/Phoenix LiveComponent 向自身而不是其父级发送消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66324776/
我正在编写一个 ClockComponent 来了解 Phoenix LiveComponents。我几乎拥有它,但它正在向其父级发送 :tick 消息。我怎样才能让它将该消息发送给自己?我想用 my
我是一名优秀的程序员,十分优秀!