Undefined не является объектом (оценка 'navigation.getParam') - PullRequest
0 голосов
/ 26 октября 2018

React-native, реагировать-навигация. У меня есть пользовательский заголовок с кнопкой, который я извлек в другой файл. Кажется, я не могу получить доступ к объекту навигации.

function SetNavOptions(title, navigation) {
    const { buttonStyle, iconStyle } = styles;
    return {
        headerBackground: (<LinearGradient
            colors={['#337ab7', '#265a88']}
            style={{ flex: 1 }}
            start={[0, 0]}
            end={[0, 1]}
        />),
        headerTitleStyle: {
            color: 'white',
        },
        headerTitle: title,
        headerLeft: (
            <TouchableOpacity onPress={() => navigation.getParam('mydrawer')} style={buttonStyle}>
                <View>
                    <Icon.FontAwesome
                        name='bars'
                        size={26}
                        style={iconStyle}
                    />
                </View>
            </TouchableOpacity>
        ),
    };
}

И это мой экран, на котором я установил переменную navigationOptions:

export default class HomeScreen extends React.Component {

  static navigationOptions = SetNavOptions('Topics', this.navigation);

  componentDidMount() {
    this.props.navigation.setParams({ mydrawer: this.openDrawer });
  }

  openDrawer = () => {
    this.props.navigation.navigate('myDrawer');
  };

}

Запустив код и нажав кнопку, я получаю 'undefined не является объектом (оценка' navigation.getParam '). Что я делаю неправильно? Кроме того, как я определил SetNavOptions () лучший способ извлечь все это? Я новичок в реакции-родной.

1 Ответ

0 голосов
/ 27 октября 2018

Проблема заключалась в том, что моя строка static navigationOptions была неправильной в классе HomeScreen. Это должно быть так:

static navigationOptions = ({ navigation }) => SetNavOptions('Topics', navigation)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...