我试图测试某个react组件中的按钮是否会触发其父组件中的函数。当我在测试文件中导入组件时,我偶然发现了我的问题,所以测试甚至还没有运行。
我导入的组件是一个常规反应组件,并导出为:
export default connect(mapStateToProps, mapDispatchToProps)(Manager);
在我的测试文件中,我将其导入为:
import Manager from '../index.js';
当我运行测试时,我得到:
Target container is not a DOM element.
我知道这是非常少的信息可以提供,但实际上没有其他相关的,就我所见。我正在测试的组件做了很多事情,并且有一个渲染函数。在阅读了很多之后,我读到有些人也遇到了类似的问题,因为他们在执行ReactDOM.render
的同一文件中导出了一些内容。不幸的是,这不适用于我的问题。
有什么想法吗?
可能在index.js文件中的某个位置有一个渲染调用。
您可以在Manager
中设置一个不带connect
的附加导出,然后您就可以将其导入到测试文件中并测试其行为:
export default connect(mapStateToProps, mapDispatchToProps)(Manager);
export { Manager };
然后在你的测试文件中:
import { Manager } from 'your-path'; // now a named import without Connect