it('createStateKeySetter is memoized', function() { var instance = <TestComponent />; ReactTestUtils.renderIntoDocument(instance); expect(instance.state).toEqual({foo: 'foo'}); var foo1 = ReactStateSetters.createStateKeySetter(instance, 'foo'); var bar1 = ReactStateSetters.createStateKeySetter(instance, 'bar'); var foo2 = ReactStateSetters.createStateKeySetter(instance, 'foo'); var bar2 = ReactStateSetters.createStateKeySetter(instance, 'bar'); expect(foo2).toBe(foo1); expect(bar2).toBe(bar1); });
it('createStateKeySetter should update state', function() { var instance = <TestComponent />; ReactTestUtils.renderIntoDocument(instance); expect(instance.state).toEqual({foo: 'foo'}); var setter = ReactStateSetters.createStateKeySetter(instance, 'foo'); expect(instance.state).toEqual({foo: 'foo'}); setter('bar'); expect(instance.state).toEqual({foo: 'bar'}); setter('baz'); expect(instance.state).toEqual({foo: 'baz'}); });
linkState: function(key) { return new ReactLink( this.state[key], ReactStateSetters.createStateKeySetter(this, key) ); }