Ошибка undefined не является объектом (вычисление 'this.props.navigation.navigate') // React-native - PullRequest
0 голосов
/ 11 июня 2018

Я нашел несколько похожих вопросов, у которых разная проблема и решение. Я хочу перейти к Auth, но ошибка undefined не является объектом (оценка 'this.props.navigation.navigate') ..............................................................................

ReviewScreen.js

import React,{Component} from 'react';
import {View,Text,Platform} from 'react-native';
import {Button} from'react-native-elements'
class ReviewScreen extends  Component{
    static navigationOptions = ({ navigation }) => {
        return {
            title: 'Review Jobs',
            headerRight: (
                <Button title='Settings'
                        onPress={() => navigation.navigate('settings')}
                        backgroundColor="rgba(0,0,0,0)"
                        color="rgba(0,122,255,1)"
                />
            ),
            style:{
                marginTop:Platform.OS==='android'?24:0
            }
        };
    }
    render(){
        return(
            <View>
                <Text>ReviewScreen</Text>
                <Text>ReviewScreen</Text>
                <Text>ReviewScreen</Text>
                <Text>ReviewScreen</Text>
                <Text>ReviewScreen</Text>
                <Text>ReviewScreen</Text>
                <Text>ReviewScreen</Text>
            </View>
        );
    }

}
export default ReviewScreen;

WelcomeScreen.js

import React, {Component} from 'react';
import {View, Text} from 'react-native';
import Slides from '../components/Slides'

const SLIDE_DATA = [
    {text: 'Welcome to JobApp', color: '#03A9F4'},
    {text: 'Use this to get a job', color: '#009688'},
    {text: 'Set your location,then swipe away', color: '#03A9F4'}
];

class WelcomeScreen extends Component {

    onSlidesComplete() {
        this.props.navigation.navigate('auth')
    }

    render() {
        return (
            <Slides data={SLIDE_DATA} onComplete={this.onSlidesComplete}/>
        );
    }

}

export default WelcomeScreen;

1 Ответ

0 голосов
/ 11 июня 2018

Метод onSlidesComplete не является частью this в вашем коде.Согласно ES6, вы должны сделать следующее:

class WelcomeScreen extends Component {
  onSlidesComplete = () => {
    this.props.navigation.navigate('auth')
  }

  render() {
    return (
      <Slides data={SLIDE_DATA} onComplete={this.onSlidesComplete}/>
    );
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...