Phoenix 1.6.2集成LiveView 0.17.1出现JS.__struct__未定义错误如何解决
修复方案
你遇到的编译错误是因为代码中直接使用了JS结构体和对应方法,但没有引入Phoenix.LiveView.JS模块,编译器无法识别JS对应的定义,按照以下任意一种方式操作即可修复:
- 方式一:仅对当前报错的LiveView生效
打开报错的lib/demo3_web/live/stock_watch_live.ex文件,在模块定义的最上方添加别名:
alias Phoenix.LiveView.JS
- 方式二:全局配置所有LiveView均可直接使用
JS别名
打开lib/demo3_web.ex文件,找到def live_view do代码块,在内部的quote块中添加上述别名,示例如下:
def live_view do quote do use Phoenix.LiveView, layout: {Demo3Web.LayoutView, :live} unquote(view_helpers()) # 新增下面这行配置 alias Phoenix.LiveView.JS end end
配置完成后,先执行mix deps.get确保所有依赖安装正确,再运行mix phx.server启动服务即可正常编译。
内容的提问来源于stack exchange,提问作者wintermeyer
相关产品推荐
相关产品推荐

