BuckleScript bindings to react-on-rails.
# yarn
yarn add bs-react-on-rails
# or npm
npm install --save bs-react-on-rails
type props = {. "name": string};
type context = {. "host": string};
let component = (props: props, context: context) =>
<Page name=props##name host=context##host />;
ReactOnRails.register("App", component);
type props = < name :string > Js.t
type context = < host :string > Js.t
let component (props : props) (context : context) =
((Page.createElement ~name:(## props name) ~host:(## context host)
~children:[] ())[@JSX ])
let _ = ReactOnRails.register "App" component
See example Rails app and implementation commit.
/* ReactOnRails.register */
ReactOnRails.register("App", component);
/* ReactOnRails.registerWithOptions */
ReactOnRails.registerWithOptions("App", component, {traceTurbolinks: true});
/* ReactOnRails.registerWithOptions */
let csrfToken: option(string) = ReactOnRails.authenticityToken();
/* ReactOnRails.reactOnRailsPageLoaded */
ReactOnRails.reactOnRailsPageLoaded();
let _ = ReactOnRails.register "App" component
let _ =
ReactOnRails.registerWithOptions "App" component { traceTurbolinks = true }
let csrfToken: string option = ReactOnRails.authenticityToken ()
let _ = ReactOnRails.reactOnRailsPageLoaded ()
No redux
related methods are exposed as there're no redux
bindings exist and it's not idiomatic way to manage state in ReasonReact
apps.
See react-on-rails
JS API for more details.
MIT.