作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我刚刚将项目的 React 版本升级到 13.3,setProps()
不再有效。我在这个 Mocha 测试中使用它,但我不确定现在如何重写它。我有哪些选择?
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);
});
最佳答案
在最一般的情况下,React 建议只重新渲染顶级组件,如果新渲染是相同的组件类型,这实际上只是更新 props。由于 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);
});
关于javascript - React.js 中已弃用的 setProps() 的替代方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31374895/
我是一名优秀的程序员,十分优秀!