React native 如何在React Native中使用酶测试openDrawer?

React native 如何在React Native中使用酶测试openDrawer?,react-native,jestjs,react-navigation,enzyme,React Native,Jestjs,React Navigation,Enzyme,我在英语考试中遇到了一些问题。我用的是酶,我试着点击打开抽屉的按钮。我也在使用react导航,但是当我尝试时,会出现以下问题: TypeError:navigation.openDrawer不是函数 const props = { navigation: { openDrawer: jest.fn(), }, }; const wrapper = shallow(<HeaderButton {...props} />); it('Dra

我在英语考试中遇到了一些问题。我用的是酶,我试着点击打开抽屉的按钮。我也在使用react导航,但是当我尝试时,会出现以下问题:

TypeError:navigation.openDrawer不是函数

  const props = {
    navigation: {
      openDrawer: jest.fn(),
    },
  };

  const wrapper = shallow(<HeaderButton {...props} />);

  it('DrawerMenu is Called', () => {
    expect(
      wrapper
        .find('AnimatedComponent')
        .props()
        .onPress(),
    ).toHaveBeenCalled();
  });

const HeaderButton = (navigation: NavigationParams) => (
  <TouchableRipple
    onPress={() => navigation.openDrawer()}
  >
    <Icon
      name="menu"
      size={Platform.OS === 'ios' ? 20 : 24}
      color="white"
      style={{ marginHorizontal: 16 }}
    />
  </TouchableRipple>
);
const props={
导航:{
openDrawer:jest.fn(),
},
};
常量包装器=浅();
它('称为抽屉菜单',()=>{
期待(
包装纸
.find('AnimatedComponent')
.props()
.onPress(),
).tohavebeincall();
});
const HeaderButton=(导航:NavigationParams)=>(
navigation.openDrawer()}
>
);
[链接至代码:


谢谢。

问题是
头部按钮
应该使用
道具
(它具有
导航
属性),而不是直接使用
导航

这应该起作用:
const HeaderButton=({navigation})=>(

或者,如果您愿意:

const HeaderButton = (props) => (
  <TouchableRipple
    onPress={props.navigation.openDrawer}
  >
const HeaderButton=(道具)=>(