Reactjs 如何在一个组件出现';s连接的组件已更新?
我正在使用Reactjs 如何在一个组件出现';s连接的组件已更新?,reactjs,jestjs,enzyme,Reactjs,Jestjs,Enzyme,我正在使用jest和enzyme测试我的react应用程序。我有一个连接的组件,上面有一个hoc(connectWithActions)和react redux的connect。通过connectWithActions,我提供了setState、dispatch和getState。我将此HOC用作: compose( connectActions(Handlers), connect(mapStateToProps, mapDispatchToProps), )(MyCompon
jest
和enzyme
测试我的react应用程序。我有一个连接的组件,上面有一个hoc(connectWithActions
)和react redux的connect
。通过connectWithActions
,我提供了setState
、dispatch
和getState
。我将此HOC
用作:
compose(
connectActions(Handlers),
connect(mapStateToProps, mapDispatchToProps),
)(MyComponent)
我的处理器看起来像:
const Handlers = {
Handler1: (action, {getState, setState, dispatch}) => {
setState({newStateValue: action.payload.value})
}
}
此setState
是提供给部件的setState
。(通过临时议程)
现在,MyComponent
已经用newStateValue
更新了道具
因此,开玩笑地说:
我已安装<代码>我的<代码>composedComponent(已连接),我正在模拟将触发<代码>Handler1并将状态设置为:
test('test...', () => {
const node = Component.find('.className');
node.simulate('click');
//how do I check that state is updated??
console.log(Component.find('MyComponent').props());
});
但是我不知道如何测试这个。我尝试检查道具,但没有任何
newStateValue
以下代码对我有效:
test('test...', () => {
const node = Component.find('.className');
node.simulate('click');
Component.update();
expect(Component.find(MyComponent).props(). newStateValue).toEqual(desiredValue);
});
你有没有试着把你的主题
装上去而不是变浅呢?或者尝试使用mycomponent.instance().props()
?