我想在特定超时后将启动画面导航到下一个屏幕.启动画面有一个动画,在Airbnb Lottie的帮助下为React Native完成.
splashscreen代码如下:
import React from "react"; import { Animated,Easing } from "react-native"; import LottieView from "lottie-react-native"; import { NavigationActions } from "react-navigation"; export default class SplashScreen extends React.Component { static navigationOptions = { header: null }; constructor() { super(); this.state = { progress: new Animated.Value(0),} } componentDidMount() { setTimeout(() => { this.navigateToWalkthrough() },3500); Animated.timing(this.state.progress,{ toValue: 1,duration: 3000,easing: Easing.linear,}).start(); } navigateToWalkthrough = () => { const navigateAction = NavigationActions.reset({ index: 0,actions: [NavigationActions.navigate({ routeName: "Walkthrough" })],}); this.props.navigation.dispatch(navigateAction); } render() { return( <LottieView source={require("../assets/splash/SplashScreenAnimation.json")} progress={this.state.progress} /> ); } }
我运行应用程序后出现错误:
undefined is not a function (evaluating'_reactNavigation.NavigationActions.reset')
Main.js文件如下所示:
import React from "react"; import { View,Text } from "react-native"; import { createStackNavigator } from "react-navigation"; import SplashScreen from "./screens/SplashScreen"; import Walkthrough from "./screens/Walkthrough"; const Routes = createStackNavigator({ Home: { screen: SplashScreen },Walkthrough: { screen: Walkthrough } }); export default class Main extends React.Component { render() { return <Routes />; } }
任何帮助/反馈?
解决方法
从NavigationActions中删除了重置操作,并且在反应导航的v2中有特定于StackNavigator的
StackActions
.
StackActions
is an object containing methods for generating actions
specific to stack-based navigators. Its methods expand upon the
actions available in NavigationActions.The following actions are supported:
Reset – Replace current state with a new state
Replace – Replace a route at a given key with another route
Push – Add a route on the top of the stack,and navigate forward to it
Pop – Navigate back to prevIoUs routes
PopToTop – Navigate to the top route of the stack,dismissing all other routes