You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Phoenix LiveView后出现:variable_name not found in错误求助

解决Phoenix LiveView中"key :variable_name not found in"错误

你遇到的错误核心原因是mount函数的参数签名不符合LiveView要求,导致变量赋值逻辑根本没执行。

Phoenix LiveView的mount函数必须接收三个参数:请求参数(params)、会话(session)、socket对象。你的代码里只定义了两个参数(_session, socket),框架会找不到正确的mount函数去执行,自然不会把:variable_name赋值到socket中,模板渲染时就会找不到这个变量。

修改后的代码如下:

defmodule CounterWeb.CounterLive do
    use Phoenix.LiveView

    def mount(_params, _session, socket) do
        blabla = 0
        socket = assign(socket, :variable_name, blabla)
        {:ok, socket}
    end

    def render(assigns) do
        ~L"""
        <h1>Count: <%= @variable_name %></h1>
        <button>+</button>
        <button>-</button>
        """
    end
end

额外检查点:

  • 确认路由配置正确,在router.ex中使用live "/counter", CounterLive来挂载LiveView,而非普通的get路由
  • 确保页面是通过LiveView入口加载,没有用普通控制器渲染该模板

内容的提问来源于stack exchange,提问作者Ruan Nawe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 06:21:37