javascript - React.js 中已弃用的 setProps() 的替代方案是什么?

标签 javascript reactjs mocha.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 建议只重新渲染顶级组件,如果新渲染是相同的组件类型,这实际上只是更新 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/

相关文章:

javascript - 每次失败之前Mocha mysql knex : Can't take lock to run migrations

javascript - should.js 不会导致 mocha 测试失败

javascript - 如何期待与 Mocha 和 Chai 的 throw ?

javascript - 使用 && 运算符的 jsx 语法错误

javascript - 如何多次断言 stub 提取

javascript - 标记主体中的 ASP.NET webForm 变量绑定(bind)

javascript - 如何使用 Javascript 或 jQuery 从 "page.php"重定向到 "#page.php"?

javascript - 单击 anchor 链接时,我将如何向坐标添加像素值,以便在我的固定标题下方可以看到目标

reactjs - MVC6 如何从项目中删除 Bower

javascript - ComponentDidMount 之外的状态似乎没有更新