访问Rails.env
javascript 的最佳方式是什么?
目前我正在使用 ReactJS 和现有的 Rails 项目,使用webpacker
gem。(不使用react-rails
宝石)
我试过什么?
从 rails 应用程序设置一个 javascript 变量(查看我的根组件所在的模板)并在根组件 JS 中访问它。但是这种方法对我来说看起来很冗长,因为我需要在 react 应用程序中的所有 JS 文件中传递该变量。
有没有更好的方法来做到这一点?
访问Rails.env
javascript 的最佳方式是什么?
目前我正在使用 ReactJS 和现有的 Rails 项目,使用webpacker
gem。(不使用react-rails
宝石)
我试过什么?
从 rails 应用程序设置一个 javascript 变量(查看我的根组件所在的模板)并在根组件 JS 中访问它。但是这种方法对我来说看起来很冗长,因为我需要在 react 应用程序中的所有 JS 文件中传递该变量。
有没有更好的方法来做到这一点?
您可以使用gon宝石。Gon 允许您将 rails 变量推送到 js 中的全局变量。
在控制器中:
class SampleController
def index
gon.variable_name = variable_value
....
end
然后你可以通过这种方式访问js中的变量
console.log(gon.variable_name)
另一个(我认为更好的)解决方案是查询另一个 Rails 操作所需的数据。在您的反应组件中,您可以使用componentDidMount
它
componentDidMount(){
fetch('http://url_to_fetch_data_from_server', {
method: 'get',
headers: {
Accept: 'application/json, text/plain, */*',
'Content-Type': 'application/json',
'X-CSRF-Token': 'token get from metatag',
},
credentials: 'same-origin',
}).then(response => {
response.json().then(json =>{
this.setState(yourData: json.yourData)
})
})
}
然后你可以通过 props 向所有子组件发送数据