2015-07-13 9 views
6

मैंने अभी अपने प्रोजेक्ट के रिएक्ट वर्जन को 13.3 और setProps() पर अपग्रेड किया है जो अब काम नहीं कर रहा है। मैं इसे इस मोचा परीक्षण में उपयोग कर रहा हूं और मुझे यकीन नहीं है कि इसे अभी कैसे लिखना है। मेरे विकल्प क्या हैं?React.js में बहिष्कृत setProps() के लिए कोई विकल्प क्या है?

it('reloads search results when props change ', function() { 
    var loadResultsSpy = sinon.spy(searchView, 'loadSearchResults'); 
    var newProps = {searchBy: 'foo', searchTerm: 'bar'}; 
    searchView.setProps(newProps); 
    expect(loadResultsSpy.calledWith(newProps.searchBy, newProps.searchTerm)).toBe(true); 
    }); 

उत्तर

6

सबसे सामान्य स्थिति में, प्रतिक्रिया की सिफारिश की बस फिर से प्रतिपादन शीर्ष स्तर के घटक है, जो अनिवार्य सिर्फ रंगमंच की सामग्री को अद्यतन करता है, तो नया प्रस्तुत करना ही घटक प्रकार का है। चूंकि TestUtils.renderIntoDocument बस creating a DOM node and doing a regular render into it के लिए एक शॉर्टकट है, कुछ इस तरह काम करते हैं (मैं अपने परीक्षणों के स्थापना के बारे में कुछ मान्यताओं बना रही हूँ) होगा:

var searchView, div; 

beforeEach(function() { 
    var comp = <SearchView searchBy="baz" searchTerm="quix" />; 
    div = document.createElement('div'); 
    searchView = React.render(comp, div); 
}); 

it('reloads search results when props change', function() { 
    var loadResultsSpy = sinon.spy(searchView, 'loadSearchResults'); 
    var comp = <SearchView searchBy="foo" searchTerm="bar" />; 
    React.render(comp, div); 
    expect(loadResultsSpy.calledWith("foo", "bar")).toBe(true); 
}); 
+1

इस के लिए धन्यवाद। प्रतिक्रिया के नए संस्करणों पर, किसी को 'React.render' के बजाय' ReactDOM.render' की आवश्यकता होगी। –

संबंधित मुद्दे