如何在没有Flow抱怨的情况下在Jest模拟组件的渲染方法中返回一个字符串?

时间:2017-06-06 16:38:13

标签: reactjs jestjs flowtype

我在Jest测试中嘲笑React组件,并且流程正在抱怨:

[flow] string (This type is incompatible with the expected return type of React$Element)

我如何允许这个?这是我的代码:

jest.mock('../../../../ui-components/lib/Forms/TextField', () => {
  const React = require('react');
  const TextField = class extends React.Component {
      render() {
          return 'TextField'; // Flow complains here
      }
  };
  return TextField;
});

编辑:

对于那些谷歌搜索,这就是我做的:

jest.mock('../../../../ui-components/lib/Forms/TextField', () => {
  const React = require('react');
  const TextField = class extends React.Component {
      render() {
          return <div />;
      }
  };
  return TextField;
});

我是在一个错误的假设下操作的,即酶的浅包装物不会定位组件,除非我在这里返回一个字符串。我说实话,我不记得我为什么这么想,因为现在看来很荒谬。

我在下面标记了我原来问题的答案,因为如果我没有采取这种更好的方法,这是正确的。使用// $ FlowFixMe

1 个答案:

答案 0 :(得分:2)

我不确定您为什么这样做,但如果您确定,可以在错误的行上方添加//$FlowFixMe条评论。

//$FlowFixMe Defines a magical comment that suppresses any Flow errors on the following line

希望这有帮助。