There was an error while loading. Please reload this page.
This guide works on Webpacker 3, based on https://github.com/BookOfGreg/react-rails-example-app/pull/1/files
yarn add cjsx-loader
If you're on older versions of Webpacker you may need to add the coffee-loader also as it comes with @rails/webpacker in V3+ .
yarn add coffee-loader
config/webpack/environment.js
const { environment } = require('@rails/webpacker') environment.loaders.set('coffee', { test: /\.coffee$/, use: ['cjsx-loader', 'coffee-loader'] }) module.exports = environment
app/javascript/components/Todo.coffee
import React from 'react' import PropTypes from 'prop-types' class Todo extends React.Component @propTypes = task: PropTypes.string render: -> `<div> <div>Task: {this.props.task}</div> </div>` export default Todo
app/views/controller/action.html.erb
<%= react_component 'Todo', { task: 'A working coffee component' } %>