Реагировать на родную вкладку - PullRequest
1 голос
/ 14 марта 2019

Я создаю свое первое приложениеact-native и внедряю вкладки с использованием response-native-tabview. Застрял с ошибкой "TypeError: undefined не является объектом (evaluating '_this.props.navigationState.routes.length').

Это скриншот ошибки, которую я получаю.

https://i.stack.imgur.com/sg5mX.png

import * as React from 'react';

import {Platform, StyleSheet, Text, View, Dimensions, StatusBar, 
FlatList, ImageBackground, TextInput} from 'react-native';

import { TabView, SceneMap } from 'react-native-tab-view';

const FirstRoute = () => (
<View style={[styles.scene, { backgroundColor: '#ff4081' }]} />
);

const SecondRoute = () => (
<View style={[styles.scene, { backgroundColor: '#673ab7' }]} />
);

export default class App extends React.Component{

state = {
index: 0,
routes: [
  { key: 'first', title: 'First' },
  { key: 'second', title: 'Second' },
],
};

render() {

return (
  <View style={styles.container}>
  <TabView
    navigationState={this.state}
    renderScene={SceneMap({
      first: FirstRoute,
      second: SecondRoute,
    })}
    onIndexChange={index => this.setState({ index })}
    initialLayout={{ width: Dimensions.get('window').width }}
    style={styles.container}
  /></View>    );  } }


const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
marginTop: StatusBar.currentHeight
},

 scene: {
flex: 1,
 },
});

1 Ответ

1 голос
/ 14 мая 2019

Итак, я скопировал / вставил и запустил ваш код (с другим цветом фона) в качестве закусочной: здесь https://snack.expo.io/B1-xKYu2N, и он работает.

Если это ваш первый проект, наиболееВероятно, проблема отсутствует или неправильно установлены пакеты.Дважды проверьте ваш package.json на что-то вроде "react-native-tab-view": "^2.0.1".Если он есть (или после его добавления), попробуйте запустить rm -rf ./node_modules && npm install в терминале из каталога проекта, чтобы удалить пакеты и переустановить их.Хотелось бы мне больше помочь!

...