javascript - React 测试抛出警告 'Invalid DOM property ` %s`。您的意思是 `%s` 吗?%s'

标签 javascript reactjs jestjs enzyme

我有一个这样的 React 组件:

const a = {
 b: 'test',
 c: fn(),
 d: {
   e: 'test'
 }
};

<A propA={a} />
A.propTypes = {
 propA: PropTypes.object.isRequired
}

我正在使用 JEST 和 Enzyme 测试此组件,因此我的测试如下所示:

const a = {
 b: 'test',
 c: jest.fn(),
 d: {
   e: 'test'
 }
};

Enzyme.configure({
 adapter: new Adapter(),
});

const mounter = mount(
  <BrowserRouter>
    <A propA={a} />
  </BrowserRouter>,
);
...
...

我使用<BrowserRouter>测试它,因为我正在使用react-router作为我的应用程序路由。我进行了测试以确保组件正确呈现。

但是,此测试因以下警告而中断:

Warning: Invalid DOM property %s. Did you mean %s?%s

有人可以帮我调试为什么会抛出这个错误吗? 预先感谢您的帮助。

最佳答案

我知道为什么会发生这种情况。上述错误不是来 self 的测试,而是来自组件 A 正在渲染的 div 之一。

其中一个设置了“tabindex”属性以使它们可聚焦。在 React 中,这些属性需要采用驼峰式命名。因此,“tabindex”变为“tabIndex”,“classname”变为“className”,依此类推。一旦我解决了这个问题,上述警告就会消失。

来源 - http://www.chrislane.info/using-tabindex-in-react/

关于javascript - React 测试抛出警告 'Invalid DOM property ` %s`。您的意思是 `%s` 吗?%s',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57433245/

相关文章:

javascript - 使用 React JS 的 FadeIn 和 FadeOut 效果

javascript - 从 JSON 编码的字符串中删除引号

reactjs - 如何在 React Context 提供程序中模拟单个值,同时保留其余值

javascript - onBlur 未在 Jest 测试用例、React App 中调用

reactjs - 类型 'hot' .ts(2339) 上不存在属性 'NodeModule'

node.js - Node : how to avoid installing global packages

javascript - Visual Studio (DefinitelyTyped) 上的 AngularJS 和 Typescript 存在很多问题

javascript - 在 Javascript 中使用 .prototype 的原因

javascript - 用 enzyme 和 Jest 测试 React : Invariant Violation: Target container is not a DOM element

javascript - React Hook 表单 - Controller - React AsyncSelect - Lodash Debounce |未能显示 loadOptions