React Native TabNavigator, не удается прочитать свойство «навигация» неопределенного

Я только что настроил React Navigation TabNavigator, который отлично работает, но у меня проблемы с переходами между представлениями.

Я получаю следующее сообщение об ошибке при попытке перенаправить пользователя на другую страницу после нажатия кнопки.

Невозможно прочитать свойство «навигация» неопределенного

Я очень смущен тем, как заставить эту работу работать.

Вот навигатор:

import React from 'react';
import { TabNavigator, StackNavigator } from 'react-navigation';
import ElemList from './src/components/ElemList';
import ElemShow from './src/components/ElemShow';

const RootTabs = TabNavigator({
  Home: {
    screen: ElemList,
    navigationOptions: {
      tabBarLabel: 'Home',
      tabBarIcon: ({ tintColor, focused }) => (
        <Ionicons
          name={focused ? 'ios-home' : 'ios-home-outline'}
          size={26}
          style={{ color: tintColor }}
        />
      ),
    },
    main: {
      screen: StackNavigator({
        show: { screen: ElemShow },
      })
    }
  }
});

Вот мой код:

onRowPress(data) {
this.props.navigation.navigate('ElemShow', {id: data})
};

render() {

const { key, elem } = this.props;

 return (
  <TouchableWithoutFeedback onPress={() => this.onRowPress(elem)}>
    <View style={styles.viewStyle} key={key}>
      <Text>Here is the info</Text>
    </View>
  </TouchableWithoutFeedback>
 )

}

person Hugo    schedule 20.12.2017    source источник
comment
Где вы определяете elem, который вы передаете функции в onPress?   -  person Max    schedule 20.12.2017
comment
@Max внутри this.props, извините, забыл упомянуть об этом. Но ошибка, похоже, связана с тем, что навигация не определена.   -  person Hugo    schedule 20.12.2017


Ответы (1)


Проблема в этой строке

this.props.navigation

Должно быть

this.props.navigator

Кроме того, я не знаю, что navigate является частью API экранов; обычно вы будете использовать push или resetTo.

person EricaCooksey    schedule 20.12.2017
comment
Я все еще получаю неопределенность. - person Hugo; 21.12.2017
comment
@ Хьюго, ты звонишь onRowPress из компонента? - person EricaCooksey; 21.12.2017
comment
Да. Этот компонент представляет собой ListItem, который я передаю с помощью функции карты в свой список. - person Hugo; 21.12.2017
comment
Можете ли вы опубликовать полный код компонента, включая исправление, которое вы сделали в соответствии с моим ответом? - person EricaCooksey; 21.12.2017
comment
Извините, я собираюсь закрыть эту проблему. Я переключаюсь на React Native Router Flux, в этой React Navigation слишком много ошибок. - person Hugo; 21.12.2017
comment
хорошо, если это дочерний компонент, вам нужно передать {...this.props}, чтобы получить навигатор - person EricaCooksey; 22.12.2017