React native 如何从URL打开应用程序并将参数作为值放入TextInput

React native 如何从URL打开应用程序并将参数作为值放入TextInput,react-native,react-native-android,deep-linking,react-native-navigation,React Native,React Native Android,Deep Linking,React Native Navigation,我正在尝试为一个应用程序创建一个注册系统,我打算使用深度链接,这样用户就不必手动在应用程序中键入令牌 计划发送一封带有如下链接的电子邮件: 等等:app://servertoken/lskdfnlsknfASD34fgss3633SDF 当他们点击链接时,我希望应用程序导航到不同于默认的启动屏幕,并在文本输入字段中放置“lskdfnlsknfASD34fgss3633SDF” 到目前为止,我得到的结果是,当他们单击链接时,它会打开应用程序并导航到默认的起始页 我已尝试更改MainActivity

我正在尝试为一个应用程序创建一个注册系统,我打算使用深度链接,这样用户就不必手动在应用程序中键入令牌

计划发送一封带有如下链接的电子邮件:

等等:app://servertoken/lskdfnlsknfASD34fgss3633SDF

当他们点击链接时,我希望应用程序导航到不同于默认的启动屏幕,并在文本输入字段中放置“lskdfnlsknfASD34fgss3633SDF”

到目前为止,我得到的结果是,当他们单击链接时,它会打开应用程序并导航到默认的起始页

我已尝试更改MainActivity文件,但结果没有任何更改


//app.js looks like this:


import React, {Fragment} from 'react';
import { createAppContainer} from "react-navigation";
import { createStackNavigator } from 'react-navigation-stack';
import Enroll from './src/Enroll';
import Login from './src/Login';


const AppNavigator = createStackNavigator({
  Enroll: { screen: Enroll, path: 'servertoken/:token', },
  Login: {screen: Login }
},
{
  initialRouteName: "Login"
}
);
const prefix = 'http://servertoken/';
const App = createAppContainer(AppNavigator)
const MainApp = () => <App uriPrefix={prefix} />;
export default MainApp;



//Enroll.js look like this:



import React from 'react';
import { Text, TextInput, View } from 'react-native';

class Enrollextends React.Component{
    static navigationOptions = {
        title: 'Enroll',
    };

    render(){
        const token = this.props.navigation.state.params;
        return (
            <View style={{flex:1,alignItems:'center',justifyContent:'center'}}>
                <Text>Enroll</Text>
                <TextInput value={token}/>

            </View>
        );
    }
}

export default Enroll;

//app.js如下所示:
从“React”导入React,{Fragment};
从“react navigation”导入{createAppContainer};
从“反应导航堆栈”导入{createStackNavigator};
从“./src/Enroll”导入注册;
从“./src/Login”导入登录名;
const AppNavigator=createStackNavigator({
注册:{屏幕:注册,路径:'servertoken/:token',},
登录:{屏幕:登录}
},
{
initialRouteName:“登录”
}
);
常量前缀http://servertoken/';
const App=createAppContainer(AppNavigator)
常量MainApp=()=>;
导出默认MainApp;
//Enroll.js如下所示:
从“React”导入React;
从“react native”导入{Text,TextInput,View};
类。组件{
静态导航选项={
标题:“注册”,
};
render(){
const token=this.props.navigation.state.params;
返回(
登记
);
}
}
导出默认注册;

预期结果是应用程序导航到主屏幕,文本输入中的值为token,实际结果是应用程序打开登录屏幕

您是否尝试使用navigation.getParam(“token”)方法提取它?否,据我所知,这部分:“路径:'servertoken/:token'”假设是获取参数。而不是此行const token=this.props.navigation.state.params;try const token=this.props.navigation.getParam('token'))