SafeAreaView
,react-native,react-navigation和react-native-safe-area-context导出名为react-native-safe-area-view的组件。
有什么区别?在哪种情况下应该使用哪个?
[react-native
中的一个除外,它们彼此重叠。所有其他命令都指示您需要将整个应用程序包装在SafeAreaProvider
组件中(尽管实际上,如果没有它,它们似乎也可以工作)。
我稍微研究了源代码,这是我的推论:
React Native提供的默认实现。应该适用于大多数情况,但不适用于以编程方式提供插图金额。
提供详细的,可检索的插图信息以及SafeAreaView
的准系统实施。
写在react-native-safe-area-context
之上,它重新导出SafeAreaProvider
和各种其他方法,但是提供了使用SafeAreaView
的Animated.View
的更复杂/精美的实现。添加诸如forceInset
之类的属性以避免在某些情况下由于布局更新而造成的混乱。由React Navigation团队实施。
为了方便起见,从SafeAreaView
重新导出react-native-safe-area-view
,并且在功能上等效。 (@react-navigation/native
也会导出同样的内容。)>
SafeAreaView
中的react-native
。它是默认提供的,并且可以使用。react-native-safe-area-context
或react-native-safe-area-view
。react-navigation
或react-native-safe-area-view
中的一个。使用React Navigation可能会更好。两者都是等效的,选择一个并持续使用。我建议添加一个ESLint no-restricted-imports rule,以防止从您选择使用的位置以外的任何其他位置意外导入SafeAreaView
。