渲染 "namespaced" 组件 react-rails

Render "namespaced" component react-rails

我目前正在使用带有 Rails 5.2.0 应用程序的 React,以及 react-rails gem.

为了保持文件的干净分布,我想将它们存储在它们的特定文件夹中,为此我想为我将需要的组件命名空间。

gem 的实现运行良好,我可以毫无问题地呈现简单的 GreetUser 组件。当我想添加一个命名空间时,挑战就来了,我不确定 React、react-component (helper) 或任何其他是否支持它(因为 Rails 会这样做)。

我试图呈现策略组件的尝试:

# view
<%= react_component 'Policies.Policies' %>

# component
# app/javascripts/components/policies/Policies.js
import React from 'react'
import PropTypes from 'prop-types'

export default class Policies extends React.Component {
  render() {
    <div>
      <h1>I'm watching you</h1>
    <div>
  }
}

我得到:

Error: Cannot find module './Policies'.
ReferenceError: Policies is not defined
Uncaught Error: Cannot find component: 'Policies.Policies'. Make sure your component is available to render.
  1. 在视图中,您应该在命名空间中使用斜杠 (/) 而不是点:

    <%= react_component 'Policies/Policies' %>

  2. 你的Policies目录应该大写:

    app/javascripts/components/Policies/Policies.js

应该可以