@@ -199,13 +199,11 @@ def redux_store(store_name, props: {}, defer: false)
199199 redux_store_data = { store_name : store_name ,
200200 props : props }
201201 if defer
202- @registered_stores_defer_render ||= [ ]
203- @registered_stores_defer_render << redux_store_data
202+ registered_stores_defer_render << redux_store_data
204203 "YOU SHOULD NOT SEE THIS ON YOUR VIEW -- Uses as a code block, like <% redux_store %> " \
205204 "and not <%= redux store %>"
206205 else
207- @registered_stores ||= [ ]
208- @registered_stores << redux_store_data
206+ registered_stores << redux_store_data
209207 result = render_redux_store_data ( redux_store_data )
210208 prepend_render_rails_context ( result )
211209 end
@@ -217,9 +215,9 @@ def redux_store(store_name, props: {}, defer: false)
217215 # client side rendering of this hydration data, which is a hidden div with a matching class
218216 # that contains a data props.
219217 def redux_store_hydration_data
220- return if @ registered_stores_defer_render. blank?
218+ return if registered_stores_defer_render . blank?
221219
222- @ registered_stores_defer_render. reduce ( +"" ) do |accum , redux_store_data |
220+ registered_stores_defer_render . reduce ( +"" ) do |accum , redux_store_data |
223221 accum << render_redux_store_data ( redux_store_data )
224222 end . html_safe
225223 end
@@ -403,12 +401,20 @@ def run_stream_inside_fiber
403401 end
404402
405403 def registered_stores
406- ( @registered_stores || [ ] ) + ( @registered_stores_defer_render || [ ] )
404+ @registered_stores ||= [ ]
405+ end
406+
407+ def registered_stores_defer_render
408+ @registered_stores_defer_render ||= [ ]
409+ end
410+
411+ def registered_stores_including_deferred
412+ registered_stores + registered_stores_defer_render
407413 end
408414
409415 def create_render_options ( react_component_name , options )
410416 # If no store dependencies are passed, default to all registered stores up till now
411- options [ :store_dependencies ] ||= registered_stores . map { |store | store [ :store_name ] }
417+ options [ :store_dependencies ] ||= registered_stores_including_deferred . map { |store | store [ :store_name ] }
412418 ReactOnRails ::ReactComponent ::RenderOptions . new ( react_component_name : react_component_name ,
413419 options : options )
414420 end
@@ -727,7 +733,7 @@ def initialize_redux_stores(render_options)
727733 return result unless store_dependencies . present?
728734
729735 declarations = +"var reduxProps, store, storeGenerator;\n "
730- store_objects = registered_stores . select { |store | store_dependencies . include? ( store [ :store_name ] ) }
736+ store_objects = registered_stores_including_deferred . select { |store | store_dependencies . include? ( store [ :store_name ] ) }
731737
732738 result << store_objects . each_with_object ( declarations ) do |redux_store_data , memo |
733739 store_name = redux_store_data [ :store_name ]
0 commit comments