Kam*_*ack 0 android deep-linking ios react-native react-navigation
我尝试根据react-navigation配置链接文档为我的react本机应用程序编写配置对象。
我定义了一系列路径 --> 路由映射,包括 Chat:'feed' 和 Explore:'news'
我的目标是让应用程序在解析https://example.com/someusername时默认显示“个人资料”屏幕,并将“someusername”作为 id 参数传递。类似于https://instagram.com/apple直接映射到 @apple 帐户的个人资料屏幕。
const linking = {
prefixes: ['https://example.com', 'example://'],
config: {
Home: {
path: '',
screens: {
Chat: 'feed',
Explore: 'news',
Profile: ':id',
},
},
},
}
Run Code Online (Sandbox Code Playgroud)
我不会允许用户创建帐户@feed、@news等以避免冲突。如果“someusername”尚不存在,我还会显示“找不到用户”消息
有没有正确的方法来执行此配置对象?或者,如果我需要编写自定义 getStateFromPath / getPathFromState 函数,有人有示例吗?
我们现在没有内置的方法来执行此操作,但您可以提供自定义getStateFromPath函数来返回不同的状态对象:
const linking = {
prefixes: ['https://mychat.com', 'mychat://'],
config: {
Chat: 'feed/:sort',
},
getStateFromPath(path, config) {
// You can perform own checks on the path
if (isValidPath(path)) {
return {
routes: [
{
name: 'Home',
state: {
routes: [{ name: 'Profile' }],
},
},
],
};
}
return getStateFromPath(path, config);
},
};
Run Code Online (Sandbox Code Playgroud)
https://reactnavigation.org/docs/use-linking#getstatefrompath
关于用户未找到消息,我建议Profile通过检查参数并在那里呈现错误消息来在屏幕本身中处理该消息。
| 归档时间: |
|
| 查看次数: |
2521 次 |
| 最近记录: |