我有一个组件,当我们注入不同的道具时会改变他的一些道具。
我正在努力寻找一种简单的方法来从测试中获取浅化组件的状态
这是代码:
describe('componentWillReceiveProps', () => {
it('update state isDedicatedDealPriceSelected to true', () => {
const productComponent = shallow(<Product selectedPriceOption="Test" />);
productComponent.setProps({ selectedPriceOption: 'dedicatedDealPrice' });
expect(productComponent.props.isDedicatedDealPriceSelected).toBeTruthy();
});
});
我不确定,我想访问应该是真实的道具isDedicatedDealPriceSelected。我认为我在productComponent.props.isDedicatedDealPriceSelected的最后一行写错了什么 我如何访问组件的道具?
我正在使用enzime通过玩笑来浅化渲染我的组件。
预先感谢!
编辑:我不是要访问道具,而是状态!抱歉,拼写错误
答案 0 :(得分:0)
似乎setProps
在重新渲染后执行了回调。也许您的测试需要异步,并且断言必须在此回调中完成。
在示例中,似乎只有componentWillReceiveProps
被同步调用。
https://airbnb.io/enzyme/docs/api/ShallowWrapper/setProps.html
答案 1 :(得分:0)
要访问浅层渲染组件的状态,可以使用以下命令进行访问:
const wrapper = shallow(<component />);
wrapper.state().componentVar
要访问浅层渲染组件的功能,可以使用:
wrapper.instance().componentFunction()