【问题标题】:TypeError: Cannot read property 'navigate' of undefinedTypeError:无法读取未定义的属性“导航”
【发布时间】:2020-02-04 09:37:28
【问题描述】:

我为一个名为 NewUser.js 的屏幕写了一个快照测试,这里是测试代码:

import React from "react";
import NewUser from "../app/screens/NewUser/NewUser"
import renderer from "react-test-renderer"

describe("<NewUser/>", ()=>{
  it("snapshot", ()=>{
    expect(renderer.create(<NewUser/>).toJSON()).toMatchSnapshot();
  });
});

这里是 NewUser.js

import React, { Component } from 'react';
import { StyleSheet, Text, View, Button} from 'react-native';

import styles from './Styles'

export default class NewUser extends Component {
   static navigationOptions = () => {
    return {
        headerStyle: styles.headerStyle,
        headerTintColor: '#fff',
        headerTitle: 'JetSet',
        headerTitleStyle: {
            flex: 1,
        }
    };
};

render() {

    const { navigate } = this.props.navigation;

    return (
        <View style={styles.background}>
            <View style={styles.container}>
                <Button
                    onPress={() => navigate('Survey', { survey: 'NewUserQuestions' })}
                    title="New User"
                />
            </View>
        </View>
    );
}
}

我在运行测试时遇到了错误。我应该怎么做才能使测试可运行?谢谢。

【问题讨论】:

标签: react-native jestjs expo


【解决方案1】:

我通过这样做以某种方式解决了它

{ navigation } = this.props
...navigation.navigate()

我仍然不确定导致该问题的原因,并且解决方案并不完美,但它保存了我的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 2019-12-05
    • 2019-01-11
    • 1970-01-01
    相关资源
    最近更新 更多