Getting Started
    Core Concepts
    Building Features
    API Reference
    Deployment
    Upgrading
    Migrating
    Pro
    Advanced Topics
    Misc
    Shakacode logoShakaCodeDeveloped by

    Copyright 2020 ShakaCode

    Using ReactOnRails in JavaScript

    You can easily render React components in your JavaScript with render method that returns a reference to the component (virtual DOM element).

    /**
     * ReactOnRails.render("HelloWorldApp", {name: "Stranger"}, 'app');
     *
     * Does this:
     *   ReactDOM.render(React.createElement(HelloWorldApp, {name: "Stranger"}),
     *     document.getElementById('app'))
     *
     * @param name Name of your registered component
     * @param props Props to pass to your component
     * @param domNodeId
     * @param hydrate [optional] Pass truthy to update server rendered html. Default is falsy
     * @returns {virtualDomElement} Reference to your component's backing instance
     */
    ReactOnRails.render(componentName, props, domNodeId);

    Why do we need this?

    Imagine that we have some event with jQuery, it allows us to set component state manually.

    <input id="input" type="range" min="0" max="100" />
    <div id="root"></div>
    
    <script>
      var input = $('#input');
      var component = ReactOnRails.render('componentName', { value: input.val() }, 'root');
    
      input.on('change', function (e) {
        component.setState({ value: input.val() });
      });
    </script>