gpt4 book ai didi

react-rails - React Rails "identifier ' 设置'未定义'

转载 作者:行者123 更新时间:2023-12-01 15:50:42 24 4
gpt4 key购买 nike

我正在尝试使用 webpacker 和 react-rails 使用 rails 进行服务器端渲染。我在客户端渲染方面没有任何问题,但在服务器端渲染方面出现以下异常。

ExecJS::ProgramError in Static#index

identifier 'Set' undefined

应用程序.html.erb

<!DOCTYPE html>
<html>
<head>
<title>ReactExample</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>

<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
<%= javascript_pack_tag 'application' %>
</head>

<body>
<%= yield %>
</body>
</html>

index.html.erb

<%= react_component('hello', {}, {prerender: true}) %>

应用程序.js

/* eslint no-console:0 */
// This file is automatically compiled by Webpack, along with any other files
// present in this directory. You're encouraged to place your actual application logic in
// a relevant structure within app/javascript and only use these pack files to reference
// that code so it'll be compiled.
//
// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate
// layout file, like app/views/layouts/application.html.erb

// Support component names relative to this directory:
var componentRequireContext = require.context("components", true)
var ReactRailsUJS = require("react_ujs")
ReactRailsUJS.useContext(componentRequireContext)

server_rendering.js

// By default, this pack is loaded for server-side rendering.
// It must expose react_ujs as `ReactRailsUJS` and prepare a require context.
var componentRequireContext = require.context("components", true)
var ReactRailsUJS = require("react_ujs")
ReactRailsUJS.useContext(componentRequireContext)

最佳答案

从 TheRubyRacer 升级到现代的 JavaScript 执行引擎。

TheRubyRacer 依赖于 LibV8(为 node.js 提供支持的位),但它是 locked to version 3 , LibV8 本身已经在 version 7 .

使用现代 JS gem,例如 Mini_Racer这个问题就消失了。

关于react-rails - React Rails "identifier ' 设置'未定义',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50556999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com