gpt4 book ai didi

ios - React Navigation 从深度链接中获取参数不起作用

转载 作者:行者123 更新时间:2023-11-28 23:33:05 26 4
gpt4 key购买 nike

我的路由器配置如下:

const SwitchRouter = createSwitchNavigator(
{
Splash: {
screen: Launch,
path: 'hello/:code',
},
App: HomeStack,
},
{
initialRouteName: 'Splash',
}
);

我在 Safari 中使用一个链接,它会启动我的 iOS 应用程序,然后我应该从代码中的该链接获取一个参数。

我尝试了不同的链接,但无法从中获取任何参数。这是我尝试过的:

  • myApp://hello/123
  • myApp://hello/?code=123
  • myApp://hello?code=123

我的代码应该获取此code parementer,位于我的启动屏幕中,如下所示:

const code = navigation.getParam('code', 'error');

代码值总是错误,我这里的参数从未找到。我在这里错过了什么吗?我已经浏览了所有的 GitHub 和 React-navigation 文档,但找不到适合我的解决方案。

我读到有些人在 componentDidMount 中获取深度链接参数时遇到一些问题。显然他们不可用。所以我这里的代码负责获取我的参数“代码”,我尝试在 componentDidMount/DidUpdate 中甚至在渲染中使用它,但在所有情况下我都无法获取我的参数。

最佳答案

我认为您无法将深度链接参数传递到第一个/初始屏幕。您必须使用代理:

const SwitchRouter = createSwitchNavigator(
{
CodeScreen: {
Screen: Code,
path: 'code/:code',
}
Splash: {
screen: Launch,
path: 'hello',
},
App: HomeStack,
},
{
initialRouteName: 'Splash',
}
});



class Code extends Component {

constructor(props) {
super(props);

const {navigation} = this.props;
const code = navigation.getParam('code', false);

navigation.navigate('hello', {code});

}

render() {
return (
<View>

</View>
);
}

现在您可以在 SplashScreen 中检索“code”参数。

关于ios - React Navigation 从深度链接中获取参数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55828334/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com