【发布时间】:2017-09-13 17:43:57
【问题描述】:
我有一个<Parent/> 组件,当我添加/删除/更改它的<Child/> 组件时,我想使用 Enzyme 来测试它的行为。例如,改变
<Parent>
<Child />
</Parent>
到
<Parent>
<Child />
<Child />
</Parent>
我正在使用操作 DOM 的第 3 方库,因此我需要跟踪子项以使 React 和库保持同步。
我尝试多次调用mount,尽管两个mount 调用创建了两个不同的实例。例如,
let constructorCalls = 0;
let Parent = class extends React.Component {
constructor(props) {
super(props);
constructorCalls += 1;
}
render() { return <span />; }
}
mount(<Parent />);
mount(<Parent />);
// Now, constructorCalls = 2
调用mount 两次会创建两个不同的父级和两个不同的构造函数调用,因此它的行为不像 React 那样,如果渲染的组件没有改变,它什么也不做。
那么,如何使用 Enzyme “重新安装”具有不同子级的组件?
【问题讨论】:
-
当事件被触发(例如 onClick)时,您的子组件不会发生变化吗?