【问题标题】:import {Socket, Presence} from "phoenix" function not working. Phoenix/Elixir从“phoenix”功能导入 {Socket, Presence} 不起作用。凤凰/灵药
【发布时间】:2017-11-26 05:11:26
【问题描述】:

我正在使用 phoenix 和 elixir 构建一个简单的聊天应用程序。其中一个步骤是将 Socket and Presence 导入 Javascript,但我很确定该步骤由于我不知道的原因不起作用。我把这行放在我的app.js 的顶部:

import {Socket, Presence} from "phoenix"

当我使用调试器调试这一行时,我在控制台中输入了Presence,它给了我一个VM1416:1 Uncaught ReferenceError: Presence is not defined. 是否有一些我可能错过的设置?也许是早午餐之类的?

【问题讨论】:

  • 您可以尝试在导入后立即执行console.log(Presence)。由于资产的编译方式,我不确定这是否像您在此处提到的那样轻松调试
  • 试试import * as Phoenix from "phoenix" 并使用Phoenix.Presence

标签: javascript sockets elixir phoenix-framework


【解决方案1】:

编译后的代码会被封装在一个匿名函数中,所以 Presence 的作用域不会泄露到匿名函数之外。

如果您希望Presence 在全球范围内可用,您可以执行以下操作:

import {Socket, Presence} from "phoenix"
window.Presence = Presence;

然后它将在您的控制台中运行。

您可以在此答案https://stackoverflow.com/a/500459/219743 中阅读有关 JavaScript 范围的更多信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-12
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多