Module: ReactOnRails::Controller

Defined in:
lib/react_on_rails/controller.rb

Instance Method Summary collapse

Instance Method Details

#redux_store(store_name, props: {}, immediate_hydration: nil) ⇒ Object

Separate initialization of store from react_component allows multiple react_component calls to use the same Redux store.

store_name: name of the store, corresponding to your call to ReactOnRails.registerStores in your

JavaScript code.

props: Named parameter props which is a Ruby Hash or JSON string which contains the properties

to pass to the redux store.

immediate_hydration: React on Rails Pro (licensed) feature. When nil (default), Pro users get

immediate hydration, non-Pro users don't. Can be explicitly overridden.

Be sure to include view helper ‘redux_store_hydration_data` at the end of your layout or view or else there will be no client side hydration of your stores.



17
18
19
20
21
22
23
24
# File 'lib/react_on_rails/controller.rb', line 17

def redux_store(store_name, props: {}, immediate_hydration: nil)
  immediate_hydration = ReactOnRails::Utils.normalize_immediate_hydration(immediate_hydration, store_name, "Store")
  redux_store_data = { store_name: store_name,
                       props: props,
                       immediate_hydration: immediate_hydration }
  @registered_stores_defer_render ||= []
  @registered_stores_defer_render << redux_store_data
end