This repository was archived by the owner on Oct 19, 2018. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +37
-2
lines changed Expand file tree Collapse file tree 2 files changed +37
-2
lines changed Original file line number Diff line number Diff line change @@ -38,6 +38,11 @@ def mounted?
38
38
`#{ @native } .isMounted()`
39
39
end
40
40
41
+ def state
42
+ raise "No native ReactComponent associated" unless @native
43
+ Native ( `#{ @native } .state` )
44
+ end
45
+
41
46
def set_state ( state , &block )
42
47
raise "No native ReactComponent associated" unless @native
43
48
%x{
@@ -141,7 +146,7 @@ def define_state(*states)
141
146
# getter
142
147
define_method ( "#{ name } " ) do
143
148
return unless @native
144
- ` #{ @native } .state[#{ name } ]`
149
+ self . state [ name ]
145
150
end
146
151
# setter
147
152
define_method ( "#{ name } =" ) do |new_state |
Original file line number Diff line number Diff line change @@ -193,7 +193,7 @@ def render
193
193
expect ( element . getDOMNode . textContent ) . to eq ( "10" )
194
194
end
195
195
196
- it "should support original `set_state` method" do
196
+ it "should support original `setState` as ` set_state` method" do
197
197
Foo . class_eval do
198
198
before_mount do
199
199
self . set_state ( foo : "bar" )
@@ -203,6 +203,36 @@ def render
203
203
element = renderToDocument ( Foo )
204
204
expect ( element . state . foo ) . to be ( "bar" )
205
205
end
206
+
207
+ it "should support originl `state` method" do
208
+ Foo . class_eval do
209
+ before_mount do
210
+ self . set_state ( foo : "bar" )
211
+ end
212
+
213
+ def render
214
+ div { self . state [ :foo ] }
215
+ end
216
+ end
217
+
218
+ expect ( React . render_to_static_markup ( React . create_element ( Foo ) ) ) . to eq ( "<div>bar</div>" )
219
+ end
220
+
221
+ it "should transform state getter to Ruby object" do
222
+ Foo . class_eval do
223
+ define_state :foo
224
+
225
+ before_mount do
226
+ self . foo = { a : 10 }
227
+ end
228
+
229
+ def render
230
+ div { self . foo [ :a ] }
231
+ end
232
+ end
233
+
234
+ expect ( React . render_to_static_markup ( React . create_element ( Foo ) ) ) . to eq ( "<div>10</div>" )
235
+ end
206
236
end
207
237
208
238
describe "Props" do
You can’t perform that action at this time.
0 commit comments