使用 setTimeout 导航到另一个组件不会 运行

Navigating to another component using setTimeout does not run

我正在尝试在 React Native 中创建一个加载屏幕,一旦 setTimeout 函数的时间完成,它将导航到确认屏幕。目前,屏幕已加载,但在 setTimeout 间隔后不会导航到确认屏幕。

import React from 'react';
import { Text, View, Image } from 'react-native';
import { Actions as NavigationActions } from 'react-native-router-
flux';

import styles from './styles';

export default class ProcessingLoader extends React.Component {
  constructor(props) {
   super(props);
   this.state = {};
 }



componentDidMount() {
    setTimeout(this.navigateToConfirmation, 3000);
   }



navigateToConfirmation() {
    NavigationActions.checkoutConfirmation({ product: this.props.product, type: 'reset' });
  }



renderLoader() {
    return (
      <View style={styles.textContainer}>
        <Text style={styles.loaderText}>Processing Order ...</Text>
      </View>
    );
  }



 render() {

    return (
      <View style={{ flex: 1 }}>
        {this.renderLoader()}
      </View>
    );
  }
}

我试过在 componentDidMount 和渲染中使用 setTimeout。我也尝试过使用箭头函数与不使用箭头函数。我在这里使用 setTimeout 完全错误吗?恐怕我不明白为什么它不会在 3 秒后导航到下一个屏幕。提前致谢!

您没有调用函数,请使用括号来调用。 另外,第一个参数是一个回调,所以把你的调用放在一个函数里,像这样:

componentDidMount() {
  setTimeout(function(t){t.navigateToConfirmation()}, 3000, this);
}

或者在箭头函数中:

componentDidMount() {
  setTimeout(() => {this.navigateToConfirmation()}, 3000);
}