作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚开始进行单元测试,但一直收到错误消息:不变违规:目标容器不是 DOM 元素。我认为这与我的 app.js 的结构方式有关,因为它一直引用这一行 ReactDOM.render(, document.getElementById('app'));。下面是它现在的结构:
import React from 'react';
import ReactDOM from 'react-dom';
import HomePage from './HomePage';
class App extends React.Component {
render() {
return (
<div>
<HomePage />
</div>
)
}
}
ReactDOM.render(<App />, document.getElementById('app'));
这是否需要为了测试目的而重组?
最佳答案
您应该将文件的两部分分开,组件声明和通过 ReactDom
安装到 Dom 中。
ReactDom
与测试无关。
从“ react ”中导入 react ;从 'react-dom' 导入 ReactDOM;从 './HomePage' 导入主页;
// App.jsx
import React from 'react';
import HomePage from './HomePage';
export class App extends React.Component {
render() {
return (
<div>
<HomePage />
</div>
)
}
}
// index.jsx
import React from 'react';
import ReactDOM from 'react-dom';
import {App} from './App';
ReactDOM.render(<App />, document.getElementById('app'));
关于javascript - enzyme /Jest 测试错误 - 不变违规 : Target container is not a DOM element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48860492/
我是一名优秀的程序员,十分优秀!