React.js中已弃用的setProps()有什么替代方法?
What's an alternative for the deprecated setProps() in React.js?
我刚刚将项目的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建议只重新呈现顶层组件,如果新呈现的是相同的组件类型,这实际上只是更新道具。由于TestUtils.renderIntoDocument
只是创建DOM节点并对其进行常规渲染的快捷方式,因此类似这样的操作将起作用(我对测试的设置做了一些假设):
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);
});
相关文章:
- 有没有什么方法可以停止Jquery中的animate(也可以停止完整的回调函数)
- 有什么方法可以在下一个元素上进行追加吗
- 有什么方法可以调用外部URI方案吗
- 有没有什么方法可以通过输入字段(type=file)来找出选择了多少个文件
- JavaScript意外的令牌<,有什么方法可以逃避错误(或至少跳过那些无用的字符)
- 有什么方法可以在HTML页面中显示HTML代码吗
- 有什么方法可以防止Javascript gc尽可能少地运行
- Javascript应该使用什么方法来查找或检查数组中是否存在字符串
- 有什么方法可以使用类似<的函数吗;?php包含>在phonegap中
- 有什么方法可以获得或计算ScrollView的速度吗
- 有什么方法可以使页面无法刷新吗
- 在Windows8(HTML/JS)中,有什么方法可以区分触摸和鼠标交互吗
- 有没有什么方法可以将速度模板与backbone.js集成
- 在这种情况下,有什么方法可以向`.call()`发送更多的参数吗
- JSXGraph 中有什么方法可以使图像不透明
- 有没有什么方法可以测试用户是否在WindowsXP上
- 有什么方法可以在超级测试中设置默认值吗
- 当垃圾回收发生时,有什么方法可以得到通知吗
- 一个网站有什么方法可以区分微软边缘和谷歌Chrome吗;的渲染引擎
- 在 nodejs 中有什么方法可以打印 JSON 格式的 log4js 输出