更新:
反应导航网络支持已完成。按照这个: https://reactnavigation.org/docs/en/web-support.html
ORIGIN :
我尝试在react-native和web之间共享我的代码。 当我尝试react-native-web时,它运作良好。 但是只有一个问题,如何从网址访问特定的屏幕? 我阅读了react-navigation的文档,没有任何相关内容。 和react-router-native可以捕获web url, 但它有导航器喜欢StackNavigator / DrawerNavigator。 和想法?
答案 0 :(得分:1)
我不确定在您发布此问题时情况如何,但是您现在肯定可以在Web上使用react-navigation。
现在,通过链接,我们可以处理Android和iOS上的React Native应用中的深层链接,以及 在网络上使用时,在浏览器中启用URL集成。
NavigationContainer
组件具有一个链接道具,可让您绘制路线。
const linking = {
prefixes: ['https://mychat.com', 'mychat://'],
config: {
screens: {
Chat: 'feed/:sort',
Profile: 'user',
},
},
};
function App() {
return (
<NavigationContainer linking={linking} fallback={<Text>Loading...</Text>}>
{/* content */}
</NavigationContainer>
);
}
一旦我们确定了应用程序中所有路由或“链接”的内容,就可以开始使用Link
组件进行导航,就像在正常的React Web应用程序中一样,如果您使用react-router-dom。>
import { Link } from '@react-navigation/native';
// ...
function Home() {
return <Link to="/profile/jane">Go to Jane's profile</Link>;
}
这些链接组件应该在移动版本和Web版本上都可以使用。
https://reactnavigation.org/docs/configuring-links/
答案 1 :(得分:0)
我不认为这是可能的,因为ReactNavigation使用内部状态对象。请记住,它是移动框架,没有URL路由的概念。 我还想指出,即使RN要求网络支持,您仍需要谨慎选择组件,因为并非所有行为都相同(从内存来看,FlatList不支持触摸滚动)