如何在示例应用程序中使用 N 个视图进行本机反应

Posted

技术标签:

【中文标题】如何在示例应用程序中使用 N 个视图进行本机反应【英文标题】:How use N views in sample app in react native 【发布时间】:2017-04-27 23:20:15 【问题描述】:

我对 React Native 有一些疑问。我读了这个答案(How to do a multi-page app in react-native?)但我有点怀疑:

我在 React Native App 中使用 Navigator 来查看许多视图,但是我如何处理 N 个组件?例如,如果我有 5 个不同的视图,我已经使用了之前的代码五次......和 ​​n 次?

【问题讨论】:

不,你不需要像那样渲染......这是一个糟糕的答案。您可以通过查找表动态呈现。 【参考方案1】:

更多地了解我的评论。

而不是这个

if (routeId === 'SplashPage') 
    return (
        <SplashPage
            navigator=navigator/>
    );

if (routeId === 'LoginPage') 
    return (
        <LoginPage
            navigator=navigator/>
    );

只需要一个哈希表,您可以使用它来动态获取组件。

const Component = VIEW_COMPONENTS[routeid];

所以你的代码看起来像这样

const VIEW_COMPONENTS = 
    'SplashPage': SplashPage,
    'LoginPage': LoginPage
;

renderScene = ( route, navigator ) => 
    const ViewComponent = VIEW_COMPONENTS[route.id];
    return <ViewComponent navigator=navigator/>

任何额外的屏幕都将是您查找表的单行条目。我有一个有 40 个屏幕的本机应用程序,并且像这样很容易管理

添加到这个。你也可以从中抽象出更多。让每个视图都不关心它在哪里使用或它的下一个视图是什么。而是将所有这些都作为查找对象的一部分。指定每个视图都可以显示的下一条路线。您可以传递任何其他信息,所有这些信息都是可配置的,并且您的屏幕可以在多个流程中重复使用!

【讨论】:

谢谢!所以我可以在组件之间导航?例如,在这种情况下,每个组件对应一个问题。

以上是关于如何在示例应用程序中使用 N 个视图进行本机反应的主要内容,如果未能解决你的问题,请参考以下文章

如何将值传递给正在加载反应本机应用程序的 Web 视图

如何在本机反应中向视图添加动态宽度和颜色?

如何在本机反应中为整个应用程序(如每个屏幕)在屏幕底部显示自定义视图

可以在本机反应中检测到视图组件吗?

如何在本机反应中设置不可移动的地图标记

如何在本机反应中从相机按钮切换到视频录制按钮