react-native – 为Android和iOS开发组件的正确方法是什么?
在我们公司,我们有几个为iOS构建的React Native组件.它们都是基于
JavaScript的组件,所以它们也应该在React Native for Android下工作.此外,我们拥有的大多数组件应该只在设计风格上有所不同,因此我们需要在两个平台之间编码这些差异.
启用此组件以支持Android的正确方法是什么?我们是否必须使用if检查应用程序平台并相应地更改样式?如果我们想要分离两个文件中的组件,Component.android.js和Component.ios.js,React Native会根据它运行的平台自动检测它需要使用哪一个? 解决方法
我更喜欢一种非常简单的解决方案.只需使用文件扩展名:.ios. vs .android.
例如.看看我的导航我在android nav中使用android工具栏,如果我愿意,我可以使用navigatorIos for ios.应用程序平台将根据扩展名正确加载相应的平台文件.这意味着我只是正常加载它: var Nav = require('./jsx/Nav'); 我喜欢遵循React谈到的声明式方法,因此: 1)按照功能/行为而不是平台来组织文件,因为具有不同扩展名的相同文件将彼此相邻. 2)无论是显性还是隐式平台都不相关,因为当它是不同的平台特定组件时,您只会将文件拆分为扩展(因此这是固有的) 3)永远不需要在代码中处理不同的平台行为. 4)这是一个组合解决方案,正如我已经提到的:跨平台的文件不需要平台扩展(在某些情况下甚至可能不需要扩展的抽象类). 这是一个简单的解决方案,我不知道它对大型项目的扩展程度如何;但我完全是为了声明它的简单性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |