Skip to content

Commit 517c2f6

Browse files
committed
Snake-Case key to Camel-Case key for props when server render
1 parent 7a65962 commit 517c2f6

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

lib/react/rails/component_mount.rb

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ def teardown(env)
2323
# on the client.
2424
def react_component(name, props = {}, options = {}, &block)
2525
options = {:tag => options} if options.is_a?(Symbol)
26-
26+
props = camelize_props_key(props)
27+
2728
prerender_options = options[:prerender]
2829
if prerender_options
2930
block = Proc.new{ concat React::ServerRendering.render(name, props, prerender_options) }
@@ -41,6 +42,15 @@ def react_component(name, props = {}, options = {}, &block)
4142

4243
content_tag(html_tag, '', html_options, &block)
4344
end
45+
46+
private
47+
48+
def camelize_props_key(props)
49+
return props unless props.is_a?(Hash)
50+
props.inject({}) do |h, (k,v)|
51+
h[k.to_s.camelize(:lower)] = v.is_a?(Hash) ? camelize_props_key(v) : v; h
52+
end
53+
end
4454
end
4555
end
4656
end

lib/react/server_rendering/sprockets_renderer.rb

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def render(component_name, props, prerender_options)
2626
end
2727

2828
if !props.is_a?(String)
29-
props = camelize_props_key(props).to_json
29+
props = props.to_json
3030
end
3131

3232
super(component_name, props, {render_function: react_render_method})
@@ -36,13 +36,6 @@ def after_render(component_name, props, prerender_options)
3636
@replay_console ? CONSOLE_REPLAY : ""
3737
end
3838

39-
def camelize_props_key(props)
40-
return props unless props.is_a?(Hash)
41-
props.inject({}) do |h, (k,v)|
42-
h[k.to_s.camelize(:lower)] = v.is_a?(Hash) ? camelize_props_key(v) : v; h
43-
end
44-
end
45-
4639
# Reimplement console methods for replaying on the client
4740
CONSOLE_POLYFILL = <<-JS
4841
var console = { history: [] };

0 commit comments

Comments
 (0)