【问题标题】:How to use Stimulus to fix "Cookies is not defined"如何使用 Stimulus 修复“未定义 Cookie”
【发布时间】:2019-12-21 00:23:23
【问题描述】:

我有一个使用 Ruby 2.5.3 和 Stimulus 1.1.1 框架的 Rails v5.2.4 应用程序。我在我的 Rails 控制器中设置了一些 cookie,并从 Stimulus 控制器访问它们,但是当我第一次加载页面时:

ReferenceError: Cookies is not defined
    at Controller.connect (summary_controller.js:92)
    at Context.connect (context.js:23)

但是当我重新加载同一页面时,我得到了 cookie 值并且一切正常。我没有使用任何 gem 来处理 cookie。

我的stimulusjs方法对应的行号是:

91  connect(){
92    var tech_and_monitor = Cookies.get('tech_and_monitor');
93    var tech_only = Cookies.get('tech_only');
95    var manager_only = Cookies.get('manager_only');
96    }

在第一次加载时,当我在浏览器 Cookies.get('tech_and_monitor'); 上使用实时表达式时,我得到了 cookie 值。

我不明白为什么我在第一次加载时没有得到对 Cookies 的引用而在第二次加载时没有得到它的引用?

【问题讨论】:

    标签: javascript ruby-on-rails ruby cookies stimulusjs


    【解决方案1】:

    我发现导致在 Rails 应用程序中不加载 JavaScript 的原因是 Turbolinks。所以我在调用它的按钮中禁用了 Turbolinks,并且 JavaScript 也是第一次加载。

     <%= link_to "More Page", more_page_path, data:{turbolinks: false}, class: "nav-item nav-link"%>
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-16
      • 2019-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-11
      • 1970-01-01
      • 2022-01-19
      相关资源
      最近更新 更多