diff --git a/404.html b/404.html index 80f9310517b..d025d81bd3a 100644 --- a/404.html +++ b/404.html @@ -17,7 +17,7 @@ - + diff --git a/about.html b/about.html index 4b48b6a355f..e64a46b9f08 100644 --- a/about.html +++ b/about.html @@ -17,7 +17,7 @@ - + diff --git a/architecture/bundled-hermes.html b/architecture/bundled-hermes.html index a095579ee64..1f4f410aeea 100644 --- a/architecture/bundled-hermes.html +++ b/architecture/bundled-hermes.html @@ -17,7 +17,7 @@ - + diff --git a/architecture/fabric-renderer.html b/architecture/fabric-renderer.html index 2edffc992df..1500b314e88 100644 --- a/architecture/fabric-renderer.html +++ b/architecture/fabric-renderer.html @@ -17,7 +17,7 @@ - + diff --git a/architecture/glossary.html b/architecture/glossary.html index 6b14b7f6ad8..113f8ec4fa9 100644 --- a/architecture/glossary.html +++ b/architecture/glossary.html @@ -17,7 +17,7 @@ - + diff --git a/architecture/landing-page.html b/architecture/landing-page.html index 229d4f9e9bd..01479445382 100644 --- a/architecture/landing-page.html +++ b/architecture/landing-page.html @@ -17,7 +17,7 @@ - + diff --git a/architecture/overview.html b/architecture/overview.html index 465c3c39f12..390a308adbf 100644 --- a/architecture/overview.html +++ b/architecture/overview.html @@ -17,7 +17,7 @@ - + diff --git a/architecture/render-pipeline.html b/architecture/render-pipeline.html index 98dd90328c6..061ba834eb6 100644 --- a/architecture/render-pipeline.html +++ b/architecture/render-pipeline.html @@ -17,7 +17,7 @@ - + diff --git a/architecture/threading-model.html b/architecture/threading-model.html index 211842d0ca1..675600f30e0 100644 --- a/architecture/threading-model.html +++ b/architecture/threading-model.html @@ -17,7 +17,7 @@ - + diff --git a/architecture/view-flattening.html b/architecture/view-flattening.html index d65c5dff78d..120aa8a1122 100644 --- a/architecture/view-flattening.html +++ b/architecture/view-flattening.html @@ -17,7 +17,7 @@ - + diff --git a/architecture/xplat-implementation.html b/architecture/xplat-implementation.html index 12c9365ddb6..d94829115b4 100644 --- a/architecture/xplat-implementation.html +++ b/architecture/xplat-implementation.html @@ -17,7 +17,7 @@ - + diff --git a/assets/js/0058b4c6.3e54ec6a.js b/assets/js/0058b4c6.3e54ec6a.js new file mode 100644 index 00000000000..6352351af24 --- /dev/null +++ b/assets/js/0058b4c6.3e54ec6a.js @@ -0,0 +1,14 @@ +"use strict"; +exports.id = 90849; +exports.ids = [90849]; +exports.modules = { + +/***/ 86164: +/***/ ((module) => { + +module.exports = /*#__PURE__*/JSON.parse('{"version":{"pluginId":"default","version":"0.76","label":"0.76","banner":null,"badge":false,"noIndex":false,"className":"docs-version-0.76","isLast":true,"docsSidebars":{"docs":[{"type":"category","label":"入门基础","items":[{"type":"link","label":"简介","href":"/docs/getting-started","docId":"getting-started","unlisted":false},{"type":"link","label":"核心组件与原生组件","href":"/docs/intro-react-native-components","docId":"intro-react-native-components","unlisted":false},{"type":"link","label":"React 基础","href":"/docs/intro-react","docId":"intro-react","unlisted":false},{"type":"link","label":"处理文本输入","href":"/docs/handling-text-input","docId":"handling-text-input","unlisted":false},{"type":"link","label":"使用滚动视图","href":"/docs/using-a-scrollview","docId":"using-a-scrollview","unlisted":false},{"type":"link","label":"使用长列表","href":"/docs/using-a-listview","docId":"using-a-listview","unlisted":false},{"type":"link","label":"特定平台代码","href":"/docs/platform-specific-code","docId":"platform-specific-code","unlisted":false},{"type":"link","label":"其他参考资源","href":"/docs/more-resources","docId":"more-resources","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"环境搭建","items":[{"type":"link","label":"搭建开发环境","href":"/docs/environment-setup","docId":"environment-setup","unlisted":false},{"type":"link","label":"集成到现有原生应用","href":"/docs/integration-with-existing-apps","docId":"integration-with-existing-apps","unlisted":false},{"type":"link","label":"集成到 Android Fragment","href":"/docs/integration-with-android-fragment","docId":"integration-with-android-fragment","unlisted":false},{"type":"link","label":"为电视和机顶盒制作应用","href":"/docs/building-for-tv","docId":"building-for-tv","unlisted":false},{"type":"link","label":"多平台支持","href":"/docs/out-of-tree-platforms","docId":"out-of-tree-platforms","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"开发流程","items":[{"type":"link","label":"在设备上运行","href":"/docs/running-on-device","docId":"running-on-device","unlisted":false},{"type":"link","label":"快速刷新","href":"/docs/fast-refresh","docId":"fast-refresh","unlisted":false},{"type":"link","label":"Metro","href":"/docs/metro","docId":"metro","unlisted":false},{"type":"link","label":"使用第三方库","href":"/docs/libraries","docId":"libraries","unlisted":false},{"type":"link","label":"使用 TypeScript","href":"/docs/typescript","docId":"typescript","unlisted":false},{"type":"link","label":"更新","href":"/docs/upgrading","docId":"upgrading","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"界面与交互","items":[{"type":"link","label":"样式","href":"/docs/style","docId":"style","unlisted":false},{"type":"link","label":"高度与宽度","href":"/docs/height-and-width","docId":"height-and-width","unlisted":false},{"type":"link","label":"使用 Flexbox 布局","href":"/docs/flexbox","docId":"flexbox","unlisted":false},{"type":"link","label":"图片","href":"/docs/images","docId":"images","unlisted":false},{"type":"link","label":"颜色","href":"/docs/colors","docId":"colors","unlisted":false},{"type":"category","label":"交互","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"处理触摸事件","href":"/docs/handling-touches","docId":"handling-touches","unlisted":false},{"type":"link","label":"使用导航器跳转页面","href":"/docs/navigation","docId":"navigation","unlisted":false},{"type":"link","label":"动画","href":"/docs/animations","docId":"animations","unlisted":false},{"type":"link","label":"手势响应系统","href":"/docs/gesture-responder-system","docId":"gesture-responder-system","unlisted":false}]},{"type":"category","label":"网络连接","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"访问网络","href":"/docs/network","docId":"network","unlisted":false},{"type":"link","label":"网络安全策略","href":"/docs/security","docId":"security","unlisted":false}]},{"type":"category","label":"包容性","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"无障碍功能","href":"/docs/accessibility","docId":"accessibility","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"调试","items":[{"type":"link","label":"调试","href":"/docs/debugging","docId":"debugging","unlisted":false},{"type":"link","label":"React Native 开发者工具","href":"/docs/react-native-devtools","docId":"react-native-devtools","unlisted":false},{"type":"link","label":"调试原生代码","href":"/docs/debugging-native-code","docId":"debugging-native-code","unlisted":false},{"type":"link","label":"调试发行版本","href":"/docs/debugging-release-builds","docId":"debugging-release-builds","unlisted":false},{"type":"link","label":"其他调试方法","href":"/docs/other-debugging-methods","docId":"other-debugging-methods","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"测试","items":[{"type":"link","label":"Testing","href":"/docs/testing-overview","docId":"testing-overview","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"性能调优","items":[{"type":"link","label":"性能综述","href":"/docs/performance","docId":"performance","unlisted":false},{"type":"link","label":"优化编译速度","href":"/docs/build-speed","docId":"build-speed","unlisted":false},{"type":"link","label":"列表配置优化","href":"/docs/optimizing-flatlist-configuration","docId":"optimizing-flatlist-configuration","unlisted":false},{"type":"link","label":"Optimizing JavaScript loading","href":"/docs/optimizing-javascript-loading","docId":"optimizing-javascript-loading","unlisted":false},{"type":"link","label":"Profiling","href":"/docs/profiling","docId":"profiling","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"JavaScript 运行环境","items":[{"type":"link","label":"JavaScript 环境","href":"/docs/javascript-environment","docId":"javascript-environment","unlisted":false},{"type":"link","label":"定时器","href":"/docs/timers","docId":"timers","unlisted":false},{"type":"link","label":"使用新的 Hermes 引擎","href":"/docs/hermes","docId":"hermes","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Codegen","items":[{"type":"link","label":"什么是 Codegen?","href":"/docs/the-new-architecture/what-is-codegen","docId":"the-new-architecture/what-is-codegen","unlisted":false},{"type":"link","label":"使用 Codegen","href":"/docs/the-new-architecture/using-codegen","docId":"the-new-architecture/using-codegen","unlisted":false},{"type":"link","label":"Codegen 命令行工具","href":"/docs/the-new-architecture/codegen-cli","docId":"the-new-architecture/codegen-cli","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"原生开发","items":[{"type":"link","label":"桥接原生平台能力","href":"/docs/native-platform","docId":"native-platform","unlisted":false},{"type":"category","label":"原生模块","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Turbo 原生模块介绍","href":"/docs/turbo-native-modules-introduction","docId":"turbo-native-modules-introduction","unlisted":false},{"type":"link","label":"纯 C++ Turbo 原生模块","href":"/docs/the-new-architecture/pure-cxx-modules","docId":"the-new-architecture/pure-cxx-modules","unlisted":false},{"type":"link","label":"高级:自定义 C++ 类型","href":"/docs/the-new-architecture/custom-cxx-types","docId":"the-new-architecture/custom-cxx-types","unlisted":false}]},{"type":"category","label":"原生 UI 组件","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Fabric Native Components Introduction","href":"/docs/fabric-native-components-introduction","docId":"fabric-native-components-introduction","unlisted":false}]},{"type":"category","label":"其他","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"附录","href":"/docs/appendix","docId":"appendix","unlisted":false},{"type":"link","label":"创建模块库","href":"/docs/the-new-architecture/create-module-library","docId":"the-new-architecture/create-module-library","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"Android 与 iOS 指南","items":[{"type":"category","label":"Android","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Headless JS(后台任务)","href":"/docs/headless-js-android","docId":"headless-js-android","unlisted":false},{"type":"link","label":"打包发布","href":"/docs/signed-apk-android","docId":"signed-apk-android","unlisted":false},{"type":"link","label":"和原生端通信","href":"/docs/communication-android","docId":"communication-android","unlisted":false},{"type":"link","label":"React Native Gradle Plugin","href":"/docs/react-native-gradle-plugin","docId":"react-native-gradle-plugin","unlisted":false}]},{"type":"category","label":"iOS","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"链接原生库","href":"/docs/linking-libraries-ios","docId":"linking-libraries-ios","unlisted":false},{"type":"link","label":"在iOS模拟器上运行","href":"/docs/running-on-simulator-ios","docId":"running-on-simulator-ios","unlisted":false},{"type":"link","label":"和原生端通信","href":"/docs/communication-ios","docId":"communication-ios","unlisted":false},{"type":"link","label":"iOS 应用小组件","href":"/docs/app-extensions","docId":"app-extensions","unlisted":false},{"type":"link","label":"上架 App Store","href":"/docs/publishing-to-app-store","docId":"publishing-to-app-store","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"旧架构","items":[{"type":"category","label":"原生模块(旧架构)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"原生模块简介","href":"/docs/legacy/native-modules-intro","docId":"legacy/native-modules-intro","unlisted":false},{"type":"link","label":"Android 原生模块","href":"/docs/legacy/native-modules-android","docId":"legacy/native-modules-android","unlisted":false},{"type":"link","label":"iOS 原生模块","href":"/docs/legacy/native-modules-ios","docId":"legacy/native-modules-ios","unlisted":false},{"type":"link","label":"Native Modules NPM Package Setup","href":"/docs/legacy/native-modules-setup","docId":"legacy/native-modules-setup","unlisted":false},{"type":"link","label":"Local libraries setup","href":"/docs/legacy/local-library-setup","docId":"legacy/local-library-setup","unlisted":false}]},{"type":"category","label":"原生 UI 组件(旧架构)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Android 原生UI组件","href":"/docs/legacy/native-components-android","docId":"legacy/native-components-android","unlisted":false},{"type":"link","label":"iOS 原生UI组件","href":"/docs/legacy/native-components-ios","docId":"legacy/native-components-ios","unlisted":false},{"type":"link","label":"直接操作","href":"/docs/legacy/direct-manipulation","docId":"legacy/direct-manipulation","unlisted":false}]}],"collapsed":true,"collapsible":true}],"api":[{"type":"category","label":"APIs","items":[{"type":"link","label":"AccessibilityInfo","href":"/docs/accessibilityinfo","docId":"accessibilityinfo","unlisted":false},{"type":"link","label":"Alert","href":"/docs/alert","docId":"alert","unlisted":false},{"type":"link","label":"Animated","href":"/docs/animated","docId":"animated","unlisted":false},{"type":"link","label":"Animated.Value","href":"/docs/animatedvalue","docId":"animatedvalue","unlisted":false},{"type":"link","label":"Animated.ValueXY","href":"/docs/animatedvaluexy","docId":"animatedvaluexy","unlisted":false},{"type":"link","label":"Appearance","href":"/docs/appearance","docId":"appearance","unlisted":false},{"type":"link","label":"AppRegistry","href":"/docs/appregistry","docId":"appregistry","unlisted":false},{"type":"link","label":"AppState","href":"/docs/appstate","docId":"appstate","unlisted":false},{"type":"link","label":"DevSettings","href":"/docs/devsettings","docId":"devsettings","unlisted":false},{"type":"link","label":"Dimensions","href":"/docs/dimensions","docId":"dimensions","unlisted":false},{"type":"link","label":"Easing","href":"/docs/easing","docId":"easing","unlisted":false},{"type":"link","label":"InteractionManager","href":"/docs/interactionmanager","docId":"interactionmanager","unlisted":false},{"type":"link","label":"Keyboard","href":"/docs/keyboard","docId":"keyboard","unlisted":false},{"type":"link","label":"LayoutAnimation","href":"/docs/layoutanimation","docId":"layoutanimation","unlisted":false},{"type":"link","label":"Linking","href":"/docs/linking","docId":"linking","unlisted":false},{"type":"link","label":"PanResponder","href":"/docs/panresponder","docId":"panresponder","unlisted":false},{"type":"link","label":"PixelRatio","href":"/docs/pixelratio","docId":"pixelratio","unlisted":false},{"type":"link","label":"Platform","href":"/docs/platform","docId":"platform","unlisted":false},{"type":"link","label":"PlatformColor","href":"/docs/platformcolor","docId":"platformcolor","unlisted":false},{"type":"link","label":"RootTag","href":"/docs/roottag","docId":"roottag","unlisted":false},{"type":"link","label":"Share","href":"/docs/share","docId":"share","unlisted":false},{"type":"link","label":"StyleSheet","href":"/docs/stylesheet","docId":"stylesheet","unlisted":false},{"type":"link","label":"Systrace","href":"/docs/systrace","docId":"systrace","unlisted":false},{"type":"link","label":"变换(Transform)","href":"/docs/transforms","docId":"transforms","unlisted":false},{"type":"link","label":"Vibration","href":"/docs/vibration","docId":"vibration","unlisted":false},{"type":"category","label":"Hooks","collapsed":false,"items":[{"type":"link","label":"useColorScheme","href":"/docs/usecolorscheme","docId":"usecolorscheme","unlisted":false},{"type":"link","label":"useWindowDimensions","href":"/docs/usewindowdimensions","docId":"usewindowdimensions","unlisted":false}],"collapsible":true},{"type":"category","label":"Android API","collapsed":false,"items":[{"type":"link","label":"BackHandler","href":"/docs/backhandler","docId":"backhandler","unlisted":false},{"type":"link","label":"PermissionsAndroid","href":"/docs/permissionsandroid","docId":"permissionsandroid","unlisted":false},{"type":"link","label":"ToastAndroid","href":"/docs/toastandroid","docId":"toastandroid","unlisted":false}],"collapsible":true},{"type":"category","label":"iOS API","collapsed":false,"items":[{"type":"link","label":"ActionSheetIOS","href":"/docs/actionsheetios","docId":"actionsheetios","unlisted":false},{"type":"link","label":"DynamicColorIOS","href":"/docs/dynamiccolorios","docId":"dynamiccolorios","unlisted":false},{"type":"link","label":"Settings","href":"/docs/settings","docId":"settings","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true}],"组件":[{"type":"category","label":"核心组件","items":[{"type":"link","label":"核心组件和API","href":"/docs/components-and-apis","docId":"components-and-apis","unlisted":false},{"type":"link","label":"ActivityIndicator","href":"/docs/activityindicator","docId":"activityindicator","unlisted":false},{"type":"link","label":"Button","href":"/docs/button","docId":"button","unlisted":false},{"type":"link","label":"FlatList","href":"/docs/flatlist","docId":"flatlist","unlisted":false},{"type":"link","label":"Image","href":"/docs/image","docId":"image","unlisted":false},{"type":"link","label":"ImageBackground","href":"/docs/imagebackground","docId":"imagebackground","unlisted":false},{"type":"link","label":"KeyboardAvoidingView","href":"/docs/keyboardavoidingview","docId":"keyboardavoidingview","unlisted":false},{"type":"link","label":"Modal","href":"/docs/modal","docId":"modal","unlisted":false},{"type":"link","label":"Pressable","href":"/docs/pressable","docId":"pressable","unlisted":false},{"type":"link","label":"RefreshControl","href":"/docs/refreshcontrol","docId":"refreshcontrol","unlisted":false},{"type":"link","label":"ScrollView","href":"/docs/scrollview","docId":"scrollview","unlisted":false},{"type":"link","label":"SectionList","href":"/docs/sectionlist","docId":"sectionlist","unlisted":false},{"type":"link","label":"StatusBar","href":"/docs/statusbar","docId":"statusbar","unlisted":false},{"type":"link","label":"Switch","href":"/docs/switch","docId":"switch","unlisted":false},{"type":"link","label":"Text","href":"/docs/text","docId":"text","unlisted":false},{"type":"link","label":"TextInput","href":"/docs/textinput","docId":"textinput","unlisted":false},{"type":"link","label":"TouchableHighlight","href":"/docs/touchablehighlight","docId":"touchablehighlight","unlisted":false},{"type":"link","label":"TouchableOpacity","href":"/docs/touchableopacity","docId":"touchableopacity","unlisted":false},{"type":"link","label":"TouchableWithoutFeedback","href":"/docs/touchablewithoutfeedback","docId":"touchablewithoutfeedback","unlisted":false},{"type":"link","label":"View","href":"/docs/view","docId":"view","unlisted":false},{"type":"link","label":"VirtualizedList","href":"/docs/virtualizedlist","docId":"virtualizedlist","unlisted":false},{"type":"category","label":"Android 组件","collapsed":false,"items":[{"type":"link","label":"DrawerLayoutAndroid","href":"/docs/drawerlayoutandroid","docId":"drawerlayoutandroid","unlisted":false},{"type":"link","label":"TouchableNativeFeedback","href":"/docs/touchablenativefeedback","docId":"touchablenativefeedback","unlisted":false}],"collapsible":true},{"type":"category","label":"iOS 组件","collapsed":false,"items":[{"type":"link","label":"InputAccessoryView","href":"/docs/inputaccessoryview","docId":"inputaccessoryview","unlisted":false},{"type":"link","label":"SafeAreaView","href":"/docs/safeareaview","docId":"safeareaview","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Props","items":[{"type":"link","label":"图片样式属性","href":"/docs/image-style-props","docId":"image-style-props","unlisted":false},{"type":"link","label":"布局属性","href":"/docs/layout-props","docId":"layout-props","unlisted":false},{"type":"link","label":"阴影样式属性","href":"/docs/shadow-props","docId":"shadow-props","unlisted":false},{"type":"link","label":"Text 样式属性","href":"/docs/text-style-props","docId":"text-style-props","unlisted":false},{"type":"link","label":"View 样式属性","href":"/docs/view-style-props","docId":"view-style-props","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"内部对象类型","items":[{"type":"link","label":"布局事件对象","href":"/docs/layoutevent","docId":"layoutevent","unlisted":false},{"type":"link","label":"点击事件对象","href":"/docs/pressevent","docId":"pressevent","unlisted":false},{"type":"link","label":"React 节点对象","href":"/docs/react-node","docId":"react-node","unlisted":false},{"type":"link","label":"矩形区域对象","href":"/docs/rect","docId":"rect","unlisted":false},{"type":"link","label":"ViewToken 对象","href":"/docs/viewtoken","docId":"viewtoken","unlisted":false}],"collapsed":true,"collapsible":true}]},"docs":{"accessibility":{"id":"accessibility","title":"无障碍功能","description":"译注:accessibility 一词常见多种译法:可访问性、无障碍性、辅助功能等等,其中文意思都不太能准确表达其功能的本质——即为残障人士提供便利。本文主要采用“无障碍功能”和“辅助技术/服务”的说法。如果你或你的公司暂时没有资源和精力去服务这些用户,那么你可以跳过本文。但是,译者个人希望借本文档,呼吁有能力有资源的商业公司/组织/个人,重视残障人士使用智能手机的权利。","sidebar":"docs"},"accessibilityinfo":{"id":"accessibilityinfo","title":"AccessibilityInfo","description":"有时候我们希望知道用户的设备是否正在运行读屏应用。AccessibilityInfo正是用于此目的。你可以用它来查询读屏应用的当前状态,并且可以监听其状态变化。","sidebar":"api"},"actionsheetios":{"id":"actionsheetios","title":"ActionSheetIOS","description":"显示一个 iOS 原生的Action Sheet组件。","sidebar":"api"},"activityindicator":{"id":"activityindicator","title":"ActivityIndicator","description":"显示一个圆形的 loading 提示符号。","sidebar":"组件"},"alert":{"id":"alert","title":"Alert","description":"启动一个提示对话框,包含对应的标题和信息。","sidebar":"api"},"alertios":{"id":"alertios","title":"AlertIOS","description":"AlertIOS用于弹出一个 iOS 提示对话框,可以通知用户一些信息或是提示用户输入一些文字。"},"animated":{"id":"animated","title":"Animated","description":"Animated库旨在使动画变得流畅,强大并易于构建和维护。Animated侧重于输入和输出之间的声明性关系,以及两者之间的可配置变换,此外还提供了简单的 start/stop方法来控制基于时间的动画执行。","sidebar":"api"},"animatedvalue":{"id":"animatedvalue","title":"Animated.Value","description":"驱动动画的一维标量值. 一个Animated.Value可以同步地驱动多个属性,但每次只能以一种动画机制变化。如果改用了其他动画机制(例如开始一个新的动画或是调用setValue),则会停止先前的动画。","sidebar":"api"},"animatedvaluexy":{"id":"animatedvaluexy","title":"Animated.ValueXY","description":"2D 值用于驱动 2D 动画,例如平移手势。与普通的Animated.Value几乎相同的 API,但是可以多路复用。在内部包含两个常规的Animated.Value。","sidebar":"api"},"animations":{"id":"animations","title":"动画","description":"流畅、有意义的动画对于移动应用用户体验来说是非常重要的。现实生活中的物体在开始移动和停下来的时候都具有一定的惯性,我们在界面中也可以使用动画来实现契合物理规律的交互。","sidebar":"docs"},"app-extensions":{"id":"app-extensions","title":"iOS 应用小组件","description":"小组件允许您在主要应用程序之外提供自定义功能和内容。iOS上有不同类型的应用小组件,它们都在App Extension编程指南中进行了介绍。在本指南中,我们将简要介绍如何在iOS上利用应用小组件的优势。","sidebar":"docs"},"appearance":{"id":"appearance","title":"Appearance","description":"Appearance 模块提供了关于用户外观偏好的信息,例如他们喜欢的颜色方案(明亮或暗黑)。","sidebar":"api"},"appendix":{"id":"appendix","title":"附录","description":"一、术语","sidebar":"docs"},"appregistry":{"id":"appregistry","title":"AppRegistry","description":"仅适用于非沙盒项目","sidebar":"api"},"appstate":{"id":"appstate","title":"AppState","description":"AppState能告诉你应用当前是在前台还是在后台,并且能在状态变化的时候通知你。","sidebar":"api"},"architecture-glossary":{"id":"architecture-glossary","title":"术语表","description":"Fabric 渲染器(Fabric Renderer)"},"architecture-overview":{"id":"architecture-overview","title":"架构概览","description":"本文档还在持续更新中,会从概念上介绍 React Native 新架构是如何工作的。目标读者包括生态库的开发者、核心贡献者和特别有好奇心的人。"},"asyncstorage":{"id":"asyncstorage","title":"🚧 AsyncStorage","description":"已过时。 Use one of the community packages instead."},"backhandler":{"id":"backhandler","title":"BackHandler","description":"BackHandler API 用于监听设备上的后退按钮事件,可以调用你自己的函数来处理后退行为。此 API 仅能在 Android 上使用。","sidebar":"api"},"build-speed":{"id":"build-speed","title":"优化编译速度","description":"构建 React Native 应用可能会非常昂贵,并且需要开发人员花费数分钟的时间。","sidebar":"docs"},"building-for-tv":{"id":"building-for-tv","title":"为电视和机顶盒制作应用","description":"目前的 React Native 应用只需在 JavaScript 端简单修改甚至无需修改,在电视和机顶盒设备上就基本可用了。","sidebar":"docs"},"button":{"id":"button","title":"Button","description":"一个简单的跨平台的按钮组件。可以进行一些简单的定制。","sidebar":"组件"},"checkbox":{"id":"checkbox","title":"🚧 CheckBox","description":"Removed. Use one of the community packages instead."},"clipboard":{"id":"clipboard","title":"🚧 Clipboard","description":"Deprecated. Use one of the community packages instead."},"colors":{"id":"colors","title":"颜色","description":"React Native 中的组件是使用 JavaScript 进行样式化的。颜色属性通常与 Web 上的 CSS 工作方式相匹配。每个平台上关于颜色使用的一般指南如下:","sidebar":"docs"},"communication-android":{"id":"communication-android","title":"和原生端通信","description":"通过植入原生应用和原生 UI 组件两篇文档,我们学习了 React Native 和原生组件的互相整合。在整合的过程中,我们会需要在两个世界间互相通信。有些方法已经在其他的指南中提到了,这篇文章总结了所有可行的技术。","sidebar":"docs"},"communication-ios":{"id":"communication-ios","title":"和原生端通信","description":"通过植入原生应用和原生 UI 组件两篇文档,我们学习了 React Native 和原生组件的互相整合。在整合的过程中,我们会需要在两个世界间互相通信。有些方法已经在其他的指南中提到了,这篇文章总结了所有可行的技术。","sidebar":"docs"},"components-and-apis":{"id":"components-and-apis","title":"核心组件和API","description":"React Native 提供了一些内置的核心组件供你使用。你可以在网站的左侧看到组件的完整列表。如果你不知道从哪看起,那么可以先看一下下面这个简单的分类:","sidebar":"组件"},"custom-webview-android":{"id":"custom-webview-android","title":"Custom WebView","description":"While the built-in web view has a lot of features, it is not possible to handle every use-case in React Native. You can, however, extend the web view with native code without forking React Native or duplicating all the existing web view code."},"custom-webview-ios":{"id":"custom-webview-ios","title":"Custom WebView","description":"While the built-in web view has a lot of features, it is not possible to handle every use-case in React Native. You can, however, extend the web view with native code without forking React Native or duplicating all the existing web view code."},"datepickerandroid":{"id":"datepickerandroid","title":"🚧 DatePickerAndroid","description":"Deprecated. Use one of the community packages instead."},"datepickerios":{"id":"datepickerios","title":"🚧 DatePickerIOS","description":"Deprecated. Use one of the community packages instead."},"debugging":{"id":"debugging","title":"调试","description":"访问 App 内的开发菜单","sidebar":"docs"},"debugging-native-code":{"id":"debugging-native-code","title":"调试原生代码","description":"仅限包含原生代码的项目","sidebar":"docs"},"debugging-release-builds":{"id":"debugging-release-builds","title":"调试发行版本","description":"符号化堆栈跟踪","sidebar":"docs"},"devsettings":{"id":"devsettings","title":"DevSettings","description":"DevSettings 模块可以对开发者菜单进行一些自定义。","sidebar":"api"},"dimensions":{"id":"dimensions","title":"Dimensions","description":"本模块用于获取设备屏幕的宽高。","sidebar":"api"},"drawerlayoutandroid":{"id":"drawerlayoutandroid","title":"DrawerLayoutAndroid","description":"封装了 Android 平台DrawerLayout的 React 组件。抽屉(通常用于导航切换)是通过renderNavigationView方法渲染的,并且 DrawerLayoutAndroid 的直接子视图会成为主视图(用于放置内容)。导航视图一开始在屏幕上并不可见,不过可以从drawerPosition指定的窗口侧面拖拽出来,并且抽屉的宽度可以使用drawerWidth属性来指定。","sidebar":"组件"},"dynamiccolorios":{"id":"dynamiccolorios","title":"DynamicColorIOS","description":"DynamicColorIOS函数是专门针对iOS平台的颜色类型。","sidebar":"api"},"easing":{"id":"easing","title":"Easing","description":"Easing模块实现了常见的动画缓动函数。 这个模块被Animated.timing()用于在动画中传达真实可信的运动。","sidebar":"api"},"environment-setup":{"id":"environment-setup","title":"搭建开发环境","description":"欢迎使用 React Native!这篇文档会帮助你搭建基本的 React Native 开发环境。","sidebar":"docs"},"fabric-native-components-android":{"id":"fabric-native-components-android","title":"Fabric Native Modules: Android","description":"现在,是时候编写一些 Android 平台代码,以便能够渲染 web 视图。以下是需要的步骤:"},"fabric-native-components-introduction":{"id":"fabric-native-components-introduction","title":"Fabric Native Components Introduction","description":"如果你想构建一个 新架构 的 React Native 组件,该组件可以包装一个 Host Component,例如 Android 上的 CheckBox,或者 iOS 上的 UIButton,你应该使用 Fabric 原生组件。","sidebar":"docs"},"fabric-native-components-ios":{"id":"fabric-native-components-ios","title":"Fabric Native Components: iOS","description":"现在,是时候编写一些 iOS 平台代码,以便能够渲染 web 视图。以下是需要的步骤:"},"fabric-renderer":{"id":"fabric-renderer","title":"Fabric 渲染器","description":"Fabric 是 React Native 新架构的渲染系统,是从老架构的渲染系统演变而来的。核心原理是在 C++ 层统一更多的渲染逻辑,提升与宿主平台(host platforms)互操作性,并为 React Native 解锁更多能力。其研发始于 2018 年。从 2021 年开始, Facebook App 中的 React Native 启用了新的渲染器。"},"fast-refresh":{"id":"fast-refresh","title":"快速刷新","description":"快速刷新是 React Native 一个特性,在修改组件的时候快速刷新会给你一个即时的反馈。快速刷新默认是开启的,可以通过调整 React Native 开发者菜单里面的 \\"Enable Fast Refresh\\" 来开启或关闭。在快速刷新开启的时候,大多数的修改能在一到两秒之内呈现。","sidebar":"docs"},"flatlist":{"id":"flatlist","title":"FlatList","description":"高性能的简单列表组件,支持下面这些常用的功能:","sidebar":"组件"},"flexbox":{"id":"flexbox","title":"使用 Flexbox 布局","description":"我们在 React Native 中使用 flexbox 规则来指定某个组件的子元素的布局。Flexbox 可以在不同屏幕尺寸上提供一致的布局结构。","sidebar":"docs"},"gesture-responder-system":{"id":"gesture-responder-system","title":"手势响应系统","description":"移动设备上的手势识别要比在 web 上复杂得多。用户的一次触摸操作的真实意图是什么,App 要经过好几个阶段才能判断。比如 App 需要判断用户的触摸到底是在滚动页面,还是滑动一个 widget,或者只是一个单纯的点击。甚至随着持续时间的不同,这些操作还会转化。此外,还有多点同时触控的情况。","sidebar":"docs"},"getting-started":{"id":"getting-started","title":"简介","description":"欢迎开启 React Native 的旅程!如果你在找如何搭建环境的文档,请移步搭建开发环境。 继续往下阅读可了解关于文档结构、原生组件、React等相关的一些介绍。","sidebar":"docs"},"handling-text-input":{"id":"handling-text-input","title":"处理文本输入","description":"TextInput是一个允许用户输入文本的基础组件。它有一个名为onChangeText的属性,此属性接受一个函数,而此函数会在文本变化时被调用。另外还有一个名为onSubmitEditing的属性,会在文本被提交后(用户按下软键盘上的提交键)调用。","sidebar":"docs"},"handling-touches":{"id":"handling-touches","title":"处理触摸事件","description":"移动应用上的用户交互基本靠“摸”。当然,“摸”也是有各种姿势的:在一个按钮上点击,在一个列表上滑动,或是在一个地图上缩放。React Native 提供了可以处理常见触摸手势(例如点击或滑动)的组件, 以及可用于识别更复杂的手势的完整的手势响应系统。","sidebar":"docs"},"headless-js-android":{"id":"headless-js-android","title":"Headless JS(后台任务)","description":"Headless JS 是一种使用 js 在后台执行任务的方法。它可以用来在后台同步数据、处理推送通知或是播放音乐等等。","sidebar":"docs"},"height-and-width":{"id":"height-and-width","title":"高度与宽度","description":"组件的高度和宽度决定了其在屏幕上显示的尺寸。","sidebar":"docs"},"hermes":{"id":"hermes","title":"使用新的 Hermes 引擎","description":"Hermes 是专门针对 React Native 应用而优化的全新开源 JavaScript 引擎。对于很多应用来说,启用 Hermes 引擎可以优化启动时间,减少内存占用以及空间占用。从 React Native 0.70 版本开始 Hermes 已经默认启用,无需开发者再做任何配置。","sidebar":"docs"},"image":{"id":"image","title":"Image","description":"用于显示多种不同类型图片的 React 组件,包括网络图片、静态资源、临时的本地图片、以及本地磁盘上的图片(如相册)等。","sidebar":"组件"},"image-style-props":{"id":"image-style-props","title":"图片样式属性","description":"示例","sidebar":"组件"},"imagebackground":{"id":"imagebackground","title":"ImageBackground","description":"对于熟悉 Web 开发的开发人员来说,background-image是一个常见的功能请求。为了处理这种情况,您可以使用`组件,它具有与`相同的属性,并且可以添加任何子元素以覆盖在其上面。","sidebar":"组件"},"imagepickerios":{"id":"imagepickerios","title":"🚧 ImagePickerIOS","description":"Deprecated. Use one of the community packages instead."},"images":{"id":"images","title":"图片","description":"静态图片资源","sidebar":"docs"},"improvingux":{"id":"improvingux","title":"改进用户体验","description":"配置文本输入"},"inputaccessoryview":{"id":"inputaccessoryview","title":"InputAccessoryView","description":"一个可以在iOS上自定义键盘输入辅助视图的组件。当TextInput获得焦点时,输入辅助视图显示在键盘上方。该组件可用于创建自定义工具栏。","sidebar":"组件"},"integration-with-android-fragment":{"id":"integration-with-android-fragment","title":"集成到 Android Fragment","description":"与现有应用程序集成指南中详细介绍了如何将全屏 React Native 应用程序作为 Activity 集成到现有 Android 应用程序中。要在现有应用程序的 Fragments 中使用 React Native 组件,需要进行一些额外的设置。这样做的好处是它允许原生应用程序将 React Native 组件与 Activity 中的原生 Fragments 集成在一起。","sidebar":"docs"},"integration-with-existing-apps":{"id":"integration-with-existing-apps","title":"集成到现有原生应用","description":"如果你正准备从头开始制作一个新的应用,那么 React Native 会是个非常好的选择。但如果你只想给现有的原生应用中添加一两个视图或是业务流程,React Native 也同样不在话下。只需简单几步,你就可以给原有应用加上新的基于 React Native 的特性、画面和视图等。","sidebar":"docs"},"interactionmanager":{"id":"interactionmanager","title":"InteractionManager","description":"Interactionmanager 可以将一些耗时较长的工作安排到所有互动或动画完成之后再进行。这样可以保证 JavaScript 动画的流畅运行。","sidebar":"api"},"intro-react":{"id":"intro-react","title":"React 基础","description":"要深入理解 React Native,需要扎实的React 基础知识。这篇小教程可以帮助你入门或者温习相关知识。","sidebar":"docs"},"intro-react-native-components":{"id":"intro-react-native-components","title":"核心组件与原生组件","description":"React Native 使用完全原生的组件来构建应用界面。尤其方便的是它已经内置了大量直接上手可用的核心组件。","sidebar":"docs"},"javascript-environment":{"id":"javascript-environment","title":"JavaScript 环境","description":"JavaScript 运行时环境","sidebar":"docs"},"keyboard":{"id":"keyboard","title":"Keyboard","description":"Keyboard模块用来控制键盘相关的事件。","sidebar":"api"},"keyboardavoidingview":{"id":"keyboardavoidingview","title":"KeyboardAvoidingView","description":"本组件用于解决一个常见的尴尬问题:手机上弹出的键盘常常会挡住当前的视图。本组件可以自动根据键盘的高度,调整自身的 height 或底部的 padding,以避免被遮挡。","sidebar":"组件"},"layout-props":{"id":"layout-props","title":"布局属性","description":"更多关于这些属性的详细示例可以在Flexbox 布局页面上找到。","sidebar":"组件"},"layoutanimation":{"id":"layoutanimation","title":"LayoutAnimation","description":"当布局变化时,自动将视图运动到它们新的位置上。","sidebar":"api"},"layoutevent":{"id":"layoutevent","title":"布局事件对象","description":"LayoutEvent object is returned in the callback as a result of component layout change, for example onLayout in View component.","sidebar":"组件"},"legacy/direct-manipulation":{"id":"legacy/direct-manipulation","title":"直接操作","description":"有时候我们需要直接改动组件并触发局部的刷新,但不使用 state 或是 props。譬如在浏览器中使用 React 库,有时候会需要直接修改一个 DOM 节点,而在手机 App 中操作 View 时也会碰到同样的情况。在 React Native 中,setNativeProps就是等价于直接操作 DOM 节点的方法。","sidebar":"docs"},"legacy/local-library-setup":{"id":"legacy/local-library-setup","title":"Local libraries setup","description":"A local library is a library containing views or modules that\'s local to your app and not published to a registry. This is different from the traditional setup for view and modules in the sense that a local library is decoupled from your app\'s native code.","sidebar":"docs"},"legacy/native-components-android":{"id":"legacy/native-components-android","title":"Android 原生UI组件","description":"在如今的 App 中,已经有成千上万的原生 UI 部件了——其中的一些是平台的一部分,另一些可能来自于一些第三方库,而且可能你自己还收藏了很多。React Native 已经封装了大部分最常见的组件,譬如ScrollView和TextInput,但不可能封装全部组件。而且,说不定你曾经为自己以前的 App 还封装过一些组件,React Native 肯定没法包含它们。幸运的是,在 React Naitve 应用程序中封装和植入已有的组件非常简单。","sidebar":"docs"},"legacy/native-components-ios":{"id":"legacy/native-components-ios","title":"iOS 原生UI组件","description":"在如今的 App 中,已经有成千上万的原生 UI 部件了——其中的一些是平台的一部分,另一些可能来自于一些第三方库,而且可能你自己还收藏了很多。React Native 已经封装了大部分最常见的组件,譬如ScrollView和TextInput,但不可能封装全部组件。而且,说不定你曾经为自己以前的 App 还封装过一些组件,React Native 肯定没法包含它们。幸运的是,在 React Naitve 应用程序中封装和植入已有的组件非常简单。","sidebar":"docs"},"legacy/native-modules-android":{"id":"legacy/native-modules-android","title":"Android 原生模块","description":"欢迎来到 Android 的原生模块。请先阅读 原生模块简介 以了解原生模块的基本概念。","sidebar":"docs"},"legacy/native-modules-intro":{"id":"legacy/native-modules-intro","title":"原生模块简介","description":"有时候 App 需要访问平台 API,但 React Native 可能还没有相应的模块包装;或者你需要复用一些 Java 代码,而不是用 Javascript 重新实现一遍;又或者你需要实现某些高性能的、多线程的代码,譬如图片处理、数据库、或者各种高级扩展等等。","sidebar":"docs"},"legacy/native-modules-ios":{"id":"legacy/native-modules-ios","title":"iOS 原生模块","description":"有时候 App 需要访问平台 API,但 React Native 可能还没有相应的模块封装;或者你需要复用 Objective-C、Swift 或 C++代码,而不是用 JavaScript 重新实现一遍;又或者你需要实现某些高性能、多线程的代码,譬如图片处理、数据库、或者各种高级扩展等等。","sidebar":"docs"},"legacy/native-modules-setup":{"id":"legacy/native-modules-setup","title":"Native Modules NPM Package Setup","description":"Native modules are usually distributed as npm packages, except that on top of the usual JavaScript they will include some native code per platform. To understand more about npm packages you may find this guide useful.","sidebar":"docs"},"libraries":{"id":"libraries","title":"使用第三方库","description":"This guide introduces React Native developers to finding, installing, and using third-party libraries in their apps.","sidebar":"docs"},"linking":{"id":"linking","title":"Linking","description":"Linking提供了一个通用的接口来与传入和传出的 App 链接进行交互。","sidebar":"api"},"linking-libraries-ios":{"id":"linking-libraries-ios","title":"链接原生库","description":"并不是所有的 APP 都需要使用全部的原生功能,包含支持全部特性的代码会增大应用的体积。但我们仍然希望能让你简单地根据自己的需求添加需要的特性。","sidebar":"docs"},"metro":{"id":"metro","title":"Metro","description":"React Native 使用Metro构建 JavaScript 代码和资源。","sidebar":"docs"},"modal":{"id":"modal","title":"Modal","description":"Modal 组件是一种简单的覆盖在其他视图之上显示内容的方式。","sidebar":"组件"},"more-resources":{"id":"more-resources","title":"其他参考资源","description":"如果你耐心的读完并理解了本网站上的所有文档,那么你应该已经可以编写一个像样的 React Native 应用了。但是 React Native 并不全是某一家公司的作品——它汇聚了成千上万开源社区开发者的智慧结晶。如果你想深入研究 React Native,那么建议不要错过下面这些参考资源。","sidebar":"docs"},"native-platform":{"id":"native-platform","title":"桥接原生平台能力","description":"你的应用可能需要访问 React Native 或社区维护的数百个 第三方库 中未直接提供的平台功能。也许你想要重用一些现有的 Objective-C、Swift、Java、Kotlin 或 C++ 代码。无论你的原因是什么,React Native 都提供了一组强大的 API 来连接你的原生代码和 JavaScript 应用代码。","sidebar":"docs"},"navigation":{"id":"navigation","title":"使用导航器跳转页面","description":"移动应用基本不会只由一个页面组成。管理多个页面的呈现、跳转的组件就是我们通常所说的导航器(navigator)。","sidebar":"docs"},"netinfo":{"id":"netinfo","title":"NetInfo","description":"已过时。 Use react-native-community/react-native-netinfo instead."},"network":{"id":"network","title":"访问网络","description":"很多移动应用都需要从远程地址中获取数据或资源。你可能需要给某个 REST API 发起 POST 请求以提交用户数据,又或者可能仅仅需要从某个服务器上获取一些静态内容——以下就是你会用到的东西。新手可以对照这个简短的视频教程加深理解。","sidebar":"docs"},"new-architecture-app-intro":{"id":"new-architecture-app-intro","title":"在应用中启用的预备工作","description":"在启用新架构之前,应先满足一些先决条件。"},"new-architecture-app-modules-ios":{"id":"new-architecture-app-modules-ios","title":"在 iOS 上启用 TurboModule","description":"Make sure your application meets all the prerequisites."},"new-architecture-app-renderer-android":{"id":"new-architecture-app-renderer-android","title":"在 Android 上启用 Fabric","description":"Make sure your application meets all the prerequisites."},"new-architecture-app-renderer-ios":{"id":"new-architecture-app-renderer-ios","title":"在 iOS 上启用 Fabric","description":"This section will go over how to enable the new renderer in your app. Make sure your application meets all the prerequisites."},"new-architecture-intro":{"id":"new-architecture-intro","title":"迁移到新架构","description":"此迁移指南旨在为React Native的库作者和应用程序开发者提供。它概述了您需要遵循的步骤,以在您的Android和iOS库和应用中使用由新的NativeModule系统(TurboModule)和新的渲染器(Fabric)组成的新架构。"},"new-architecture-library-android":{"id":"new-architecture-library-android","title":"在 Android 库中启用","description":"一旦您在先决条件中定义了本机模块的 JavaScript 规范,设置了 CodeGen 配置,并遵循了 Android/Gradle 设置,然后就可以将您的库迁移到新架构。以下是迁移所需的步骤。"},"new-architecture-library-intro":{"id":"new-architecture-library-intro","title":"在库中启用的预备工作","description":"The following steps will help ensure your modules and components are ready for the New Architecture."},"new-architecture-library-ios":{"id":"new-architecture-library-ios","title":"在 iOS 库中启用","description":"You have defined the JavaScript specs for your native modules as part of the prerequisites, and you are now ready to migrate your library to the New Architecture. Here are the steps you can follow to accomplish this."},"new-architecture-troubleshooting":{"id":"new-architecture-troubleshooting","title":"常见问题","description":"本页面会记录一些迁移到新架构时可能遇到的常见问题的解决方案。"},"new-architecture-turbo-modules":{"id":"new-architecture-turbo-modules","title":"新架构的原生模块(Turbo Module)","description":"If you\'ve worked with React Native, you may be familiar with the concept of Native Modules, which allow JavaScript and platform-native code to communicate over the React Native \\"bridge\\", which handles cross-platform serialization via JSON."},"optimizing-flatlist-configuration":{"id":"optimizing-flatlist-configuration","title":"列表配置优化","description":"术语定义","sidebar":"docs"},"optimizing-javascript-loading":{"id":"optimizing-javascript-loading","title":"Optimizing JavaScript loading","description":"解析和运行 JavaScript 代码需要内存和时间。因此,随着你的应用程序增长,通常将代码加载延迟到首次需要时是有用的。React Native 自带一些默认开启的标准优化,并且你可以在自己的代码中采用一些技术来帮助 React 更有效地加载你的应用程序。还有一些适合非常大应用程序的高级自动优化(它们也有自己的权衡)。","sidebar":"docs"},"other-debugging-methods":{"id":"other-debugging-methods","title":"其他调试方法","description":"此页面介绍了除 打开调试器 中描述的方法之外的其他 JavaScript 调试方法。如果你正在使用新创建的 React Native 或 Expo 应用,我们建议从那里开始。","sidebar":"docs"},"out-of-tree-platforms":{"id":"out-of-tree-platforms","title":"多平台支持","description":"React Native不仅适用于 Android 和 iOS - 还有社区支持的项目将其应用于其他平台,例如:","sidebar":"docs"},"panresponder":{"id":"panresponder","title":"PanResponder","description":"PanResponder类可以将多点触摸操作协调成一个手势。它使得一个单点触摸可以接受更多的触摸操作,也可以用于识别简单的多点触摸手势。","sidebar":"api"},"performance":{"id":"performance","title":"性能综述","description":"使用 React Native 替代基于 WebView 的框架来开发 App 的一个强有力的理由,就是为了使 App 可以达到每秒 60 帧(足够流畅),并且能有类似原生 App 的外观和手感。因此我们也尽可能地优化 React Native 去实现这一目标,使开发者能集中精力处理 App 的业务逻辑,而不用费心考虑性能。但是,总还是有一些地方有所欠缺,以及在某些场合 React Native 还不能够替你决定如何进行优化(用原生代码写也无法避免),因此人工的干预依然是必要的。","sidebar":"docs"},"permissionsandroid":{"id":"permissionsandroid","title":"PermissionsAndroid","description":"仅适用于非沙盒项目","sidebar":"api"},"pixelratio":{"id":"pixelratio","title":"PixelRatio","description":"PixelRatio 可以获取到设备的像素密度和字体缩放比。","sidebar":"api"},"platform":{"id":"platform","title":"Platform","description":"Example","sidebar":"api"},"platform-specific-code":{"id":"platform-specific-code","title":"特定平台代码","description":"在编写跨平台的应用时,我们肯定希望尽可能多地复用代码。但是总有些时候我们会碰到针对不同平台编写不同代码的需求。","sidebar":"docs"},"platformcolor":{"id":"platformcolor","title":"PlatformColor","description":"You can use the PlatformColor function to access native colors on the target platform by supplying the native color’s corresponding string value. You pass a string to the PlatformColor function and, provided it exists on that platform, it will return the corresponding native color, which you can apply in any part of your application.","sidebar":"api"},"pressable":{"id":"pressable","title":"Pressable","description":"Pressable 是一个核心组件的封装,它可以检测到任意子组件的不同阶段的按压交互情况。","sidebar":"组件"},"pressevent":{"id":"pressevent","title":"点击事件对象","description":"点击事件对象作为用户按压交互的结果在回调中返回,例如 Button 组件中的 onPress。","sidebar":"组件"},"profile-hermes":{"id":"profile-hermes","title":"在 Hermes 中进行性能分析","description":"你可以使用Hermes在 React Native 应用中可视化 JavaScript 的性能。Hermes 是一个小型且轻量的 JavaScript 引擎(你可以在这里阅读更多有关在 React Native 中使用它的信息)。Hermes 有助于提高应用性能,并且还提供了分析其运行的 JavaScript 性能的方式。"},"profiling":{"id":"profiling","title":"Profiling","description":"使用内置的性能分析器获取 JavaScript 线程和主线程并排的详细工作信息。从调试菜单中选择 Perf Monitor 即可访问它。","sidebar":"docs"},"progressbarandroid":{"id":"progressbarandroid","title":"🚧 ProgressBarAndroid","description":"已过时。 Use @react-native-community/progress-bar-android instead."},"progressviewios":{"id":"progressviewios","title":"🚧 ProgressViewIOS","description":"已过时。 Use @react-native-community/progress-view instead."},"props":{"id":"props","title":"Props(属性)","description":"大多数组件在创建时就可以使用各种参数来进行定制。用于定制的这些参数就称为props(属性)。"},"publishing-to-app-store":{"id":"publishing-to-app-store","title":"上架 App Store","description":"上架应用的过程和任何其它原生 iOS 应用一样,但有一些额外的注意事项要考虑。","sidebar":"docs"},"pushnotificationios":{"id":"pushnotificationios","title":"🚧 PushNotificationIOS","description":"已过时。 Use @react-native-community/push-notification-ios instead."},"ram-bundles-inline-requires":{"id":"ram-bundles-inline-requires","title":"RAM Bundles 和内联引用优化","description":"如果你有一个较为庞大的应用程序,你可能要考虑使用RAM(Random Access Modules,随机存取模块)格式的 bundle 和内联引用。这对于具有大量页面的应用程序是非常有用的,这些页面在应用程序的典型使用过程中可能不会被打开。通常对于启动后一段时间内不需要大量代码的应用程序来说是非常有用的。例如应用程序包含复杂的配置文件屏幕或较少使用的功能,但大多数会话只涉及访问应用程序的主屏幕更新。我们可以通过使用RAM格式来优化bundle的加载,并且内联引用这些功能和页面(当它们被实际使用时)。"},"react-18-and-react-native":{"id":"react-18-and-react-native","title":"React 18 与 React Native","description":"这个页面描述了如何在 React Native 的新架构中启用 React 18 版本。"},"react-native-devtools":{"id":"react-native-devtools","title":"React Native 开发者工具","description":"React Native DevTools 是我们新的调试体验,它对我们的调试堆栈进行了端到端的重新编写。它旨在比以前的调试方法更深入地集成,并且从根本上更可靠。","sidebar":"docs"},"react-native-gradle-plugin":{"id":"react-native-gradle-plugin","title":"React Native Gradle Plugin","description":"本指南描述了如何配置 React Native Gradle Plugin(通常称为 RNGP)来为 Android 构建 React Native 应用。","sidebar":"docs"},"react-node":{"id":"react-node","title":"React 节点对象","description":"React 节点对象有以下这些类型:","sidebar":"组件"},"rect":{"id":"rect","title":"矩形区域对象","description":"Rect 接受数值像素值来描述如何扩展矩形区域。这些值会被添加到原始区域的大小上以扩展它。","sidebar":"组件"},"rectorsize":{"id":"rectorsize","title":"RectOrSize Object Type","description":"RectOrSize接受数字像素值来描述如何扩展矩形区域。这些值会被添加到原始区域的大小上以扩展它。"},"refreshcontrol":{"id":"refreshcontrol","title":"RefreshControl","description":"这一组件可以用在 ScrollView 或 FlatList 内部,为其添加下拉刷新的功能。当 ScrollView 处于竖直方向的起点位置(scrollY: 0),此时下拉会触发一个onRefresh事件。","sidebar":"组件"},"removing-default-permissions":{"id":"removing-default-permissions","title":"移除不需要的权限","description":"默认情况下我们会给最终打包的 APK 加入一些权限申请,具体如下:"},"render-pipeline":{"id":"render-pipeline","title":"渲染,提交与挂载(渲染流水线)","description":"文档介绍了即将发布的新渲染器 Fabric 的架构。"},"roottag":{"id":"roottag","title":"RootTag","description":"RootTag 是用于标记 React Native 原生根视图层的不透明标识符(opaque identifier)。具体来说就是 ReactRootView(android) 或是 RCTRootView(iOS) 的实例 ID.","sidebar":"api"},"running-on-device":{"id":"running-on-device","title":"在设备上运行","description":"在真机上仔细测试 app 后再发布给用户总是不会错的。本文档将指导你通过必须的步骤在设备上运行 React Native app,为生产做准备。","sidebar":"docs"},"running-on-simulator-ios":{"id":"running-on-simulator-ios","title":"在iOS模拟器上运行","description":"启动模拟器","sidebar":"docs"},"safeareaview":{"id":"safeareaview","title":"SafeAreaView","description":"SafeAreaView的目的是在一个“安全”的可视区域内渲染内容。具体来说就是因为目前有 iPhone X 这样的带有“刘海”的全面屏设备,所以需要避免内容渲染到不可见的“刘海”范围内。本组件目前仅支持 iOS 设备以及 iOS 11 或更高版本。","sidebar":"组件"},"sample-application-movies":{"id":"sample-application-movies","title":"示例教程:电影列表","description":"简介"},"scrollview":{"id":"scrollview","title":"ScrollView","description":"一个封装了平台的 ScrollView(滚动视图)的组件,同时还集成了触摸锁定的“响应者”系统。","sidebar":"组件"},"sectionlist":{"id":"sectionlist","title":"SectionList","description":"高性能的分组(section)列表组件,支持下面这些常用的功能:","sidebar":"组件"},"security":{"id":"security","title":"网络安全策略","description":"开发应用时安全常常是一个被忽视的话题。的确,搭建一个完全无懈可击的软件是不可能的——我们还没有发明一个完全坚不可摧的锁(毕竟,银行金库已经足够坚固但仍然会被闯入)。然而,遭受恶意攻击或暴露安全漏洞的可能性与您愿意投入保护应用程序免受此类事件的努力成反比。尽管普通的挂锁可以被撬开,但它仍然比橱柜挂钩更难攻破!","sidebar":"docs"},"segmentedcontrolios":{"id":"segmentedcontrolios","title":"🚧 SegmentedControlIOS","description":"已过时。 Use @react-native-community/segmented-control instead."},"settings":{"id":"settings","title":"Settings","description":"Settings是对NSUserDefaults的封装。它是iOS平台上的一种持久的键值对存储。","sidebar":"api"},"shadow-props":{"id":"shadow-props","title":"阴影样式属性","description":"These properties are iOS only - for similar functionality on Android, use the elevation property.","sidebar":"组件"},"share":{"id":"share","title":"Share","description":"示例","sidebar":"api"},"signed-apk-android":{"id":"signed-apk-android","title":"打包发布","description":"Android 要求所有应用都有一个数字签名才会被允许安装在用户手机上,所以在把应用发布到应用市场之前,你需要先生成一个签名的 AAB 或 APK 包(Google Play 现在要求 AAB 格式,而国内的应用市场目前仅支持 APK 格式。但无论哪种格式,下面的签名步骤是一样的)。Android 开发者官网上的如何给你的应用签名文档描述了签名的细节。本指南旨在提供一个简化的签名和打包的操作步骤,不会涉及太多理论。","sidebar":"docs"},"slider":{"id":"slider","title":"🚧 Slider","description":"已过时。 Use @react-native-community/slider instead."},"speeding-ci-builds":{"id":"speeding-ci-builds","title":"优化 CI 构建","description":"You or your company may have set up a Continuous Integration (CI) environment to test your React Native application."},"state":{"id":"state","title":"State(状态)","description":"我们使用两种数据来控制一个组件:props和state。props是在父组件中指定,而且一经指定,在被指定的组件的生命周期中则不再改变。对于需要改变的数据,我们需要使用state。"},"statusbar":{"id":"statusbar","title":"StatusBar","description":"控制应用状态栏的组件。","sidebar":"组件"},"style":{"id":"style","title":"样式","description":"在 React Native 中,你并不需要学习什么特殊的语法来定义样式。我们仍然是使用 JavaScript 来写样式。所有的核心组件都接受名为style的属性。这些样式名基本上是遵循了 web 上的 CSS 的命名,只是按照 JS 的语法要求使用了驼峰命名法,例如将background-color改为backgroundColor。","sidebar":"docs"},"stylesheet":{"id":"stylesheet","title":"StyleSheet","description":"StyleSheet 提供了一种类似 CSS 样式表的抽象。","sidebar":"api"},"switch":{"id":"switch","title":"Switch","description":"跨平台通用的“开关”组件。","sidebar":"组件"},"symbolication":{"id":"symbolication","title":"Symbolicating a stack trace","description":"If a React Native app throws an unhandled exception in a release build, the output may be obfuscated and hard to read:"},"systrace":{"id":"systrace","title":"Systrace","description":"Systrace is a standard Android marker-based profiling tool (and is installed when you install the Android platform-tools package). Profiled code blocks are surrounded by start/end markers which are then visualized in a colorful chart format. Both the Android SDK and React Native framework provide standard markers that you can visualize.","sidebar":"api"},"testing-overview":{"id":"testing-overview","title":"Testing","description":"This guide introduces React Native developers to the key concepts behind testing, how to write good tests, and what kinds of tests you can incorporate into your workflow.","sidebar":"docs"},"text":{"id":"text","title":"Text","description":"一个用于显示文本的 React 组件,并且它也支持嵌套、样式,以及触摸处理。","sidebar":"组件"},"text-style-props":{"id":"text-style-props","title":"Text 样式属性","description":"示例","sidebar":"组件"},"textinput":{"id":"textinput","title":"TextInput","description":"TextInput 是一个允许用户在应用中通过键盘输入文本的基本组件。本组件的属性提供了多种特性的配置,譬如自动完成、自动大小写、占位文字,以及多种不同的键盘类型(如纯数字键盘)等等。","sidebar":"组件"},"the-new-architecture/backward-compatibility":{"id":"the-new-architecture/backward-compatibility","title":"向后兼容的意义","description":"创建一个向后兼容的模块很重要,这样可以实现在旧架构和新架构中都能工作的库。并不是所有用户都会立刻转到新架构,最好在他们使用旧架构时仍然保持兼容。"},"the-new-architecture/backward-compatibility-fabric-components":{"id":"the-new-architecture/backward-compatibility-fabric-components","title":"使 Fabric 组件与传统原生组件兼容","description":"创建向后兼容的 Fabric 原生组件需要了解如何创建传统的原生组件。要回忆这些概念,请查看此指南。"},"the-new-architecture/backward-compatibility-turbomodules":{"id":"the-new-architecture/backward-compatibility-turbomodules","title":"使 Turbo 模块与传统原生模块兼容","description":"创建向后兼容的 Turbo 原生模块需要了解如何创建传统的原生模块。要回忆这些概念,请查看此指南。"},"the-new-architecture/codegen-cli":{"id":"the-new-architecture/codegen-cli","title":"Codegen 命令行工具","description":"调用 Gradle 或手动调用脚本可能很难记住,并且需要很多步骤。","sidebar":"docs"},"the-new-architecture/create-module-library":{"id":"the-new-architecture/create-module-library","title":"创建模块库","description":"React Native 有一个丰富的生态系统库来解决常见问题。我们在 reactnative.directory 网站上收集 React Native 库,这是一个很好的资源,值得每个 React Native 开发者收藏。","sidebar":"docs"},"the-new-architecture/custom-cxx-types":{"id":"the-new-architecture/custom-cxx-types","title":"高级:自定义 C++ 类型","description":"本指南假设你熟悉 纯 C++ Turbo Native 模块 指南。它将在此基础上进行构建。","sidebar":"docs"},"the-new-architecture/cxx-custom-types":{"id":"the-new-architecture/cxx-custom-types","title":"支持自定义 C++ 类型","description":"默认情况下,C++ Turbo Native 模块支持大多数 std:: 标准类型的桥接功能。"},"the-new-architecture/cxx-cxxturbomodules":{"id":"the-new-architecture/cxx-cxxturbomodules","title":"C++ Turbo 原生模块","description":"本指南将向您展示如何仅使用 C++ 实现 Turbo 原生模块,以便与任何支持的平台(Android、iOS、macOS 或 Windows)共享相同的实现。"},"the-new-architecture/landing-page":{"id":"the-new-architecture/landing-page","title":"新架构介绍","description":"从 0.68 版本开始,React Native 提供了新架构,它为开发者提供了构建高性能和响应式应用的新功能。请访问\\"为何要设计新架构\\"来了解更多关于促使我们决定重新架构的原因,以及它提供的好处。"},"the-new-architecture/pillars":{"id":"the-new-architecture/pillars","title":"新架构的两大支柱","description":"新架构主要由两大支柱组成:"},"the-new-architecture/pillars-codegen":{"id":"the-new-architecture/pillars-codegen","title":"Codegen","description":"Codegen 不算是新架构的主要组成部分,它是一个帮助我们避免编写重复代码的工具。Codegen 并非必选项,您仍然可以手写它所生成的代码,但是使用它来生成脚手架代码可以帮您节省不少时间。"},"the-new-architecture/pillars-fabric-components":{"id":"the-new-architecture/pillars-fabric-components","title":"Fabric 组件","description":"Fabric 组件是一种使用 Fabric 渲染器渲染并展示在屏幕上的 UI 组件。在新架构中,使用 Fabric 组件替代原生组件具有以下优势:"},"the-new-architecture/pillars-turbomodules":{"id":"the-new-architecture/pillars-turbomodules","title":"TurboModules","description":"如果您使用过 React Native,您可能了解过 Native Modules 这个概念。它可以通过 React Native 的「Bridge」帮助 JavaScript 和原生代码进行交互,并使用跨平台的数据格式 JSON 进行通讯。"},"the-new-architecture/pure-cxx-modules":{"id":"the-new-architecture/pure-cxx-modules","title":"纯 C++ Turbo 原生模块","description":"编写 C++ 模块是跨 Android 和 iOS 共享平台无关代码的最佳方式。使用纯 C++ 模块,您只需编写一次逻辑,即可在所有平台上重用它,而无需编写平台特定的代码。","sidebar":"docs"},"the-new-architecture/use-app-template":{"id":"the-new-architecture/use-app-template","title":"创建启用新架构的应用","description":"本文档将帮助你从头创建一个启用了新架构的 React Native 应用。"},"the-new-architecture/using-codegen":{"id":"the-new-architecture/using-codegen","title":"使用 Codegen","description":"本指南将教你如何:","sidebar":"docs"},"the-new-architecture/what-is-codegen":{"id":"the-new-architecture/what-is-codegen","title":"什么是 Codegen?","description":"Codegen 是一个避免编写大量重复代码的工具。使用 Codegen 并不是必须的:您可以手动编写所有生成的代码。然而,Codegen 生成的脚手架代码可以节省您很多时间。","sidebar":"docs"},"the-new-architecture/why":{"id":"the-new-architecture/why","title":"为何要设计新架构","description":"新架构的目标是解决困扰旧架构在性能和灵活性方面的一些问题。本节提供了基本的背景,以了解旧架构的局限性,以及如何通过新架构来克服这些局限性。"},"threading-model":{"id":"threading-model","title":"线程模型","description":"文档介绍了即将发布的新渲染器 Fabric 的架构。"},"timepickerandroid":{"id":"timepickerandroid","title":"🚧 TimePickerAndroid","description":"已过时。 Use @react-native-community/datetimepicker instead."},"timers":{"id":"timers","title":"定时器","description":"定时器是一个应用中非常重要的部分。React Native 实现了和浏览器一致的定时器 Timer。","sidebar":"docs"},"toastandroid":{"id":"toastandroid","title":"ToastAndroid","description":"本模块将原生的 ToastAndroid 模块导出为一个 JS 模块,用于在 Android 设备上显示一个悬浮的提示信息。本模块包含一个show方法接受以下的参数:","sidebar":"api"},"touchablehighlight":{"id":"touchablehighlight","title":"TouchableHighlight","description":"我们建议使用Pressable组件,它更具扩展性且会是官方未来力推的主流。","sidebar":"组件"},"touchablenativefeedback":{"id":"touchablenativefeedback","title":"TouchableNativeFeedback","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"组件"},"touchableopacity":{"id":"touchableopacity","title":"TouchableOpacity","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"组件"},"touchablewithoutfeedback":{"id":"touchablewithoutfeedback","title":"TouchableWithoutFeedback","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"组件"},"transforms":{"id":"transforms","title":"变换(Transform)","description":"变换(Transform)是样式属性,可帮助您使用 2D 或 3D 变换修改组件的外观和位置。然而,即便使用了变换,使用变换的组件的布局并不会变化,因此可能会与附近的组件重叠。您可以对变换的组件、附近的组件应用边距,或对容器应用填充,以防止这种重叠。","sidebar":"api"},"troubleshooting":{"id":"troubleshooting","title":"Troubleshooting","description":"These are some common issues you may run into while setting up React Native. If you encounter something that is not listed here, try searching for the issue in GitHub."},"turbo-native-modules-android":{"id":"turbo-native-modules-android","title":"Turbo 原生模块:Android","description":"现在我们来编写一些 Android 平台代码,以确保 localStorage 在应用关闭后仍然可以持久保存数据。"},"turbo-native-modules-introduction":{"id":"turbo-native-modules-introduction","title":"Turbo 原生模块介绍","description":"你的 React Native 应用代码可能需要与 React Native 或现有库未提供的原生平台 API 进行交互。你可以使用 Turbo 原生模块 自己编写集成代码。本指南将向你展示如何编写一个。","sidebar":"docs"},"turbo-native-modules-ios":{"id":"turbo-native-modules-ios","title":"Turbo 原生模块:iOS","description":"现在我们来编写一些 iOS 平台代码,以确保 localStorage 在应用关闭后仍然可以持久保存数据。"},"tutorial":{"id":"tutorial","title":"示例教程:Hello World","description":"React Native 看起来很像 React,只不过其基础组件是原生组件而非 web 组件。要理解 React Native 应用的基本结构,首先需要了解一些基本的 React 的概念,比如 JSX 语法、组件、state状态以及props属性。如果你已经了解了 React,那么还需要掌握一些 React Native 特有的知识,比如原生组件的使用。这篇教程可以供任何基础的读者学习,不管你是否有 React 方面的经验。"},"typescript":{"id":"typescript","title":"使用 TypeScript","description":"TypeScript 是一种通过添加类型定义来扩展 JavaScript 的语言。新的 React Native 项目默认以 TypeScript 为目标,同时也支持 JavaScript 和 Flow。","sidebar":"docs"},"upgrading":{"id":"upgrading","title":"更新","description":"时刻将 React Native 更新到最新的版本,可以获得更多 API、视图、开发者工具以及其他一些好东西(译注:官方开发任务繁重,人手紧缺,几乎不会对旧版本提供维护支持,所以即便更新可能带来一些兼容上的变更,但建议开发者还是尽一切可能第一时间更新)。由于一个完整的 React Native 项目是由 Android 项目、iOS 项目和 JavaScript 项目组成的,且都打包在一个 npm 包中,所以升级可能会有一些麻烦。我们会尽量简化这一流程。你可以在项目目录下使用npx react-native info命令查看当前的版本。","sidebar":"docs"},"usecolorscheme":{"id":"usecolorscheme","title":"useColorScheme","description":"useColorScheme 这个React hook 提供并订阅来自Appearance模块的颜色方案更新。返回值表示当前用户首选的颜色方案。该值可以稍后通过直接用户动作(例如,设备设置中的主题选择)或根据时间表(例如,遵循白天/夜晚周期的亮主题和暗主题)来更新。","sidebar":"api"},"usewindowdimensions":{"id":"usewindowdimensions","title":"useWindowDimensions","description":"useWindowDimensions会在屏幕尺寸变化时自动更新获取到的设备width和height值。使用方法如下:","sidebar":"api"},"using-a-listview":{"id":"using-a-listview","title":"使用长列表","description":"React Native 提供了几个适用于展示长列表数据的组件,一般而言我们会选用FlatList或是SectionList。","sidebar":"docs"},"using-a-scrollview":{"id":"using-a-scrollview","title":"使用滚动视图","description":"ScrollView是一个通用的可滚动的容器,你可以在其中放入多个组件和视图,而且这些组件并不需要是同类型的。ScrollView 不仅可以垂直滚动,还能水平滚动(通过horizontal属性来设置)。","sidebar":"docs"},"vibration":{"id":"vibration","title":"Vibration","description":"使设备振动。","sidebar":"api"},"view":{"id":"view","title":"View","description":"作为创建 UI 时最基础的组件,View 是一个支持 Flexbox 布局、样式、触摸响应、和一些无障碍功能的容器。不论在什么平台上,View 都直接对应当前平台的原生视图,无论它是 UIView、div 还是 android.view.View。","sidebar":"组件"},"view-flattening":{"id":"view-flattening","title":"视图拍平","description":"This document refers to the architecture of the new renderer, Fabric, that is in active roll-out."},"view-style-props":{"id":"view-style-props","title":"View 样式属性","description":"示例","sidebar":"组件"},"viewpagerandroid":{"id":"viewpagerandroid","title":"🚧 ViewPagerAndroid","description":"已过时。 Use @react-native-community/viewpager instead."},"viewtoken":{"id":"viewtoken","title":"ViewToken 对象","description":"ViewToken object is returned as one of properties in the onViewableItemsChanged callback, for example in FlatList component. It is exported by ViewabilityHelper.js.","sidebar":"组件"},"virtualizedlist":{"id":"virtualizedlist","title":"VirtualizedList","description":"FlatList和SectionList的底层实现。FlatList 和 SectionList 使用起来更方便,同时也有相对更详细的文档。一般来说,仅当想获得比 FlatList 更高的灵活性(比如说在使用 immutable data 而不是 普通数组)的时候,你才应该考虑使用 VirtualizedList。","sidebar":"组件"},"xplat-implementation":{"id":"xplat-implementation","title":"跨平台的实现","description":"This document refers to the architecture of the new renderer, Fabric, that is in active roll-out."}}}}'); + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/0058b4c6.476207c4.js b/assets/js/0058b4c6.476207c4.js new file mode 100644 index 00000000000..5b0d7afe8a8 --- /dev/null +++ b/assets/js/0058b4c6.476207c4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[90849],{86164:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"0.76","label":"0.76","banner":null,"badge":false,"noIndex":false,"className":"docs-version-0.76","isLast":true,"docsSidebars":{"docs":[{"type":"category","label":"\u5165\u95e8\u57fa\u7840","items":[{"type":"link","label":"\u7b80\u4ecb","href":"/docs/getting-started","docId":"getting-started","unlisted":false},{"type":"link","label":"\u6838\u5fc3\u7ec4\u4ef6\u4e0e\u539f\u751f\u7ec4\u4ef6","href":"/docs/intro-react-native-components","docId":"intro-react-native-components","unlisted":false},{"type":"link","label":"React \u57fa\u7840","href":"/docs/intro-react","docId":"intro-react","unlisted":false},{"type":"link","label":"\u5904\u7406\u6587\u672c\u8f93\u5165","href":"/docs/handling-text-input","docId":"handling-text-input","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u6eda\u52a8\u89c6\u56fe","href":"/docs/using-a-scrollview","docId":"using-a-scrollview","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u957f\u5217\u8868","href":"/docs/using-a-listview","docId":"using-a-listview","unlisted":false},{"type":"link","label":"\u7279\u5b9a\u5e73\u53f0\u4ee3\u7801","href":"/docs/platform-specific-code","docId":"platform-specific-code","unlisted":false},{"type":"link","label":"\u5176\u4ed6\u53c2\u8003\u8d44\u6e90","href":"/docs/more-resources","docId":"more-resources","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u73af\u5883\u642d\u5efa","items":[{"type":"link","label":"\u642d\u5efa\u5f00\u53d1\u73af\u5883","href":"/docs/environment-setup","docId":"environment-setup","unlisted":false},{"type":"link","label":"\u96c6\u6210\u5230\u73b0\u6709\u539f\u751f\u5e94\u7528","href":"/docs/integration-with-existing-apps","docId":"integration-with-existing-apps","unlisted":false},{"type":"link","label":"\u96c6\u6210\u5230 Android Fragment","href":"/docs/integration-with-android-fragment","docId":"integration-with-android-fragment","unlisted":false},{"type":"link","label":"\u4e3a\u7535\u89c6\u548c\u673a\u9876\u76d2\u5236\u4f5c\u5e94\u7528","href":"/docs/building-for-tv","docId":"building-for-tv","unlisted":false},{"type":"link","label":"\u591a\u5e73\u53f0\u652f\u6301","href":"/docs/out-of-tree-platforms","docId":"out-of-tree-platforms","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u5f00\u53d1\u6d41\u7a0b","items":[{"type":"link","label":"\u5728\u8bbe\u5907\u4e0a\u8fd0\u884c","href":"/docs/running-on-device","docId":"running-on-device","unlisted":false},{"type":"link","label":"\u5feb\u901f\u5237\u65b0","href":"/docs/fast-refresh","docId":"fast-refresh","unlisted":false},{"type":"link","label":"Metro","href":"/docs/metro","docId":"metro","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u7b2c\u4e09\u65b9\u5e93","href":"/docs/libraries","docId":"libraries","unlisted":false},{"type":"link","label":"\u4f7f\u7528 TypeScript","href":"/docs/typescript","docId":"typescript","unlisted":false},{"type":"link","label":"\u66f4\u65b0","href":"/docs/upgrading","docId":"upgrading","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u754c\u9762\u4e0e\u4ea4\u4e92","items":[{"type":"link","label":"\u6837\u5f0f","href":"/docs/style","docId":"style","unlisted":false},{"type":"link","label":"\u9ad8\u5ea6\u4e0e\u5bbd\u5ea6","href":"/docs/height-and-width","docId":"height-and-width","unlisted":false},{"type":"link","label":"\u4f7f\u7528 Flexbox \u5e03\u5c40","href":"/docs/flexbox","docId":"flexbox","unlisted":false},{"type":"link","label":"\u56fe\u7247","href":"/docs/images","docId":"images","unlisted":false},{"type":"link","label":"\u989c\u8272","href":"/docs/colors","docId":"colors","unlisted":false},{"type":"category","label":"\u4ea4\u4e92","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u5904\u7406\u89e6\u6478\u4e8b\u4ef6","href":"/docs/handling-touches","docId":"handling-touches","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u5bfc\u822a\u5668\u8df3\u8f6c\u9875\u9762","href":"/docs/navigation","docId":"navigation","unlisted":false},{"type":"link","label":"\u52a8\u753b","href":"/docs/animations","docId":"animations","unlisted":false},{"type":"link","label":"\u624b\u52bf\u54cd\u5e94\u7cfb\u7edf","href":"/docs/gesture-responder-system","docId":"gesture-responder-system","unlisted":false}]},{"type":"category","label":"\u7f51\u7edc\u8fde\u63a5","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u8bbf\u95ee\u7f51\u7edc","href":"/docs/network","docId":"network","unlisted":false},{"type":"link","label":"\u7f51\u7edc\u5b89\u5168\u7b56\u7565","href":"/docs/security","docId":"security","unlisted":false}]},{"type":"category","label":"\u5305\u5bb9\u6027","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u65e0\u969c\u788d\u529f\u80fd","href":"/docs/accessibility","docId":"accessibility","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u8c03\u8bd5","items":[{"type":"link","label":"\u8c03\u8bd5","href":"/docs/debugging","docId":"debugging","unlisted":false},{"type":"link","label":"React Native \u5f00\u53d1\u8005\u5de5\u5177","href":"/docs/react-native-devtools","docId":"react-native-devtools","unlisted":false},{"type":"link","label":"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801","href":"/docs/debugging-native-code","docId":"debugging-native-code","unlisted":false},{"type":"link","label":"\u8c03\u8bd5\u53d1\u884c\u7248\u672c","href":"/docs/debugging-release-builds","docId":"debugging-release-builds","unlisted":false},{"type":"link","label":"\u5176\u4ed6\u8c03\u8bd5\u65b9\u6cd5","href":"/docs/other-debugging-methods","docId":"other-debugging-methods","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u6d4b\u8bd5","items":[{"type":"link","label":"Testing","href":"/docs/testing-overview","docId":"testing-overview","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u6027\u80fd\u8c03\u4f18","items":[{"type":"link","label":"\u6027\u80fd\u7efc\u8ff0","href":"/docs/performance","docId":"performance","unlisted":false},{"type":"link","label":"\u4f18\u5316\u7f16\u8bd1\u901f\u5ea6","href":"/docs/build-speed","docId":"build-speed","unlisted":false},{"type":"link","label":"\u5217\u8868\u914d\u7f6e\u4f18\u5316","href":"/docs/optimizing-flatlist-configuration","docId":"optimizing-flatlist-configuration","unlisted":false},{"type":"link","label":"Optimizing JavaScript loading","href":"/docs/optimizing-javascript-loading","docId":"optimizing-javascript-loading","unlisted":false},{"type":"link","label":"Profiling","href":"/docs/profiling","docId":"profiling","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"JavaScript \u8fd0\u884c\u73af\u5883","items":[{"type":"link","label":"JavaScript \u73af\u5883","href":"/docs/javascript-environment","docId":"javascript-environment","unlisted":false},{"type":"link","label":"\u5b9a\u65f6\u5668","href":"/docs/timers","docId":"timers","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u65b0\u7684 Hermes \u5f15\u64ce","href":"/docs/hermes","docId":"hermes","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Codegen","items":[{"type":"link","label":"\u4ec0\u4e48\u662f Codegen\uff1f","href":"/docs/the-new-architecture/what-is-codegen","docId":"the-new-architecture/what-is-codegen","unlisted":false},{"type":"link","label":"\u4f7f\u7528 Codegen","href":"/docs/the-new-architecture/using-codegen","docId":"the-new-architecture/using-codegen","unlisted":false},{"type":"link","label":"Codegen \u547d\u4ee4\u884c\u5de5\u5177","href":"/docs/the-new-architecture/codegen-cli","docId":"the-new-architecture/codegen-cli","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u539f\u751f\u5f00\u53d1","items":[{"type":"link","label":"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b","href":"/docs/native-platform","docId":"native-platform","unlisted":false},{"type":"category","label":"\u539f\u751f\u6a21\u5757","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Turbo \u539f\u751f\u6a21\u5757\u4ecb\u7ecd","href":"/docs/turbo-native-modules-introduction","docId":"turbo-native-modules-introduction","unlisted":false},{"type":"link","label":"\u7eaf C++ Turbo \u539f\u751f\u6a21\u5757","href":"/docs/the-new-architecture/pure-cxx-modules","docId":"the-new-architecture/pure-cxx-modules","unlisted":false},{"type":"link","label":"\u9ad8\u7ea7\uff1a\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b","href":"/docs/the-new-architecture/custom-cxx-types","docId":"the-new-architecture/custom-cxx-types","unlisted":false}]},{"type":"category","label":"\u539f\u751f UI \u7ec4\u4ef6","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Fabric Native Components Introduction","href":"/docs/fabric-native-components-introduction","docId":"fabric-native-components-introduction","unlisted":false}]},{"type":"category","label":"\u5176\u4ed6","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u9644\u5f55","href":"/docs/appendix","docId":"appendix","unlisted":false},{"type":"link","label":"\u521b\u5efa\u6a21\u5757\u5e93","href":"/docs/the-new-architecture/create-module-library","docId":"the-new-architecture/create-module-library","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"Android \u4e0e iOS \u6307\u5357","items":[{"type":"category","label":"Android","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Headless JS\uff08\u540e\u53f0\u4efb\u52a1\uff09","href":"/docs/headless-js-android","docId":"headless-js-android","unlisted":false},{"type":"link","label":"\u6253\u5305\u53d1\u5e03","href":"/docs/signed-apk-android","docId":"signed-apk-android","unlisted":false},{"type":"link","label":"\u548c\u539f\u751f\u7aef\u901a\u4fe1","href":"/docs/communication-android","docId":"communication-android","unlisted":false},{"type":"link","label":"React Native Gradle Plugin","href":"/docs/react-native-gradle-plugin","docId":"react-native-gradle-plugin","unlisted":false}]},{"type":"category","label":"iOS","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u94fe\u63a5\u539f\u751f\u5e93","href":"/docs/linking-libraries-ios","docId":"linking-libraries-ios","unlisted":false},{"type":"link","label":"\u5728iOS\u6a21\u62df\u5668\u4e0a\u8fd0\u884c","href":"/docs/running-on-simulator-ios","docId":"running-on-simulator-ios","unlisted":false},{"type":"link","label":"\u548c\u539f\u751f\u7aef\u901a\u4fe1","href":"/docs/communication-ios","docId":"communication-ios","unlisted":false},{"type":"link","label":"iOS \u5e94\u7528\u5c0f\u7ec4\u4ef6","href":"/docs/app-extensions","docId":"app-extensions","unlisted":false},{"type":"link","label":"\u4e0a\u67b6 App Store","href":"/docs/publishing-to-app-store","docId":"publishing-to-app-store","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u65e7\u67b6\u6784","items":[{"type":"category","label":"\u539f\u751f\u6a21\u5757\uff08\u65e7\u67b6\u6784\uff09","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u539f\u751f\u6a21\u5757\u7b80\u4ecb","href":"/docs/legacy/native-modules-intro","docId":"legacy/native-modules-intro","unlisted":false},{"type":"link","label":"Android \u539f\u751f\u6a21\u5757","href":"/docs/legacy/native-modules-android","docId":"legacy/native-modules-android","unlisted":false},{"type":"link","label":"iOS \u539f\u751f\u6a21\u5757","href":"/docs/legacy/native-modules-ios","docId":"legacy/native-modules-ios","unlisted":false},{"type":"link","label":"Native Modules NPM Package Setup","href":"/docs/legacy/native-modules-setup","docId":"legacy/native-modules-setup","unlisted":false},{"type":"link","label":"Local libraries setup","href":"/docs/legacy/local-library-setup","docId":"legacy/local-library-setup","unlisted":false}]},{"type":"category","label":"\u539f\u751f UI \u7ec4\u4ef6\uff08\u65e7\u67b6\u6784\uff09","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Android \u539f\u751fUI\u7ec4\u4ef6","href":"/docs/legacy/native-components-android","docId":"legacy/native-components-android","unlisted":false},{"type":"link","label":"iOS \u539f\u751fUI\u7ec4\u4ef6","href":"/docs/legacy/native-components-ios","docId":"legacy/native-components-ios","unlisted":false},{"type":"link","label":"\u76f4\u63a5\u64cd\u4f5c","href":"/docs/legacy/direct-manipulation","docId":"legacy/direct-manipulation","unlisted":false}]}],"collapsed":true,"collapsible":true}],"api":[{"type":"category","label":"APIs","items":[{"type":"link","label":"AccessibilityInfo","href":"/docs/accessibilityinfo","docId":"accessibilityinfo","unlisted":false},{"type":"link","label":"Alert","href":"/docs/alert","docId":"alert","unlisted":false},{"type":"link","label":"Animated","href":"/docs/animated","docId":"animated","unlisted":false},{"type":"link","label":"Animated.Value","href":"/docs/animatedvalue","docId":"animatedvalue","unlisted":false},{"type":"link","label":"Animated.ValueXY","href":"/docs/animatedvaluexy","docId":"animatedvaluexy","unlisted":false},{"type":"link","label":"Appearance","href":"/docs/appearance","docId":"appearance","unlisted":false},{"type":"link","label":"AppRegistry","href":"/docs/appregistry","docId":"appregistry","unlisted":false},{"type":"link","label":"AppState","href":"/docs/appstate","docId":"appstate","unlisted":false},{"type":"link","label":"DevSettings","href":"/docs/devsettings","docId":"devsettings","unlisted":false},{"type":"link","label":"Dimensions","href":"/docs/dimensions","docId":"dimensions","unlisted":false},{"type":"link","label":"Easing","href":"/docs/easing","docId":"easing","unlisted":false},{"type":"link","label":"InteractionManager","href":"/docs/interactionmanager","docId":"interactionmanager","unlisted":false},{"type":"link","label":"Keyboard","href":"/docs/keyboard","docId":"keyboard","unlisted":false},{"type":"link","label":"LayoutAnimation","href":"/docs/layoutanimation","docId":"layoutanimation","unlisted":false},{"type":"link","label":"Linking","href":"/docs/linking","docId":"linking","unlisted":false},{"type":"link","label":"PanResponder","href":"/docs/panresponder","docId":"panresponder","unlisted":false},{"type":"link","label":"PixelRatio","href":"/docs/pixelratio","docId":"pixelratio","unlisted":false},{"type":"link","label":"Platform","href":"/docs/platform","docId":"platform","unlisted":false},{"type":"link","label":"PlatformColor","href":"/docs/platformcolor","docId":"platformcolor","unlisted":false},{"type":"link","label":"RootTag","href":"/docs/roottag","docId":"roottag","unlisted":false},{"type":"link","label":"Share","href":"/docs/share","docId":"share","unlisted":false},{"type":"link","label":"StyleSheet","href":"/docs/stylesheet","docId":"stylesheet","unlisted":false},{"type":"link","label":"Systrace","href":"/docs/systrace","docId":"systrace","unlisted":false},{"type":"link","label":"\u53d8\u6362\uff08Transform\uff09","href":"/docs/transforms","docId":"transforms","unlisted":false},{"type":"link","label":"Vibration","href":"/docs/vibration","docId":"vibration","unlisted":false},{"type":"category","label":"Hooks","collapsed":false,"items":[{"type":"link","label":"useColorScheme","href":"/docs/usecolorscheme","docId":"usecolorscheme","unlisted":false},{"type":"link","label":"useWindowDimensions","href":"/docs/usewindowdimensions","docId":"usewindowdimensions","unlisted":false}],"collapsible":true},{"type":"category","label":"Android API","collapsed":false,"items":[{"type":"link","label":"BackHandler","href":"/docs/backhandler","docId":"backhandler","unlisted":false},{"type":"link","label":"PermissionsAndroid","href":"/docs/permissionsandroid","docId":"permissionsandroid","unlisted":false},{"type":"link","label":"ToastAndroid","href":"/docs/toastandroid","docId":"toastandroid","unlisted":false}],"collapsible":true},{"type":"category","label":"iOS API","collapsed":false,"items":[{"type":"link","label":"ActionSheetIOS","href":"/docs/actionsheetios","docId":"actionsheetios","unlisted":false},{"type":"link","label":"DynamicColorIOS","href":"/docs/dynamiccolorios","docId":"dynamiccolorios","unlisted":false},{"type":"link","label":"Settings","href":"/docs/settings","docId":"settings","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true}],"\u7ec4\u4ef6":[{"type":"category","label":"\u6838\u5fc3\u7ec4\u4ef6","items":[{"type":"link","label":"\u6838\u5fc3\u7ec4\u4ef6\u548cAPI","href":"/docs/components-and-apis","docId":"components-and-apis","unlisted":false},{"type":"link","label":"ActivityIndicator","href":"/docs/activityindicator","docId":"activityindicator","unlisted":false},{"type":"link","label":"Button","href":"/docs/button","docId":"button","unlisted":false},{"type":"link","label":"FlatList","href":"/docs/flatlist","docId":"flatlist","unlisted":false},{"type":"link","label":"Image","href":"/docs/image","docId":"image","unlisted":false},{"type":"link","label":"ImageBackground","href":"/docs/imagebackground","docId":"imagebackground","unlisted":false},{"type":"link","label":"KeyboardAvoidingView","href":"/docs/keyboardavoidingview","docId":"keyboardavoidingview","unlisted":false},{"type":"link","label":"Modal","href":"/docs/modal","docId":"modal","unlisted":false},{"type":"link","label":"Pressable","href":"/docs/pressable","docId":"pressable","unlisted":false},{"type":"link","label":"RefreshControl","href":"/docs/refreshcontrol","docId":"refreshcontrol","unlisted":false},{"type":"link","label":"ScrollView","href":"/docs/scrollview","docId":"scrollview","unlisted":false},{"type":"link","label":"SectionList","href":"/docs/sectionlist","docId":"sectionlist","unlisted":false},{"type":"link","label":"StatusBar","href":"/docs/statusbar","docId":"statusbar","unlisted":false},{"type":"link","label":"Switch","href":"/docs/switch","docId":"switch","unlisted":false},{"type":"link","label":"Text","href":"/docs/text","docId":"text","unlisted":false},{"type":"link","label":"TextInput","href":"/docs/textinput","docId":"textinput","unlisted":false},{"type":"link","label":"TouchableHighlight","href":"/docs/touchablehighlight","docId":"touchablehighlight","unlisted":false},{"type":"link","label":"TouchableOpacity","href":"/docs/touchableopacity","docId":"touchableopacity","unlisted":false},{"type":"link","label":"TouchableWithoutFeedback","href":"/docs/touchablewithoutfeedback","docId":"touchablewithoutfeedback","unlisted":false},{"type":"link","label":"View","href":"/docs/view","docId":"view","unlisted":false},{"type":"link","label":"VirtualizedList","href":"/docs/virtualizedlist","docId":"virtualizedlist","unlisted":false},{"type":"category","label":"Android \u7ec4\u4ef6","collapsed":false,"items":[{"type":"link","label":"DrawerLayoutAndroid","href":"/docs/drawerlayoutandroid","docId":"drawerlayoutandroid","unlisted":false},{"type":"link","label":"TouchableNativeFeedback","href":"/docs/touchablenativefeedback","docId":"touchablenativefeedback","unlisted":false}],"collapsible":true},{"type":"category","label":"iOS \u7ec4\u4ef6","collapsed":false,"items":[{"type":"link","label":"InputAccessoryView","href":"/docs/inputaccessoryview","docId":"inputaccessoryview","unlisted":false},{"type":"link","label":"SafeAreaView","href":"/docs/safeareaview","docId":"safeareaview","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Props","items":[{"type":"link","label":"\u56fe\u7247\u6837\u5f0f\u5c5e\u6027","href":"/docs/image-style-props","docId":"image-style-props","unlisted":false},{"type":"link","label":"\u5e03\u5c40\u5c5e\u6027","href":"/docs/layout-props","docId":"layout-props","unlisted":false},{"type":"link","label":"\u9634\u5f71\u6837\u5f0f\u5c5e\u6027","href":"/docs/shadow-props","docId":"shadow-props","unlisted":false},{"type":"link","label":"Text \u6837\u5f0f\u5c5e\u6027","href":"/docs/text-style-props","docId":"text-style-props","unlisted":false},{"type":"link","label":"View \u6837\u5f0f\u5c5e\u6027","href":"/docs/view-style-props","docId":"view-style-props","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u5185\u90e8\u5bf9\u8c61\u7c7b\u578b","items":[{"type":"link","label":"\u5e03\u5c40\u4e8b\u4ef6\u5bf9\u8c61","href":"/docs/layoutevent","docId":"layoutevent","unlisted":false},{"type":"link","label":"\u70b9\u51fb\u4e8b\u4ef6\u5bf9\u8c61","href":"/docs/pressevent","docId":"pressevent","unlisted":false},{"type":"link","label":"React \u8282\u70b9\u5bf9\u8c61","href":"/docs/react-node","docId":"react-node","unlisted":false},{"type":"link","label":"\u77e9\u5f62\u533a\u57df\u5bf9\u8c61","href":"/docs/rect","docId":"rect","unlisted":false},{"type":"link","label":"ViewToken \u5bf9\u8c61","href":"/docs/viewtoken","docId":"viewtoken","unlisted":false}],"collapsed":true,"collapsible":true}]},"docs":{"accessibility":{"id":"accessibility","title":"\u65e0\u969c\u788d\u529f\u80fd","description":"\u8bd1\u6ce8\uff1aaccessibility \u4e00\u8bcd\u5e38\u89c1\u591a\u79cd\u8bd1\u6cd5\uff1a\u53ef\u8bbf\u95ee\u6027\u3001\u65e0\u969c\u788d\u6027\u3001\u8f85\u52a9\u529f\u80fd\u7b49\u7b49\uff0c\u5176\u4e2d\u6587\u610f\u601d\u90fd\u4e0d\u592a\u80fd\u51c6\u786e\u8868\u8fbe\u5176\u529f\u80fd\u7684\u672c\u8d28\u2014\u2014\u5373\u4e3a\u6b8b\u969c\u4eba\u58eb\u63d0\u4f9b\u4fbf\u5229\u3002\u672c\u6587\u4e3b\u8981\u91c7\u7528\u201c\u65e0\u969c\u788d\u529f\u80fd\u201d\u548c\u201c\u8f85\u52a9\u6280\u672f/\u670d\u52a1\u201d\u7684\u8bf4\u6cd5\u3002\u5982\u679c\u4f60\u6216\u4f60\u7684\u516c\u53f8\u6682\u65f6\u6ca1\u6709\u8d44\u6e90\u548c\u7cbe\u529b\u53bb\u670d\u52a1\u8fd9\u4e9b\u7528\u6237\uff0c\u90a3\u4e48\u4f60\u53ef\u4ee5\u8df3\u8fc7\u672c\u6587\u3002\u4f46\u662f\uff0c\u8bd1\u8005\u4e2a\u4eba\u5e0c\u671b\u501f\u672c\u6587\u6863\uff0c\u547c\u5401\u6709\u80fd\u529b\u6709\u8d44\u6e90\u7684\u5546\u4e1a\u516c\u53f8/\u7ec4\u7ec7/\u4e2a\u4eba\uff0c\u91cd\u89c6\u6b8b\u969c\u4eba\u58eb\u4f7f\u7528\u667a\u80fd\u624b\u673a\u7684\u6743\u5229\u3002","sidebar":"docs"},"accessibilityinfo":{"id":"accessibilityinfo","title":"AccessibilityInfo","description":"\u6709\u65f6\u5019\u6211\u4eec\u5e0c\u671b\u77e5\u9053\u7528\u6237\u7684\u8bbe\u5907\u662f\u5426\u6b63\u5728\u8fd0\u884c\u8bfb\u5c4f\u5e94\u7528\u3002AccessibilityInfo\u6b63\u662f\u7528\u4e8e\u6b64\u76ee\u7684\u3002\u4f60\u53ef\u4ee5\u7528\u5b83\u6765\u67e5\u8be2\u8bfb\u5c4f\u5e94\u7528\u7684\u5f53\u524d\u72b6\u6001\uff0c\u5e76\u4e14\u53ef\u4ee5\u76d1\u542c\u5176\u72b6\u6001\u53d8\u5316\u3002","sidebar":"api"},"actionsheetios":{"id":"actionsheetios","title":"ActionSheetIOS","description":"\u663e\u793a\u4e00\u4e2a iOS \u539f\u751f\u7684Action Sheet\u7ec4\u4ef6\u3002","sidebar":"api"},"activityindicator":{"id":"activityindicator","title":"ActivityIndicator","description":"\u663e\u793a\u4e00\u4e2a\u5706\u5f62\u7684 loading \u63d0\u793a\u7b26\u53f7\u3002","sidebar":"\u7ec4\u4ef6"},"alert":{"id":"alert","title":"Alert","description":"\u542f\u52a8\u4e00\u4e2a\u63d0\u793a\u5bf9\u8bdd\u6846\uff0c\u5305\u542b\u5bf9\u5e94\u7684\u6807\u9898\u548c\u4fe1\u606f\u3002","sidebar":"api"},"alertios":{"id":"alertios","title":"AlertIOS","description":"AlertIOS\u7528\u4e8e\u5f39\u51fa\u4e00\u4e2a iOS \u63d0\u793a\u5bf9\u8bdd\u6846\uff0c\u53ef\u4ee5\u901a\u77e5\u7528\u6237\u4e00\u4e9b\u4fe1\u606f\u6216\u662f\u63d0\u793a\u7528\u6237\u8f93\u5165\u4e00\u4e9b\u6587\u5b57\u3002"},"animated":{"id":"animated","title":"Animated","description":"Animated\u5e93\u65e8\u5728\u4f7f\u52a8\u753b\u53d8\u5f97\u6d41\u7545\uff0c\u5f3a\u5927\u5e76\u6613\u4e8e\u6784\u5efa\u548c\u7ef4\u62a4\u3002Animated\u4fa7\u91cd\u4e8e\u8f93\u5165\u548c\u8f93\u51fa\u4e4b\u95f4\u7684\u58f0\u660e\u6027\u5173\u7cfb\uff0c\u4ee5\u53ca\u4e24\u8005\u4e4b\u95f4\u7684\u53ef\u914d\u7f6e\u53d8\u6362\uff0c\u6b64\u5916\u8fd8\u63d0\u4f9b\u4e86\u7b80\u5355\u7684 start/stop\u65b9\u6cd5\u6765\u63a7\u5236\u57fa\u4e8e\u65f6\u95f4\u7684\u52a8\u753b\u6267\u884c\u3002","sidebar":"api"},"animatedvalue":{"id":"animatedvalue","title":"Animated.Value","description":"\u9a71\u52a8\u52a8\u753b\u7684\u4e00\u7ef4\u6807\u91cf\u503c. \u4e00\u4e2aAnimated.Value\u53ef\u4ee5\u540c\u6b65\u5730\u9a71\u52a8\u591a\u4e2a\u5c5e\u6027\uff0c\u4f46\u6bcf\u6b21\u53ea\u80fd\u4ee5\u4e00\u79cd\u52a8\u753b\u673a\u5236\u53d8\u5316\u3002\u5982\u679c\u6539\u7528\u4e86\u5176\u4ed6\u52a8\u753b\u673a\u5236\uff08\u4f8b\u5982\u5f00\u59cb\u4e00\u4e2a\u65b0\u7684\u52a8\u753b\u6216\u662f\u8c03\u7528setValue\uff09\uff0c\u5219\u4f1a\u505c\u6b62\u5148\u524d\u7684\u52a8\u753b\u3002","sidebar":"api"},"animatedvaluexy":{"id":"animatedvaluexy","title":"Animated.ValueXY","description":"2D \u503c\u7528\u4e8e\u9a71\u52a8 2D \u52a8\u753b\uff0c\u4f8b\u5982\u5e73\u79fb\u624b\u52bf\u3002\u4e0e\u666e\u901a\u7684Animated.Value\u51e0\u4e4e\u76f8\u540c\u7684 API\uff0c\u4f46\u662f\u53ef\u4ee5\u591a\u8def\u590d\u7528\u3002\u5728\u5185\u90e8\u5305\u542b\u4e24\u4e2a\u5e38\u89c4\u7684Animated.Value\u3002","sidebar":"api"},"animations":{"id":"animations","title":"\u52a8\u753b","description":"\u6d41\u7545\u3001\u6709\u610f\u4e49\u7684\u52a8\u753b\u5bf9\u4e8e\u79fb\u52a8\u5e94\u7528\u7528\u6237\u4f53\u9a8c\u6765\u8bf4\u662f\u975e\u5e38\u91cd\u8981\u7684\u3002\u73b0\u5b9e\u751f\u6d3b\u4e2d\u7684\u7269\u4f53\u5728\u5f00\u59cb\u79fb\u52a8\u548c\u505c\u4e0b\u6765\u7684\u65f6\u5019\u90fd\u5177\u6709\u4e00\u5b9a\u7684\u60ef\u6027\uff0c\u6211\u4eec\u5728\u754c\u9762\u4e2d\u4e5f\u53ef\u4ee5\u4f7f\u7528\u52a8\u753b\u6765\u5b9e\u73b0\u5951\u5408\u7269\u7406\u89c4\u5f8b\u7684\u4ea4\u4e92\u3002","sidebar":"docs"},"app-extensions":{"id":"app-extensions","title":"iOS \u5e94\u7528\u5c0f\u7ec4\u4ef6","description":"\u5c0f\u7ec4\u4ef6\u5141\u8bb8\u60a8\u5728\u4e3b\u8981\u5e94\u7528\u7a0b\u5e8f\u4e4b\u5916\u63d0\u4f9b\u81ea\u5b9a\u4e49\u529f\u80fd\u548c\u5185\u5bb9\u3002iOS\u4e0a\u6709\u4e0d\u540c\u7c7b\u578b\u7684\u5e94\u7528\u5c0f\u7ec4\u4ef6\uff0c\u5b83\u4eec\u90fd\u5728App Extension\u7f16\u7a0b\u6307\u5357\u4e2d\u8fdb\u884c\u4e86\u4ecb\u7ecd\u3002\u5728\u672c\u6307\u5357\u4e2d\uff0c\u6211\u4eec\u5c06\u7b80\u8981\u4ecb\u7ecd\u5982\u4f55\u5728iOS\u4e0a\u5229\u7528\u5e94\u7528\u5c0f\u7ec4\u4ef6\u7684\u4f18\u52bf\u3002","sidebar":"docs"},"appearance":{"id":"appearance","title":"Appearance","description":"Appearance \u6a21\u5757\u63d0\u4f9b\u4e86\u5173\u4e8e\u7528\u6237\u5916\u89c2\u504f\u597d\u7684\u4fe1\u606f\uff0c\u4f8b\u5982\u4ed6\u4eec\u559c\u6b22\u7684\u989c\u8272\u65b9\u6848\uff08\u660e\u4eae\u6216\u6697\u9ed1\uff09\u3002","sidebar":"api"},"appendix":{"id":"appendix","title":"\u9644\u5f55","description":"\u4e00\u3001\u672f\u8bed","sidebar":"docs"},"appregistry":{"id":"appregistry","title":"AppRegistry","description":"\u4ec5\u9002\u7528\u4e8e\u975e\u6c99\u76d2\u9879\u76ee","sidebar":"api"},"appstate":{"id":"appstate","title":"AppState","description":"AppState\u80fd\u544a\u8bc9\u4f60\u5e94\u7528\u5f53\u524d\u662f\u5728\u524d\u53f0\u8fd8\u662f\u5728\u540e\u53f0\uff0c\u5e76\u4e14\u80fd\u5728\u72b6\u6001\u53d8\u5316\u7684\u65f6\u5019\u901a\u77e5\u4f60\u3002","sidebar":"api"},"architecture-glossary":{"id":"architecture-glossary","title":"\u672f\u8bed\u8868","description":"Fabric \u6e32\u67d3\u5668\uff08Fabric Renderer\uff09"},"architecture-overview":{"id":"architecture-overview","title":"\u67b6\u6784\u6982\u89c8","description":"\u672c\u6587\u6863\u8fd8\u5728\u6301\u7eed\u66f4\u65b0\u4e2d\uff0c\u4f1a\u4ece\u6982\u5ff5\u4e0a\u4ecb\u7ecd React Native \u65b0\u67b6\u6784\u662f\u5982\u4f55\u5de5\u4f5c\u7684\u3002\u76ee\u6807\u8bfb\u8005\u5305\u62ec\u751f\u6001\u5e93\u7684\u5f00\u53d1\u8005\u3001\u6838\u5fc3\u8d21\u732e\u8005\u548c\u7279\u522b\u6709\u597d\u5947\u5fc3\u7684\u4eba\u3002"},"asyncstorage":{"id":"asyncstorage","title":"\ud83d\udea7 AsyncStorage","description":"\u5df2\u8fc7\u65f6\u3002 Use one of the community packages instead."},"backhandler":{"id":"backhandler","title":"BackHandler","description":"BackHandler API \u7528\u4e8e\u76d1\u542c\u8bbe\u5907\u4e0a\u7684\u540e\u9000\u6309\u94ae\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u8c03\u7528\u4f60\u81ea\u5df1\u7684\u51fd\u6570\u6765\u5904\u7406\u540e\u9000\u884c\u4e3a\u3002\u6b64 API \u4ec5\u80fd\u5728 Android \u4e0a\u4f7f\u7528\u3002","sidebar":"api"},"build-speed":{"id":"build-speed","title":"\u4f18\u5316\u7f16\u8bd1\u901f\u5ea6","description":"\u6784\u5efa React Native \u5e94\u7528\u53ef\u80fd\u4f1a\u975e\u5e38\u6602\u8d35\uff0c\u5e76\u4e14\u9700\u8981\u5f00\u53d1\u4eba\u5458\u82b1\u8d39\u6570\u5206\u949f\u7684\u65f6\u95f4\u3002","sidebar":"docs"},"building-for-tv":{"id":"building-for-tv","title":"\u4e3a\u7535\u89c6\u548c\u673a\u9876\u76d2\u5236\u4f5c\u5e94\u7528","description":"\u76ee\u524d\u7684 React Native \u5e94\u7528\u53ea\u9700\u5728 JavaScript \u7aef\u7b80\u5355\u4fee\u6539\u751a\u81f3\u65e0\u9700\u4fee\u6539\uff0c\u5728\u7535\u89c6\u548c\u673a\u9876\u76d2\u8bbe\u5907\u4e0a\u5c31\u57fa\u672c\u53ef\u7528\u4e86\u3002","sidebar":"docs"},"button":{"id":"button","title":"Button","description":"\u4e00\u4e2a\u7b80\u5355\u7684\u8de8\u5e73\u53f0\u7684\u6309\u94ae\u7ec4\u4ef6\u3002\u53ef\u4ee5\u8fdb\u884c\u4e00\u4e9b\u7b80\u5355\u7684\u5b9a\u5236\u3002","sidebar":"\u7ec4\u4ef6"},"checkbox":{"id":"checkbox","title":"\ud83d\udea7 CheckBox","description":"Removed. Use one of the community packages instead."},"clipboard":{"id":"clipboard","title":"\ud83d\udea7 Clipboard","description":"Deprecated. Use one of the community packages instead."},"colors":{"id":"colors","title":"\u989c\u8272","description":"React Native \u4e2d\u7684\u7ec4\u4ef6\u662f\u4f7f\u7528 JavaScript \u8fdb\u884c\u6837\u5f0f\u5316\u7684\u3002\u989c\u8272\u5c5e\u6027\u901a\u5e38\u4e0e Web \u4e0a\u7684 CSS \u5de5\u4f5c\u65b9\u5f0f\u76f8\u5339\u914d\u3002\u6bcf\u4e2a\u5e73\u53f0\u4e0a\u5173\u4e8e\u989c\u8272\u4f7f\u7528\u7684\u4e00\u822c\u6307\u5357\u5982\u4e0b\uff1a","sidebar":"docs"},"communication-android":{"id":"communication-android","title":"\u548c\u539f\u751f\u7aef\u901a\u4fe1","description":"\u901a\u8fc7\u690d\u5165\u539f\u751f\u5e94\u7528\u548c\u539f\u751f UI \u7ec4\u4ef6\u4e24\u7bc7\u6587\u6863\uff0c\u6211\u4eec\u5b66\u4e60\u4e86 React Native \u548c\u539f\u751f\u7ec4\u4ef6\u7684\u4e92\u76f8\u6574\u5408\u3002\u5728\u6574\u5408\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u4f1a\u9700\u8981\u5728\u4e24\u4e2a\u4e16\u754c\u95f4\u4e92\u76f8\u901a\u4fe1\u3002\u6709\u4e9b\u65b9\u6cd5\u5df2\u7ecf\u5728\u5176\u4ed6\u7684\u6307\u5357\u4e2d\u63d0\u5230\u4e86\uff0c\u8fd9\u7bc7\u6587\u7ae0\u603b\u7ed3\u4e86\u6240\u6709\u53ef\u884c\u7684\u6280\u672f\u3002","sidebar":"docs"},"communication-ios":{"id":"communication-ios","title":"\u548c\u539f\u751f\u7aef\u901a\u4fe1","description":"\u901a\u8fc7\u690d\u5165\u539f\u751f\u5e94\u7528\u548c\u539f\u751f UI \u7ec4\u4ef6\u4e24\u7bc7\u6587\u6863\uff0c\u6211\u4eec\u5b66\u4e60\u4e86 React Native \u548c\u539f\u751f\u7ec4\u4ef6\u7684\u4e92\u76f8\u6574\u5408\u3002\u5728\u6574\u5408\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u4f1a\u9700\u8981\u5728\u4e24\u4e2a\u4e16\u754c\u95f4\u4e92\u76f8\u901a\u4fe1\u3002\u6709\u4e9b\u65b9\u6cd5\u5df2\u7ecf\u5728\u5176\u4ed6\u7684\u6307\u5357\u4e2d\u63d0\u5230\u4e86\uff0c\u8fd9\u7bc7\u6587\u7ae0\u603b\u7ed3\u4e86\u6240\u6709\u53ef\u884c\u7684\u6280\u672f\u3002","sidebar":"docs"},"components-and-apis":{"id":"components-and-apis","title":"\u6838\u5fc3\u7ec4\u4ef6\u548cAPI","description":"React Native \u63d0\u4f9b\u4e86\u4e00\u4e9b\u5185\u7f6e\u7684\u6838\u5fc3\u7ec4\u4ef6\u4f9b\u4f60\u4f7f\u7528\u3002\u4f60\u53ef\u4ee5\u5728\u7f51\u7ad9\u7684\u5de6\u4fa7\u770b\u5230\u7ec4\u4ef6\u7684\u5b8c\u6574\u5217\u8868\u3002\u5982\u679c\u4f60\u4e0d\u77e5\u9053\u4ece\u54ea\u770b\u8d77\uff0c\u90a3\u4e48\u53ef\u4ee5\u5148\u770b\u4e00\u4e0b\u4e0b\u9762\u8fd9\u4e2a\u7b80\u5355\u7684\u5206\u7c7b\uff1a","sidebar":"\u7ec4\u4ef6"},"custom-webview-android":{"id":"custom-webview-android","title":"Custom WebView","description":"While the built-in web view has a lot of features, it is not possible to handle every use-case in React Native. You can, however, extend the web view with native code without forking React Native or duplicating all the existing web view code."},"custom-webview-ios":{"id":"custom-webview-ios","title":"Custom WebView","description":"While the built-in web view has a lot of features, it is not possible to handle every use-case in React Native. You can, however, extend the web view with native code without forking React Native or duplicating all the existing web view code."},"datepickerandroid":{"id":"datepickerandroid","title":"\ud83d\udea7 DatePickerAndroid","description":"Deprecated. Use one of the community packages instead."},"datepickerios":{"id":"datepickerios","title":"\ud83d\udea7 DatePickerIOS","description":"Deprecated. Use one of the community packages instead."},"debugging":{"id":"debugging","title":"\u8c03\u8bd5","description":"\u8bbf\u95ee App \u5185\u7684\u5f00\u53d1\u83dc\u5355","sidebar":"docs"},"debugging-native-code":{"id":"debugging-native-code","title":"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801","description":"\u4ec5\u9650\u5305\u542b\u539f\u751f\u4ee3\u7801\u7684\u9879\u76ee","sidebar":"docs"},"debugging-release-builds":{"id":"debugging-release-builds","title":"\u8c03\u8bd5\u53d1\u884c\u7248\u672c","description":"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a","sidebar":"docs"},"devsettings":{"id":"devsettings","title":"DevSettings","description":"DevSettings \u6a21\u5757\u53ef\u4ee5\u5bf9\u5f00\u53d1\u8005\u83dc\u5355\u8fdb\u884c\u4e00\u4e9b\u81ea\u5b9a\u4e49\u3002","sidebar":"api"},"dimensions":{"id":"dimensions","title":"Dimensions","description":"\u672c\u6a21\u5757\u7528\u4e8e\u83b7\u53d6\u8bbe\u5907\u5c4f\u5e55\u7684\u5bbd\u9ad8\u3002","sidebar":"api"},"drawerlayoutandroid":{"id":"drawerlayoutandroid","title":"DrawerLayoutAndroid","description":"\u5c01\u88c5\u4e86 Android \u5e73\u53f0DrawerLayout\u7684 React \u7ec4\u4ef6\u3002\u62bd\u5c49\uff08\u901a\u5e38\u7528\u4e8e\u5bfc\u822a\u5207\u6362\uff09\u662f\u901a\u8fc7renderNavigationView\u65b9\u6cd5\u6e32\u67d3\u7684\uff0c\u5e76\u4e14 DrawerLayoutAndroid \u7684\u76f4\u63a5\u5b50\u89c6\u56fe\u4f1a\u6210\u4e3a\u4e3b\u89c6\u56fe\uff08\u7528\u4e8e\u653e\u7f6e\u5185\u5bb9\uff09\u3002\u5bfc\u822a\u89c6\u56fe\u4e00\u5f00\u59cb\u5728\u5c4f\u5e55\u4e0a\u5e76\u4e0d\u53ef\u89c1\uff0c\u4e0d\u8fc7\u53ef\u4ee5\u4ecedrawerPosition\u6307\u5b9a\u7684\u7a97\u53e3\u4fa7\u9762\u62d6\u62fd\u51fa\u6765\uff0c\u5e76\u4e14\u62bd\u5c49\u7684\u5bbd\u5ea6\u53ef\u4ee5\u4f7f\u7528drawerWidth\u5c5e\u6027\u6765\u6307\u5b9a\u3002","sidebar":"\u7ec4\u4ef6"},"dynamiccolorios":{"id":"dynamiccolorios","title":"DynamicColorIOS","description":"DynamicColorIOS\u51fd\u6570\u662f\u4e13\u95e8\u9488\u5bf9iOS\u5e73\u53f0\u7684\u989c\u8272\u7c7b\u578b\u3002","sidebar":"api"},"easing":{"id":"easing","title":"Easing","description":"Easing\u6a21\u5757\u5b9e\u73b0\u4e86\u5e38\u89c1\u7684\u52a8\u753b\u7f13\u52a8\u51fd\u6570\u3002 \u8fd9\u4e2a\u6a21\u5757\u88abAnimated.timing()\u7528\u4e8e\u5728\u52a8\u753b\u4e2d\u4f20\u8fbe\u771f\u5b9e\u53ef\u4fe1\u7684\u8fd0\u52a8\u3002","sidebar":"api"},"environment-setup":{"id":"environment-setup","title":"\u642d\u5efa\u5f00\u53d1\u73af\u5883","description":"\u6b22\u8fce\u4f7f\u7528 React Native\uff01\u8fd9\u7bc7\u6587\u6863\u4f1a\u5e2e\u52a9\u4f60\u642d\u5efa\u57fa\u672c\u7684 React Native \u5f00\u53d1\u73af\u5883\u3002","sidebar":"docs"},"fabric-native-components-android":{"id":"fabric-native-components-android","title":"Fabric Native Modules: Android","description":"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b Android \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a"},"fabric-native-components-introduction":{"id":"fabric-native-components-introduction","title":"Fabric Native Components Introduction","description":"\u5982\u679c\u4f60\u60f3\u6784\u5efa\u4e00\u4e2a \u65b0\u67b6\u6784 \u7684 React Native \u7ec4\u4ef6\uff0c\u8be5\u7ec4\u4ef6\u53ef\u4ee5\u5305\u88c5\u4e00\u4e2a Host Component\uff0c\u4f8b\u5982 Android \u4e0a\u7684 CheckBox\uff0c\u6216\u8005 iOS \u4e0a\u7684 UIButton\uff0c\u4f60\u5e94\u8be5\u4f7f\u7528 Fabric \u539f\u751f\u7ec4\u4ef6\u3002","sidebar":"docs"},"fabric-native-components-ios":{"id":"fabric-native-components-ios","title":"Fabric Native Components: iOS","description":"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b iOS \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a"},"fabric-renderer":{"id":"fabric-renderer","title":"Fabric \u6e32\u67d3\u5668","description":"Fabric \u662f React Native \u65b0\u67b6\u6784\u7684\u6e32\u67d3\u7cfb\u7edf\uff0c\u662f\u4ece\u8001\u67b6\u6784\u7684\u6e32\u67d3\u7cfb\u7edf\u6f14\u53d8\u800c\u6765\u7684\u3002\u6838\u5fc3\u539f\u7406\u662f\u5728 C++ \u5c42\u7edf\u4e00\u66f4\u591a\u7684\u6e32\u67d3\u903b\u8f91\uff0c\u63d0\u5347\u4e0e\u5bbf\u4e3b\u5e73\u53f0\uff08host platforms\uff09\u4e92\u64cd\u4f5c\u6027\uff0c\u5e76\u4e3a React Native \u89e3\u9501\u66f4\u591a\u80fd\u529b\u3002\u5176\u7814\u53d1\u59cb\u4e8e 2018 \u5e74\u3002\u4ece 2021 \u5e74\u5f00\u59cb\uff0c Facebook App \u4e2d\u7684 React Native \u542f\u7528\u4e86\u65b0\u7684\u6e32\u67d3\u5668\u3002"},"fast-refresh":{"id":"fast-refresh","title":"\u5feb\u901f\u5237\u65b0","description":"\u5feb\u901f\u5237\u65b0\u662f React Native \u4e00\u4e2a\u7279\u6027\uff0c\u5728\u4fee\u6539\u7ec4\u4ef6\u7684\u65f6\u5019\u5feb\u901f\u5237\u65b0\u4f1a\u7ed9\u4f60\u4e00\u4e2a\u5373\u65f6\u7684\u53cd\u9988\u3002\u5feb\u901f\u5237\u65b0\u9ed8\u8ba4\u662f\u5f00\u542f\u7684\uff0c\u53ef\u4ee5\u901a\u8fc7\u8c03\u6574 React Native \u5f00\u53d1\u8005\u83dc\u5355\u91cc\u9762\u7684 \\"Enable Fast Refresh\\" \u6765\u5f00\u542f\u6216\u5173\u95ed\u3002\u5728\u5feb\u901f\u5237\u65b0\u5f00\u542f\u7684\u65f6\u5019\uff0c\u5927\u591a\u6570\u7684\u4fee\u6539\u80fd\u5728\u4e00\u5230\u4e24\u79d2\u4e4b\u5185\u5448\u73b0\u3002","sidebar":"docs"},"flatlist":{"id":"flatlist","title":"FlatList","description":"\u9ad8\u6027\u80fd\u7684\u7b80\u5355\u5217\u8868\u7ec4\u4ef6\uff0c\u652f\u6301\u4e0b\u9762\u8fd9\u4e9b\u5e38\u7528\u7684\u529f\u80fd\uff1a","sidebar":"\u7ec4\u4ef6"},"flexbox":{"id":"flexbox","title":"\u4f7f\u7528 Flexbox \u5e03\u5c40","description":"\u6211\u4eec\u5728 React Native \u4e2d\u4f7f\u7528 flexbox \u89c4\u5219\u6765\u6307\u5b9a\u67d0\u4e2a\u7ec4\u4ef6\u7684\u5b50\u5143\u7d20\u7684\u5e03\u5c40\u3002Flexbox \u53ef\u4ee5\u5728\u4e0d\u540c\u5c4f\u5e55\u5c3a\u5bf8\u4e0a\u63d0\u4f9b\u4e00\u81f4\u7684\u5e03\u5c40\u7ed3\u6784\u3002","sidebar":"docs"},"gesture-responder-system":{"id":"gesture-responder-system","title":"\u624b\u52bf\u54cd\u5e94\u7cfb\u7edf","description":"\u79fb\u52a8\u8bbe\u5907\u4e0a\u7684\u624b\u52bf\u8bc6\u522b\u8981\u6bd4\u5728 web \u4e0a\u590d\u6742\u5f97\u591a\u3002\u7528\u6237\u7684\u4e00\u6b21\u89e6\u6478\u64cd\u4f5c\u7684\u771f\u5b9e\u610f\u56fe\u662f\u4ec0\u4e48\uff0cApp \u8981\u7ecf\u8fc7\u597d\u51e0\u4e2a\u9636\u6bb5\u624d\u80fd\u5224\u65ad\u3002\u6bd4\u5982 App \u9700\u8981\u5224\u65ad\u7528\u6237\u7684\u89e6\u6478\u5230\u5e95\u662f\u5728\u6eda\u52a8\u9875\u9762\uff0c\u8fd8\u662f\u6ed1\u52a8\u4e00\u4e2a widget\uff0c\u6216\u8005\u53ea\u662f\u4e00\u4e2a\u5355\u7eaf\u7684\u70b9\u51fb\u3002\u751a\u81f3\u968f\u7740\u6301\u7eed\u65f6\u95f4\u7684\u4e0d\u540c\uff0c\u8fd9\u4e9b\u64cd\u4f5c\u8fd8\u4f1a\u8f6c\u5316\u3002\u6b64\u5916\uff0c\u8fd8\u6709\u591a\u70b9\u540c\u65f6\u89e6\u63a7\u7684\u60c5\u51b5\u3002","sidebar":"docs"},"getting-started":{"id":"getting-started","title":"\u7b80\u4ecb","description":"\u6b22\u8fce\u5f00\u542f React Native \u7684\u65c5\u7a0b\uff01\u5982\u679c\u4f60\u5728\u627e\u5982\u4f55\u642d\u5efa\u73af\u5883\u7684\u6587\u6863\uff0c\u8bf7\u79fb\u6b65\u642d\u5efa\u5f00\u53d1\u73af\u5883\u3002 \u7ee7\u7eed\u5f80\u4e0b\u9605\u8bfb\u53ef\u4e86\u89e3\u5173\u4e8e\u6587\u6863\u7ed3\u6784\u3001\u539f\u751f\u7ec4\u4ef6\u3001React\u7b49\u76f8\u5173\u7684\u4e00\u4e9b\u4ecb\u7ecd\u3002","sidebar":"docs"},"handling-text-input":{"id":"handling-text-input","title":"\u5904\u7406\u6587\u672c\u8f93\u5165","description":"TextInput\u662f\u4e00\u4e2a\u5141\u8bb8\u7528\u6237\u8f93\u5165\u6587\u672c\u7684\u57fa\u7840\u7ec4\u4ef6\u3002\u5b83\u6709\u4e00\u4e2a\u540d\u4e3aonChangeText\u7684\u5c5e\u6027\uff0c\u6b64\u5c5e\u6027\u63a5\u53d7\u4e00\u4e2a\u51fd\u6570\uff0c\u800c\u6b64\u51fd\u6570\u4f1a\u5728\u6587\u672c\u53d8\u5316\u65f6\u88ab\u8c03\u7528\u3002\u53e6\u5916\u8fd8\u6709\u4e00\u4e2a\u540d\u4e3aonSubmitEditing\u7684\u5c5e\u6027\uff0c\u4f1a\u5728\u6587\u672c\u88ab\u63d0\u4ea4\u540e\uff08\u7528\u6237\u6309\u4e0b\u8f6f\u952e\u76d8\u4e0a\u7684\u63d0\u4ea4\u952e\uff09\u8c03\u7528\u3002","sidebar":"docs"},"handling-touches":{"id":"handling-touches","title":"\u5904\u7406\u89e6\u6478\u4e8b\u4ef6","description":"\u79fb\u52a8\u5e94\u7528\u4e0a\u7684\u7528\u6237\u4ea4\u4e92\u57fa\u672c\u9760\u201c\u6478\u201d\u3002\u5f53\u7136\uff0c\u201c\u6478\u201d\u4e5f\u662f\u6709\u5404\u79cd\u59ff\u52bf\u7684\uff1a\u5728\u4e00\u4e2a\u6309\u94ae\u4e0a\u70b9\u51fb\uff0c\u5728\u4e00\u4e2a\u5217\u8868\u4e0a\u6ed1\u52a8\uff0c\u6216\u662f\u5728\u4e00\u4e2a\u5730\u56fe\u4e0a\u7f29\u653e\u3002React Native \u63d0\u4f9b\u4e86\u53ef\u4ee5\u5904\u7406\u5e38\u89c1\u89e6\u6478\u624b\u52bf\uff08\u4f8b\u5982\u70b9\u51fb\u6216\u6ed1\u52a8\uff09\u7684\u7ec4\u4ef6\uff0c \u4ee5\u53ca\u53ef\u7528\u4e8e\u8bc6\u522b\u66f4\u590d\u6742\u7684\u624b\u52bf\u7684\u5b8c\u6574\u7684\u624b\u52bf\u54cd\u5e94\u7cfb\u7edf\u3002","sidebar":"docs"},"headless-js-android":{"id":"headless-js-android","title":"Headless JS\uff08\u540e\u53f0\u4efb\u52a1\uff09","description":"Headless JS \u662f\u4e00\u79cd\u4f7f\u7528 js \u5728\u540e\u53f0\u6267\u884c\u4efb\u52a1\u7684\u65b9\u6cd5\u3002\u5b83\u53ef\u4ee5\u7528\u6765\u5728\u540e\u53f0\u540c\u6b65\u6570\u636e\u3001\u5904\u7406\u63a8\u9001\u901a\u77e5\u6216\u662f\u64ad\u653e\u97f3\u4e50\u7b49\u7b49\u3002","sidebar":"docs"},"height-and-width":{"id":"height-and-width","title":"\u9ad8\u5ea6\u4e0e\u5bbd\u5ea6","description":"\u7ec4\u4ef6\u7684\u9ad8\u5ea6\u548c\u5bbd\u5ea6\u51b3\u5b9a\u4e86\u5176\u5728\u5c4f\u5e55\u4e0a\u663e\u793a\u7684\u5c3a\u5bf8\u3002","sidebar":"docs"},"hermes":{"id":"hermes","title":"\u4f7f\u7528\u65b0\u7684 Hermes \u5f15\u64ce","description":"Hermes \u662f\u4e13\u95e8\u9488\u5bf9 React Native \u5e94\u7528\u800c\u4f18\u5316\u7684\u5168\u65b0\u5f00\u6e90 JavaScript \u5f15\u64ce\u3002\u5bf9\u4e8e\u5f88\u591a\u5e94\u7528\u6765\u8bf4\uff0c\u542f\u7528 Hermes \u5f15\u64ce\u53ef\u4ee5\u4f18\u5316\u542f\u52a8\u65f6\u95f4\uff0c\u51cf\u5c11\u5185\u5b58\u5360\u7528\u4ee5\u53ca\u7a7a\u95f4\u5360\u7528\u3002\u4ece React Native 0.70 \u7248\u672c\u5f00\u59cb Hermes \u5df2\u7ecf\u9ed8\u8ba4\u542f\u7528\uff0c\u65e0\u9700\u5f00\u53d1\u8005\u518d\u505a\u4efb\u4f55\u914d\u7f6e\u3002","sidebar":"docs"},"image":{"id":"image","title":"Image","description":"\u7528\u4e8e\u663e\u793a\u591a\u79cd\u4e0d\u540c\u7c7b\u578b\u56fe\u7247\u7684 React \u7ec4\u4ef6\uff0c\u5305\u62ec\u7f51\u7edc\u56fe\u7247\u3001\u9759\u6001\u8d44\u6e90\u3001\u4e34\u65f6\u7684\u672c\u5730\u56fe\u7247\u3001\u4ee5\u53ca\u672c\u5730\u78c1\u76d8\u4e0a\u7684\u56fe\u7247\uff08\u5982\u76f8\u518c\uff09\u7b49\u3002","sidebar":"\u7ec4\u4ef6"},"image-style-props":{"id":"image-style-props","title":"\u56fe\u7247\u6837\u5f0f\u5c5e\u6027","description":"\u793a\u4f8b","sidebar":"\u7ec4\u4ef6"},"imagebackground":{"id":"imagebackground","title":"ImageBackground","description":"\u5bf9\u4e8e\u719f\u6089 Web \u5f00\u53d1\u7684\u5f00\u53d1\u4eba\u5458\u6765\u8bf4\uff0cbackground-image\u662f\u4e00\u4e2a\u5e38\u89c1\u7684\u529f\u80fd\u8bf7\u6c42\u3002\u4e3a\u4e86\u5904\u7406\u8fd9\u79cd\u60c5\u51b5\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528`\u7ec4\u4ef6\uff0c\u5b83\u5177\u6709\u4e0e`\u76f8\u540c\u7684\u5c5e\u6027\uff0c\u5e76\u4e14\u53ef\u4ee5\u6dfb\u52a0\u4efb\u4f55\u5b50\u5143\u7d20\u4ee5\u8986\u76d6\u5728\u5176\u4e0a\u9762\u3002","sidebar":"\u7ec4\u4ef6"},"imagepickerios":{"id":"imagepickerios","title":"\ud83d\udea7 ImagePickerIOS","description":"Deprecated. Use one of the community packages instead."},"images":{"id":"images","title":"\u56fe\u7247","description":"\u9759\u6001\u56fe\u7247\u8d44\u6e90","sidebar":"docs"},"improvingux":{"id":"improvingux","title":"\u6539\u8fdb\u7528\u6237\u4f53\u9a8c","description":"\u914d\u7f6e\u6587\u672c\u8f93\u5165"},"inputaccessoryview":{"id":"inputaccessoryview","title":"InputAccessoryView","description":"\u4e00\u4e2a\u53ef\u4ee5\u5728iOS\u4e0a\u81ea\u5b9a\u4e49\u952e\u76d8\u8f93\u5165\u8f85\u52a9\u89c6\u56fe\u7684\u7ec4\u4ef6\u3002\u5f53TextInput\u83b7\u5f97\u7126\u70b9\u65f6\uff0c\u8f93\u5165\u8f85\u52a9\u89c6\u56fe\u663e\u793a\u5728\u952e\u76d8\u4e0a\u65b9\u3002\u8be5\u7ec4\u4ef6\u53ef\u7528\u4e8e\u521b\u5efa\u81ea\u5b9a\u4e49\u5de5\u5177\u680f\u3002","sidebar":"\u7ec4\u4ef6"},"integration-with-android-fragment":{"id":"integration-with-android-fragment","title":"\u96c6\u6210\u5230 Android Fragment","description":"\u4e0e\u73b0\u6709\u5e94\u7528\u7a0b\u5e8f\u96c6\u6210\u6307\u5357\u4e2d\u8be6\u7ec6\u4ecb\u7ecd\u4e86\u5982\u4f55\u5c06\u5168\u5c4f React Native \u5e94\u7528\u7a0b\u5e8f\u4f5c\u4e3a Activity \u96c6\u6210\u5230\u73b0\u6709 Android \u5e94\u7528\u7a0b\u5e8f\u4e2d\u3002\u8981\u5728\u73b0\u6709\u5e94\u7528\u7a0b\u5e8f\u7684 Fragments \u4e2d\u4f7f\u7528 React Native \u7ec4\u4ef6\uff0c\u9700\u8981\u8fdb\u884c\u4e00\u4e9b\u989d\u5916\u7684\u8bbe\u7f6e\u3002\u8fd9\u6837\u505a\u7684\u597d\u5904\u662f\u5b83\u5141\u8bb8\u539f\u751f\u5e94\u7528\u7a0b\u5e8f\u5c06 React Native \u7ec4\u4ef6\u4e0e Activity \u4e2d\u7684\u539f\u751f Fragments \u96c6\u6210\u5728\u4e00\u8d77\u3002","sidebar":"docs"},"integration-with-existing-apps":{"id":"integration-with-existing-apps","title":"\u96c6\u6210\u5230\u73b0\u6709\u539f\u751f\u5e94\u7528","description":"\u5982\u679c\u4f60\u6b63\u51c6\u5907\u4ece\u5934\u5f00\u59cb\u5236\u4f5c\u4e00\u4e2a\u65b0\u7684\u5e94\u7528\uff0c\u90a3\u4e48 React Native \u4f1a\u662f\u4e2a\u975e\u5e38\u597d\u7684\u9009\u62e9\u3002\u4f46\u5982\u679c\u4f60\u53ea\u60f3\u7ed9\u73b0\u6709\u7684\u539f\u751f\u5e94\u7528\u4e2d\u6dfb\u52a0\u4e00\u4e24\u4e2a\u89c6\u56fe\u6216\u662f\u4e1a\u52a1\u6d41\u7a0b\uff0cReact Native \u4e5f\u540c\u6837\u4e0d\u5728\u8bdd\u4e0b\u3002\u53ea\u9700\u7b80\u5355\u51e0\u6b65\uff0c\u4f60\u5c31\u53ef\u4ee5\u7ed9\u539f\u6709\u5e94\u7528\u52a0\u4e0a\u65b0\u7684\u57fa\u4e8e React Native \u7684\u7279\u6027\u3001\u753b\u9762\u548c\u89c6\u56fe\u7b49\u3002","sidebar":"docs"},"interactionmanager":{"id":"interactionmanager","title":"InteractionManager","description":"Interactionmanager \u53ef\u4ee5\u5c06\u4e00\u4e9b\u8017\u65f6\u8f83\u957f\u7684\u5de5\u4f5c\u5b89\u6392\u5230\u6240\u6709\u4e92\u52a8\u6216\u52a8\u753b\u5b8c\u6210\u4e4b\u540e\u518d\u8fdb\u884c\u3002\u8fd9\u6837\u53ef\u4ee5\u4fdd\u8bc1 JavaScript \u52a8\u753b\u7684\u6d41\u7545\u8fd0\u884c\u3002","sidebar":"api"},"intro-react":{"id":"intro-react","title":"React \u57fa\u7840","description":"\u8981\u6df1\u5165\u7406\u89e3 React Native\uff0c\u9700\u8981\u624e\u5b9e\u7684React \u57fa\u7840\u77e5\u8bc6\u3002\u8fd9\u7bc7\u5c0f\u6559\u7a0b\u53ef\u4ee5\u5e2e\u52a9\u4f60\u5165\u95e8\u6216\u8005\u6e29\u4e60\u76f8\u5173\u77e5\u8bc6\u3002","sidebar":"docs"},"intro-react-native-components":{"id":"intro-react-native-components","title":"\u6838\u5fc3\u7ec4\u4ef6\u4e0e\u539f\u751f\u7ec4\u4ef6","description":"React Native \u4f7f\u7528\u5b8c\u5168\u539f\u751f\u7684\u7ec4\u4ef6\u6765\u6784\u5efa\u5e94\u7528\u754c\u9762\u3002\u5c24\u5176\u65b9\u4fbf\u7684\u662f\u5b83\u5df2\u7ecf\u5185\u7f6e\u4e86\u5927\u91cf\u76f4\u63a5\u4e0a\u624b\u53ef\u7528\u7684\u6838\u5fc3\u7ec4\u4ef6\u3002","sidebar":"docs"},"javascript-environment":{"id":"javascript-environment","title":"JavaScript \u73af\u5883","description":"JavaScript \u8fd0\u884c\u65f6\u73af\u5883","sidebar":"docs"},"keyboard":{"id":"keyboard","title":"Keyboard","description":"Keyboard\u6a21\u5757\u7528\u6765\u63a7\u5236\u952e\u76d8\u76f8\u5173\u7684\u4e8b\u4ef6\u3002","sidebar":"api"},"keyboardavoidingview":{"id":"keyboardavoidingview","title":"KeyboardAvoidingView","description":"\u672c\u7ec4\u4ef6\u7528\u4e8e\u89e3\u51b3\u4e00\u4e2a\u5e38\u89c1\u7684\u5c34\u5c2c\u95ee\u9898\uff1a\u624b\u673a\u4e0a\u5f39\u51fa\u7684\u952e\u76d8\u5e38\u5e38\u4f1a\u6321\u4f4f\u5f53\u524d\u7684\u89c6\u56fe\u3002\u672c\u7ec4\u4ef6\u53ef\u4ee5\u81ea\u52a8\u6839\u636e\u952e\u76d8\u7684\u9ad8\u5ea6\uff0c\u8c03\u6574\u81ea\u8eab\u7684 height \u6216\u5e95\u90e8\u7684 padding\uff0c\u4ee5\u907f\u514d\u88ab\u906e\u6321\u3002","sidebar":"\u7ec4\u4ef6"},"layout-props":{"id":"layout-props","title":"\u5e03\u5c40\u5c5e\u6027","description":"\u66f4\u591a\u5173\u4e8e\u8fd9\u4e9b\u5c5e\u6027\u7684\u8be6\u7ec6\u793a\u4f8b\u53ef\u4ee5\u5728Flexbox \u5e03\u5c40\u9875\u9762\u4e0a\u627e\u5230\u3002","sidebar":"\u7ec4\u4ef6"},"layoutanimation":{"id":"layoutanimation","title":"LayoutAnimation","description":"\u5f53\u5e03\u5c40\u53d8\u5316\u65f6\uff0c\u81ea\u52a8\u5c06\u89c6\u56fe\u8fd0\u52a8\u5230\u5b83\u4eec\u65b0\u7684\u4f4d\u7f6e\u4e0a\u3002","sidebar":"api"},"layoutevent":{"id":"layoutevent","title":"\u5e03\u5c40\u4e8b\u4ef6\u5bf9\u8c61","description":"LayoutEvent object is returned in the callback as a result of component layout change, for example onLayout in View component.","sidebar":"\u7ec4\u4ef6"},"legacy/direct-manipulation":{"id":"legacy/direct-manipulation","title":"\u76f4\u63a5\u64cd\u4f5c","description":"\u6709\u65f6\u5019\u6211\u4eec\u9700\u8981\u76f4\u63a5\u6539\u52a8\u7ec4\u4ef6\u5e76\u89e6\u53d1\u5c40\u90e8\u7684\u5237\u65b0\uff0c\u4f46\u4e0d\u4f7f\u7528 state \u6216\u662f props\u3002\u8b6c\u5982\u5728\u6d4f\u89c8\u5668\u4e2d\u4f7f\u7528 React \u5e93\uff0c\u6709\u65f6\u5019\u4f1a\u9700\u8981\u76f4\u63a5\u4fee\u6539\u4e00\u4e2a DOM \u8282\u70b9\uff0c\u800c\u5728\u624b\u673a App \u4e2d\u64cd\u4f5c View \u65f6\u4e5f\u4f1a\u78b0\u5230\u540c\u6837\u7684\u60c5\u51b5\u3002\u5728 React Native \u4e2d\uff0csetNativeProps\u5c31\u662f\u7b49\u4ef7\u4e8e\u76f4\u63a5\u64cd\u4f5c DOM \u8282\u70b9\u7684\u65b9\u6cd5\u3002","sidebar":"docs"},"legacy/local-library-setup":{"id":"legacy/local-library-setup","title":"Local libraries setup","description":"A local library is a library containing views or modules that\'s local to your app and not published to a registry. This is different from the traditional setup for view and modules in the sense that a local library is decoupled from your app\'s native code.","sidebar":"docs"},"legacy/native-components-android":{"id":"legacy/native-components-android","title":"Android \u539f\u751fUI\u7ec4\u4ef6","description":"\u5728\u5982\u4eca\u7684 App \u4e2d\uff0c\u5df2\u7ecf\u6709\u6210\u5343\u4e0a\u4e07\u7684\u539f\u751f UI \u90e8\u4ef6\u4e86\u2014\u2014\u5176\u4e2d\u7684\u4e00\u4e9b\u662f\u5e73\u53f0\u7684\u4e00\u90e8\u5206\uff0c\u53e6\u4e00\u4e9b\u53ef\u80fd\u6765\u81ea\u4e8e\u4e00\u4e9b\u7b2c\u4e09\u65b9\u5e93\uff0c\u800c\u4e14\u53ef\u80fd\u4f60\u81ea\u5df1\u8fd8\u6536\u85cf\u4e86\u5f88\u591a\u3002React Native \u5df2\u7ecf\u5c01\u88c5\u4e86\u5927\u90e8\u5206\u6700\u5e38\u89c1\u7684\u7ec4\u4ef6\uff0c\u8b6c\u5982ScrollView\u548cTextInput\uff0c\u4f46\u4e0d\u53ef\u80fd\u5c01\u88c5\u5168\u90e8\u7ec4\u4ef6\u3002\u800c\u4e14\uff0c\u8bf4\u4e0d\u5b9a\u4f60\u66fe\u7ecf\u4e3a\u81ea\u5df1\u4ee5\u524d\u7684 App \u8fd8\u5c01\u88c5\u8fc7\u4e00\u4e9b\u7ec4\u4ef6\uff0cReact Native \u80af\u5b9a\u6ca1\u6cd5\u5305\u542b\u5b83\u4eec\u3002\u5e78\u8fd0\u7684\u662f\uff0c\u5728 React Naitve \u5e94\u7528\u7a0b\u5e8f\u4e2d\u5c01\u88c5\u548c\u690d\u5165\u5df2\u6709\u7684\u7ec4\u4ef6\u975e\u5e38\u7b80\u5355\u3002","sidebar":"docs"},"legacy/native-components-ios":{"id":"legacy/native-components-ios","title":"iOS \u539f\u751fUI\u7ec4\u4ef6","description":"\u5728\u5982\u4eca\u7684 App \u4e2d\uff0c\u5df2\u7ecf\u6709\u6210\u5343\u4e0a\u4e07\u7684\u539f\u751f UI \u90e8\u4ef6\u4e86\u2014\u2014\u5176\u4e2d\u7684\u4e00\u4e9b\u662f\u5e73\u53f0\u7684\u4e00\u90e8\u5206\uff0c\u53e6\u4e00\u4e9b\u53ef\u80fd\u6765\u81ea\u4e8e\u4e00\u4e9b\u7b2c\u4e09\u65b9\u5e93\uff0c\u800c\u4e14\u53ef\u80fd\u4f60\u81ea\u5df1\u8fd8\u6536\u85cf\u4e86\u5f88\u591a\u3002React Native \u5df2\u7ecf\u5c01\u88c5\u4e86\u5927\u90e8\u5206\u6700\u5e38\u89c1\u7684\u7ec4\u4ef6\uff0c\u8b6c\u5982ScrollView\u548cTextInput\uff0c\u4f46\u4e0d\u53ef\u80fd\u5c01\u88c5\u5168\u90e8\u7ec4\u4ef6\u3002\u800c\u4e14\uff0c\u8bf4\u4e0d\u5b9a\u4f60\u66fe\u7ecf\u4e3a\u81ea\u5df1\u4ee5\u524d\u7684 App \u8fd8\u5c01\u88c5\u8fc7\u4e00\u4e9b\u7ec4\u4ef6\uff0cReact Native \u80af\u5b9a\u6ca1\u6cd5\u5305\u542b\u5b83\u4eec\u3002\u5e78\u8fd0\u7684\u662f\uff0c\u5728 React Naitve \u5e94\u7528\u7a0b\u5e8f\u4e2d\u5c01\u88c5\u548c\u690d\u5165\u5df2\u6709\u7684\u7ec4\u4ef6\u975e\u5e38\u7b80\u5355\u3002","sidebar":"docs"},"legacy/native-modules-android":{"id":"legacy/native-modules-android","title":"Android \u539f\u751f\u6a21\u5757","description":"\u6b22\u8fce\u6765\u5230 Android \u7684\u539f\u751f\u6a21\u5757\u3002\u8bf7\u5148\u9605\u8bfb \u539f\u751f\u6a21\u5757\u7b80\u4ecb \u4ee5\u4e86\u89e3\u539f\u751f\u6a21\u5757\u7684\u57fa\u672c\u6982\u5ff5\u3002","sidebar":"docs"},"legacy/native-modules-intro":{"id":"legacy/native-modules-intro","title":"\u539f\u751f\u6a21\u5757\u7b80\u4ecb","description":"\u6709\u65f6\u5019 App \u9700\u8981\u8bbf\u95ee\u5e73\u53f0 API\uff0c\u4f46 React Native \u53ef\u80fd\u8fd8\u6ca1\u6709\u76f8\u5e94\u7684\u6a21\u5757\u5305\u88c5\uff1b\u6216\u8005\u4f60\u9700\u8981\u590d\u7528\u4e00\u4e9b Java \u4ee3\u7801\uff0c\u800c\u4e0d\u662f\u7528 Javascript \u91cd\u65b0\u5b9e\u73b0\u4e00\u904d\uff1b\u53c8\u6216\u8005\u4f60\u9700\u8981\u5b9e\u73b0\u67d0\u4e9b\u9ad8\u6027\u80fd\u7684\u3001\u591a\u7ebf\u7a0b\u7684\u4ee3\u7801\uff0c\u8b6c\u5982\u56fe\u7247\u5904\u7406\u3001\u6570\u636e\u5e93\u3001\u6216\u8005\u5404\u79cd\u9ad8\u7ea7\u6269\u5c55\u7b49\u7b49\u3002","sidebar":"docs"},"legacy/native-modules-ios":{"id":"legacy/native-modules-ios","title":"iOS \u539f\u751f\u6a21\u5757","description":"\u6709\u65f6\u5019 App \u9700\u8981\u8bbf\u95ee\u5e73\u53f0 API\uff0c\u4f46 React Native \u53ef\u80fd\u8fd8\u6ca1\u6709\u76f8\u5e94\u7684\u6a21\u5757\u5c01\u88c5\uff1b\u6216\u8005\u4f60\u9700\u8981\u590d\u7528 Objective-C\u3001Swift \u6216 C++\u4ee3\u7801\uff0c\u800c\u4e0d\u662f\u7528 JavaScript \u91cd\u65b0\u5b9e\u73b0\u4e00\u904d\uff1b\u53c8\u6216\u8005\u4f60\u9700\u8981\u5b9e\u73b0\u67d0\u4e9b\u9ad8\u6027\u80fd\u3001\u591a\u7ebf\u7a0b\u7684\u4ee3\u7801\uff0c\u8b6c\u5982\u56fe\u7247\u5904\u7406\u3001\u6570\u636e\u5e93\u3001\u6216\u8005\u5404\u79cd\u9ad8\u7ea7\u6269\u5c55\u7b49\u7b49\u3002","sidebar":"docs"},"legacy/native-modules-setup":{"id":"legacy/native-modules-setup","title":"Native Modules NPM Package Setup","description":"Native modules are usually distributed as npm packages, except that on top of the usual JavaScript they will include some native code per platform. To understand more about npm packages you may find this guide useful.","sidebar":"docs"},"libraries":{"id":"libraries","title":"\u4f7f\u7528\u7b2c\u4e09\u65b9\u5e93","description":"This guide introduces React Native developers to finding, installing, and using third-party libraries in their apps.","sidebar":"docs"},"linking":{"id":"linking","title":"Linking","description":"Linking\u63d0\u4f9b\u4e86\u4e00\u4e2a\u901a\u7528\u7684\u63a5\u53e3\u6765\u4e0e\u4f20\u5165\u548c\u4f20\u51fa\u7684 App \u94fe\u63a5\u8fdb\u884c\u4ea4\u4e92\u3002","sidebar":"api"},"linking-libraries-ios":{"id":"linking-libraries-ios","title":"\u94fe\u63a5\u539f\u751f\u5e93","description":"\u5e76\u4e0d\u662f\u6240\u6709\u7684 APP \u90fd\u9700\u8981\u4f7f\u7528\u5168\u90e8\u7684\u539f\u751f\u529f\u80fd\uff0c\u5305\u542b\u652f\u6301\u5168\u90e8\u7279\u6027\u7684\u4ee3\u7801\u4f1a\u589e\u5927\u5e94\u7528\u7684\u4f53\u79ef\u3002\u4f46\u6211\u4eec\u4ecd\u7136\u5e0c\u671b\u80fd\u8ba9\u4f60\u7b80\u5355\u5730\u6839\u636e\u81ea\u5df1\u7684\u9700\u6c42\u6dfb\u52a0\u9700\u8981\u7684\u7279\u6027\u3002","sidebar":"docs"},"metro":{"id":"metro","title":"Metro","description":"React Native \u4f7f\u7528Metro\u6784\u5efa JavaScript \u4ee3\u7801\u548c\u8d44\u6e90\u3002","sidebar":"docs"},"modal":{"id":"modal","title":"Modal","description":"Modal \u7ec4\u4ef6\u662f\u4e00\u79cd\u7b80\u5355\u7684\u8986\u76d6\u5728\u5176\u4ed6\u89c6\u56fe\u4e4b\u4e0a\u663e\u793a\u5185\u5bb9\u7684\u65b9\u5f0f\u3002","sidebar":"\u7ec4\u4ef6"},"more-resources":{"id":"more-resources","title":"\u5176\u4ed6\u53c2\u8003\u8d44\u6e90","description":"\u5982\u679c\u4f60\u8010\u5fc3\u7684\u8bfb\u5b8c\u5e76\u7406\u89e3\u4e86\u672c\u7f51\u7ad9\u4e0a\u7684\u6240\u6709\u6587\u6863\uff0c\u90a3\u4e48\u4f60\u5e94\u8be5\u5df2\u7ecf\u53ef\u4ee5\u7f16\u5199\u4e00\u4e2a\u50cf\u6837\u7684 React Native \u5e94\u7528\u4e86\u3002\u4f46\u662f React Native \u5e76\u4e0d\u5168\u662f\u67d0\u4e00\u5bb6\u516c\u53f8\u7684\u4f5c\u54c1\u2014\u2014\u5b83\u6c47\u805a\u4e86\u6210\u5343\u4e0a\u4e07\u5f00\u6e90\u793e\u533a\u5f00\u53d1\u8005\u7684\u667a\u6167\u7ed3\u6676\u3002\u5982\u679c\u4f60\u60f3\u6df1\u5165\u7814\u7a76 React Native\uff0c\u90a3\u4e48\u5efa\u8bae\u4e0d\u8981\u9519\u8fc7\u4e0b\u9762\u8fd9\u4e9b\u53c2\u8003\u8d44\u6e90\u3002","sidebar":"docs"},"native-platform":{"id":"native-platform","title":"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b","description":"\u4f60\u7684\u5e94\u7528\u53ef\u80fd\u9700\u8981\u8bbf\u95ee React Native \u6216\u793e\u533a\u7ef4\u62a4\u7684\u6570\u767e\u4e2a \u7b2c\u4e09\u65b9\u5e93 \u4e2d\u672a\u76f4\u63a5\u63d0\u4f9b\u7684\u5e73\u53f0\u529f\u80fd\u3002\u4e5f\u8bb8\u4f60\u60f3\u8981\u91cd\u7528\u4e00\u4e9b\u73b0\u6709\u7684 Objective-C\u3001Swift\u3001Java\u3001Kotlin \u6216 C++ \u4ee3\u7801\u3002\u65e0\u8bba\u4f60\u7684\u539f\u56e0\u662f\u4ec0\u4e48\uff0cReact Native \u90fd\u63d0\u4f9b\u4e86\u4e00\u7ec4\u5f3a\u5927\u7684 API \u6765\u8fde\u63a5\u4f60\u7684\u539f\u751f\u4ee3\u7801\u548c JavaScript \u5e94\u7528\u4ee3\u7801\u3002","sidebar":"docs"},"navigation":{"id":"navigation","title":"\u4f7f\u7528\u5bfc\u822a\u5668\u8df3\u8f6c\u9875\u9762","description":"\u79fb\u52a8\u5e94\u7528\u57fa\u672c\u4e0d\u4f1a\u53ea\u7531\u4e00\u4e2a\u9875\u9762\u7ec4\u6210\u3002\u7ba1\u7406\u591a\u4e2a\u9875\u9762\u7684\u5448\u73b0\u3001\u8df3\u8f6c\u7684\u7ec4\u4ef6\u5c31\u662f\u6211\u4eec\u901a\u5e38\u6240\u8bf4\u7684\u5bfc\u822a\u5668\uff08navigator\uff09\u3002","sidebar":"docs"},"netinfo":{"id":"netinfo","title":"NetInfo","description":"\u5df2\u8fc7\u65f6\u3002 Use react-native-community/react-native-netinfo instead."},"network":{"id":"network","title":"\u8bbf\u95ee\u7f51\u7edc","description":"\u5f88\u591a\u79fb\u52a8\u5e94\u7528\u90fd\u9700\u8981\u4ece\u8fdc\u7a0b\u5730\u5740\u4e2d\u83b7\u53d6\u6570\u636e\u6216\u8d44\u6e90\u3002\u4f60\u53ef\u80fd\u9700\u8981\u7ed9\u67d0\u4e2a REST API \u53d1\u8d77 POST \u8bf7\u6c42\u4ee5\u63d0\u4ea4\u7528\u6237\u6570\u636e\uff0c\u53c8\u6216\u8005\u53ef\u80fd\u4ec5\u4ec5\u9700\u8981\u4ece\u67d0\u4e2a\u670d\u52a1\u5668\u4e0a\u83b7\u53d6\u4e00\u4e9b\u9759\u6001\u5185\u5bb9\u2014\u2014\u4ee5\u4e0b\u5c31\u662f\u4f60\u4f1a\u7528\u5230\u7684\u4e1c\u897f\u3002\u65b0\u624b\u53ef\u4ee5\u5bf9\u7167\u8fd9\u4e2a\u7b80\u77ed\u7684\u89c6\u9891\u6559\u7a0b\u52a0\u6df1\u7406\u89e3\u3002","sidebar":"docs"},"new-architecture-app-intro":{"id":"new-architecture-app-intro","title":"\u5728\u5e94\u7528\u4e2d\u542f\u7528\u7684\u9884\u5907\u5de5\u4f5c","description":"\u5728\u542f\u7528\u65b0\u67b6\u6784\u4e4b\u524d\uff0c\u5e94\u5148\u6ee1\u8db3\u4e00\u4e9b\u5148\u51b3\u6761\u4ef6\u3002"},"new-architecture-app-modules-ios":{"id":"new-architecture-app-modules-ios","title":"\u5728 iOS \u4e0a\u542f\u7528 TurboModule","description":"Make sure your application meets all the prerequisites."},"new-architecture-app-renderer-android":{"id":"new-architecture-app-renderer-android","title":"\u5728 Android \u4e0a\u542f\u7528 Fabric","description":"Make sure your application meets all the prerequisites."},"new-architecture-app-renderer-ios":{"id":"new-architecture-app-renderer-ios","title":"\u5728 iOS \u4e0a\u542f\u7528 Fabric","description":"This section will go over how to enable the new renderer in your app. Make sure your application meets all the prerequisites."},"new-architecture-intro":{"id":"new-architecture-intro","title":"\u8fc1\u79fb\u5230\u65b0\u67b6\u6784","description":"\u6b64\u8fc1\u79fb\u6307\u5357\u65e8\u5728\u4e3aReact Native\u7684\u5e93\u4f5c\u8005\u548c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u8005\u63d0\u4f9b\u3002\u5b83\u6982\u8ff0\u4e86\u60a8\u9700\u8981\u9075\u5faa\u7684\u6b65\u9aa4\uff0c\u4ee5\u5728\u60a8\u7684Android\u548ciOS\u5e93\u548c\u5e94\u7528\u4e2d\u4f7f\u7528\u7531\u65b0\u7684NativeModule\u7cfb\u7edf\uff08TurboModule\uff09\u548c\u65b0\u7684\u6e32\u67d3\u5668\uff08Fabric\uff09\u7ec4\u6210\u7684\u65b0\u67b6\u6784\u3002"},"new-architecture-library-android":{"id":"new-architecture-library-android","title":"\u5728 Android \u5e93\u4e2d\u542f\u7528","description":"\u4e00\u65e6\u60a8\u5728\u5148\u51b3\u6761\u4ef6\u4e2d\u5b9a\u4e49\u4e86\u672c\u673a\u6a21\u5757\u7684 JavaScript \u89c4\u8303\uff0c\u8bbe\u7f6e\u4e86 CodeGen \u914d\u7f6e\uff0c\u5e76\u9075\u5faa\u4e86 Android/Gradle \u8bbe\u7f6e\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u5c06\u60a8\u7684\u5e93\u8fc1\u79fb\u5230\u65b0\u67b6\u6784\u3002\u4ee5\u4e0b\u662f\u8fc1\u79fb\u6240\u9700\u7684\u6b65\u9aa4\u3002"},"new-architecture-library-intro":{"id":"new-architecture-library-intro","title":"\u5728\u5e93\u4e2d\u542f\u7528\u7684\u9884\u5907\u5de5\u4f5c","description":"The following steps will help ensure your modules and components are ready for the New Architecture."},"new-architecture-library-ios":{"id":"new-architecture-library-ios","title":"\u5728 iOS \u5e93\u4e2d\u542f\u7528","description":"You have defined the JavaScript specs for your native modules as part of the prerequisites, and you are now ready to migrate your library to the New Architecture. Here are the steps you can follow to accomplish this."},"new-architecture-troubleshooting":{"id":"new-architecture-troubleshooting","title":"\u5e38\u89c1\u95ee\u9898","description":"\u672c\u9875\u9762\u4f1a\u8bb0\u5f55\u4e00\u4e9b\u8fc1\u79fb\u5230\u65b0\u67b6\u6784\u65f6\u53ef\u80fd\u9047\u5230\u7684\u5e38\u89c1\u95ee\u9898\u7684\u89e3\u51b3\u65b9\u6848\u3002"},"new-architecture-turbo-modules":{"id":"new-architecture-turbo-modules","title":"\u65b0\u67b6\u6784\u7684\u539f\u751f\u6a21\u5757\uff08Turbo Module\uff09","description":"If you\'ve worked with React Native, you may be familiar with the concept of Native Modules, which allow JavaScript and platform-native code to communicate over the React Native \\"bridge\\", which handles cross-platform serialization via JSON."},"optimizing-flatlist-configuration":{"id":"optimizing-flatlist-configuration","title":"\u5217\u8868\u914d\u7f6e\u4f18\u5316","description":"\u672f\u8bed\u5b9a\u4e49","sidebar":"docs"},"optimizing-javascript-loading":{"id":"optimizing-javascript-loading","title":"Optimizing JavaScript loading","description":"\u89e3\u6790\u548c\u8fd0\u884c JavaScript \u4ee3\u7801\u9700\u8981\u5185\u5b58\u548c\u65f6\u95f4\u3002\u56e0\u6b64\uff0c\u968f\u7740\u4f60\u7684\u5e94\u7528\u7a0b\u5e8f\u589e\u957f\uff0c\u901a\u5e38\u5c06\u4ee3\u7801\u52a0\u8f7d\u5ef6\u8fdf\u5230\u9996\u6b21\u9700\u8981\u65f6\u662f\u6709\u7528\u7684\u3002React Native \u81ea\u5e26\u4e00\u4e9b\u9ed8\u8ba4\u5f00\u542f\u7684\u6807\u51c6\u4f18\u5316\uff0c\u5e76\u4e14\u4f60\u53ef\u4ee5\u5728\u81ea\u5df1\u7684\u4ee3\u7801\u4e2d\u91c7\u7528\u4e00\u4e9b\u6280\u672f\u6765\u5e2e\u52a9 React \u66f4\u6709\u6548\u5730\u52a0\u8f7d\u4f60\u7684\u5e94\u7528\u7a0b\u5e8f\u3002\u8fd8\u6709\u4e00\u4e9b\u9002\u5408\u975e\u5e38\u5927\u5e94\u7528\u7a0b\u5e8f\u7684\u9ad8\u7ea7\u81ea\u52a8\u4f18\u5316\uff08\u5b83\u4eec\u4e5f\u6709\u81ea\u5df1\u7684\u6743\u8861\uff09\u3002","sidebar":"docs"},"other-debugging-methods":{"id":"other-debugging-methods","title":"\u5176\u4ed6\u8c03\u8bd5\u65b9\u6cd5","description":"\u6b64\u9875\u9762\u4ecb\u7ecd\u4e86\u9664 \u6253\u5f00\u8c03\u8bd5\u5668 \u4e2d\u63cf\u8ff0\u7684\u65b9\u6cd5\u4e4b\u5916\u7684\u5176\u4ed6 JavaScript \u8c03\u8bd5\u65b9\u6cd5\u3002\u5982\u679c\u4f60\u6b63\u5728\u4f7f\u7528\u65b0\u521b\u5efa\u7684 React Native \u6216 Expo \u5e94\u7528\uff0c\u6211\u4eec\u5efa\u8bae\u4ece\u90a3\u91cc\u5f00\u59cb\u3002","sidebar":"docs"},"out-of-tree-platforms":{"id":"out-of-tree-platforms","title":"\u591a\u5e73\u53f0\u652f\u6301","description":"React Native\u4e0d\u4ec5\u9002\u7528\u4e8e Android \u548c iOS - \u8fd8\u6709\u793e\u533a\u652f\u6301\u7684\u9879\u76ee\u5c06\u5176\u5e94\u7528\u4e8e\u5176\u4ed6\u5e73\u53f0\uff0c\u4f8b\u5982\uff1a","sidebar":"docs"},"panresponder":{"id":"panresponder","title":"PanResponder","description":"PanResponder\u7c7b\u53ef\u4ee5\u5c06\u591a\u70b9\u89e6\u6478\u64cd\u4f5c\u534f\u8c03\u6210\u4e00\u4e2a\u624b\u52bf\u3002\u5b83\u4f7f\u5f97\u4e00\u4e2a\u5355\u70b9\u89e6\u6478\u53ef\u4ee5\u63a5\u53d7\u66f4\u591a\u7684\u89e6\u6478\u64cd\u4f5c\uff0c\u4e5f\u53ef\u4ee5\u7528\u4e8e\u8bc6\u522b\u7b80\u5355\u7684\u591a\u70b9\u89e6\u6478\u624b\u52bf\u3002","sidebar":"api"},"performance":{"id":"performance","title":"\u6027\u80fd\u7efc\u8ff0","description":"\u4f7f\u7528 React Native \u66ff\u4ee3\u57fa\u4e8e WebView \u7684\u6846\u67b6\u6765\u5f00\u53d1 App \u7684\u4e00\u4e2a\u5f3a\u6709\u529b\u7684\u7406\u7531\uff0c\u5c31\u662f\u4e3a\u4e86\u4f7f App \u53ef\u4ee5\u8fbe\u5230\u6bcf\u79d2 60 \u5e27\uff08\u8db3\u591f\u6d41\u7545\uff09\uff0c\u5e76\u4e14\u80fd\u6709\u7c7b\u4f3c\u539f\u751f App \u7684\u5916\u89c2\u548c\u624b\u611f\u3002\u56e0\u6b64\u6211\u4eec\u4e5f\u5c3d\u53ef\u80fd\u5730\u4f18\u5316 React Native \u53bb\u5b9e\u73b0\u8fd9\u4e00\u76ee\u6807\uff0c\u4f7f\u5f00\u53d1\u8005\u80fd\u96c6\u4e2d\u7cbe\u529b\u5904\u7406 App \u7684\u4e1a\u52a1\u903b\u8f91\uff0c\u800c\u4e0d\u7528\u8d39\u5fc3\u8003\u8651\u6027\u80fd\u3002\u4f46\u662f\uff0c\u603b\u8fd8\u662f\u6709\u4e00\u4e9b\u5730\u65b9\u6709\u6240\u6b20\u7f3a\uff0c\u4ee5\u53ca\u5728\u67d0\u4e9b\u573a\u5408 React Native \u8fd8\u4e0d\u80fd\u591f\u66ff\u4f60\u51b3\u5b9a\u5982\u4f55\u8fdb\u884c\u4f18\u5316\uff08\u7528\u539f\u751f\u4ee3\u7801\u5199\u4e5f\u65e0\u6cd5\u907f\u514d\uff09\uff0c\u56e0\u6b64\u4eba\u5de5\u7684\u5e72\u9884\u4f9d\u7136\u662f\u5fc5\u8981\u7684\u3002","sidebar":"docs"},"permissionsandroid":{"id":"permissionsandroid","title":"PermissionsAndroid","description":"\u4ec5\u9002\u7528\u4e8e\u975e\u6c99\u76d2\u9879\u76ee","sidebar":"api"},"pixelratio":{"id":"pixelratio","title":"PixelRatio","description":"PixelRatio \u53ef\u4ee5\u83b7\u53d6\u5230\u8bbe\u5907\u7684\u50cf\u7d20\u5bc6\u5ea6\u548c\u5b57\u4f53\u7f29\u653e\u6bd4\u3002","sidebar":"api"},"platform":{"id":"platform","title":"Platform","description":"Example","sidebar":"api"},"platform-specific-code":{"id":"platform-specific-code","title":"\u7279\u5b9a\u5e73\u53f0\u4ee3\u7801","description":"\u5728\u7f16\u5199\u8de8\u5e73\u53f0\u7684\u5e94\u7528\u65f6\uff0c\u6211\u4eec\u80af\u5b9a\u5e0c\u671b\u5c3d\u53ef\u80fd\u591a\u5730\u590d\u7528\u4ee3\u7801\u3002\u4f46\u662f\u603b\u6709\u4e9b\u65f6\u5019\u6211\u4eec\u4f1a\u78b0\u5230\u9488\u5bf9\u4e0d\u540c\u5e73\u53f0\u7f16\u5199\u4e0d\u540c\u4ee3\u7801\u7684\u9700\u6c42\u3002","sidebar":"docs"},"platformcolor":{"id":"platformcolor","title":"PlatformColor","description":"You can use the PlatformColor function to access native colors on the target platform by supplying the native color\u2019s corresponding string value. You pass a string to the PlatformColor function and, provided it exists on that platform, it will return the corresponding native color, which you can apply in any part of your application.","sidebar":"api"},"pressable":{"id":"pressable","title":"Pressable","description":"Pressable \u662f\u4e00\u4e2a\u6838\u5fc3\u7ec4\u4ef6\u7684\u5c01\u88c5\uff0c\u5b83\u53ef\u4ee5\u68c0\u6d4b\u5230\u4efb\u610f\u5b50\u7ec4\u4ef6\u7684\u4e0d\u540c\u9636\u6bb5\u7684\u6309\u538b\u4ea4\u4e92\u60c5\u51b5\u3002","sidebar":"\u7ec4\u4ef6"},"pressevent":{"id":"pressevent","title":"\u70b9\u51fb\u4e8b\u4ef6\u5bf9\u8c61","description":"\u70b9\u51fb\u4e8b\u4ef6\u5bf9\u8c61\u4f5c\u4e3a\u7528\u6237\u6309\u538b\u4ea4\u4e92\u7684\u7ed3\u679c\u5728\u56de\u8c03\u4e2d\u8fd4\u56de\uff0c\u4f8b\u5982 Button \u7ec4\u4ef6\u4e2d\u7684 onPress\u3002","sidebar":"\u7ec4\u4ef6"},"profile-hermes":{"id":"profile-hermes","title":"\u5728 Hermes \u4e2d\u8fdb\u884c\u6027\u80fd\u5206\u6790","description":"\u4f60\u53ef\u4ee5\u4f7f\u7528Hermes\u5728 React Native \u5e94\u7528\u4e2d\u53ef\u89c6\u5316 JavaScript \u7684\u6027\u80fd\u3002Hermes \u662f\u4e00\u4e2a\u5c0f\u578b\u4e14\u8f7b\u91cf\u7684 JavaScript \u5f15\u64ce\uff08\u4f60\u53ef\u4ee5\u5728\u8fd9\u91cc\u9605\u8bfb\u66f4\u591a\u6709\u5173\u5728 React Native \u4e2d\u4f7f\u7528\u5b83\u7684\u4fe1\u606f\uff09\u3002Hermes \u6709\u52a9\u4e8e\u63d0\u9ad8\u5e94\u7528\u6027\u80fd\uff0c\u5e76\u4e14\u8fd8\u63d0\u4f9b\u4e86\u5206\u6790\u5176\u8fd0\u884c\u7684 JavaScript \u6027\u80fd\u7684\u65b9\u5f0f\u3002"},"profiling":{"id":"profiling","title":"Profiling","description":"\u4f7f\u7528\u5185\u7f6e\u7684\u6027\u80fd\u5206\u6790\u5668\u83b7\u53d6 JavaScript \u7ebf\u7a0b\u548c\u4e3b\u7ebf\u7a0b\u5e76\u6392\u7684\u8be6\u7ec6\u5de5\u4f5c\u4fe1\u606f\u3002\u4ece\u8c03\u8bd5\u83dc\u5355\u4e2d\u9009\u62e9 Perf Monitor \u5373\u53ef\u8bbf\u95ee\u5b83\u3002","sidebar":"docs"},"progressbarandroid":{"id":"progressbarandroid","title":"\ud83d\udea7 ProgressBarAndroid","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/progress-bar-android instead."},"progressviewios":{"id":"progressviewios","title":"\ud83d\udea7 ProgressViewIOS","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/progress-view instead."},"props":{"id":"props","title":"Props\uff08\u5c5e\u6027\uff09","description":"\u5927\u591a\u6570\u7ec4\u4ef6\u5728\u521b\u5efa\u65f6\u5c31\u53ef\u4ee5\u4f7f\u7528\u5404\u79cd\u53c2\u6570\u6765\u8fdb\u884c\u5b9a\u5236\u3002\u7528\u4e8e\u5b9a\u5236\u7684\u8fd9\u4e9b\u53c2\u6570\u5c31\u79f0\u4e3aprops\uff08\u5c5e\u6027\uff09\u3002"},"publishing-to-app-store":{"id":"publishing-to-app-store","title":"\u4e0a\u67b6 App Store","description":"\u4e0a\u67b6\u5e94\u7528\u7684\u8fc7\u7a0b\u548c\u4efb\u4f55\u5176\u5b83\u539f\u751f iOS \u5e94\u7528\u4e00\u6837\uff0c\u4f46\u6709\u4e00\u4e9b\u989d\u5916\u7684\u6ce8\u610f\u4e8b\u9879\u8981\u8003\u8651\u3002","sidebar":"docs"},"pushnotificationios":{"id":"pushnotificationios","title":"\ud83d\udea7 PushNotificationIOS","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/push-notification-ios instead."},"ram-bundles-inline-requires":{"id":"ram-bundles-inline-requires","title":"RAM Bundles \u548c\u5185\u8054\u5f15\u7528\u4f18\u5316","description":"\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u8f83\u4e3a\u5e9e\u5927\u7684\u5e94\u7528\u7a0b\u5e8f\uff0c\u4f60\u53ef\u80fd\u8981\u8003\u8651\u4f7f\u7528RAM(Random Access Modules\uff0c\u968f\u673a\u5b58\u53d6\u6a21\u5757\uff09\u683c\u5f0f\u7684 bundle \u548c\u5185\u8054\u5f15\u7528\u3002\u8fd9\u5bf9\u4e8e\u5177\u6709\u5927\u91cf\u9875\u9762\u7684\u5e94\u7528\u7a0b\u5e8f\u662f\u975e\u5e38\u6709\u7528\u7684\uff0c\u8fd9\u4e9b\u9875\u9762\u5728\u5e94\u7528\u7a0b\u5e8f\u7684\u5178\u578b\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u53ef\u80fd\u4e0d\u4f1a\u88ab\u6253\u5f00\u3002\u901a\u5e38\u5bf9\u4e8e\u542f\u52a8\u540e\u4e00\u6bb5\u65f6\u95f4\u5185\u4e0d\u9700\u8981\u5927\u91cf\u4ee3\u7801\u7684\u5e94\u7528\u7a0b\u5e8f\u6765\u8bf4\u662f\u975e\u5e38\u6709\u7528\u7684\u3002\u4f8b\u5982\u5e94\u7528\u7a0b\u5e8f\u5305\u542b\u590d\u6742\u7684\u914d\u7f6e\u6587\u4ef6\u5c4f\u5e55\u6216\u8f83\u5c11\u4f7f\u7528\u7684\u529f\u80fd\uff0c\u4f46\u5927\u591a\u6570\u4f1a\u8bdd\u53ea\u6d89\u53ca\u8bbf\u95ee\u5e94\u7528\u7a0b\u5e8f\u7684\u4e3b\u5c4f\u5e55\u66f4\u65b0\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528RAM\u683c\u5f0f\u6765\u4f18\u5316bundle\u7684\u52a0\u8f7d\uff0c\u5e76\u4e14\u5185\u8054\u5f15\u7528\u8fd9\u4e9b\u529f\u80fd\u548c\u9875\u9762\uff08\u5f53\u5b83\u4eec\u88ab\u5b9e\u9645\u4f7f\u7528\u65f6\uff09\u3002"},"react-18-and-react-native":{"id":"react-18-and-react-native","title":"React 18 \u4e0e React Native","description":"\u8fd9\u4e2a\u9875\u9762\u63cf\u8ff0\u4e86\u5982\u4f55\u5728 React Native \u7684\u65b0\u67b6\u6784\u4e2d\u542f\u7528 React 18 \u7248\u672c\u3002"},"react-native-devtools":{"id":"react-native-devtools","title":"React Native \u5f00\u53d1\u8005\u5de5\u5177","description":"React Native DevTools \u662f\u6211\u4eec\u65b0\u7684\u8c03\u8bd5\u4f53\u9a8c\uff0c\u5b83\u5bf9\u6211\u4eec\u7684\u8c03\u8bd5\u5806\u6808\u8fdb\u884c\u4e86\u7aef\u5230\u7aef\u7684\u91cd\u65b0\u7f16\u5199\u3002\u5b83\u65e8\u5728\u6bd4\u4ee5\u524d\u7684\u8c03\u8bd5\u65b9\u6cd5\u66f4\u6df1\u5165\u5730\u96c6\u6210\uff0c\u5e76\u4e14\u4ece\u6839\u672c\u4e0a\u66f4\u53ef\u9760\u3002","sidebar":"docs"},"react-native-gradle-plugin":{"id":"react-native-gradle-plugin","title":"React Native Gradle Plugin","description":"\u672c\u6307\u5357\u63cf\u8ff0\u4e86\u5982\u4f55\u914d\u7f6e React Native Gradle Plugin\uff08\u901a\u5e38\u79f0\u4e3a RNGP\uff09\u6765\u4e3a Android \u6784\u5efa React Native \u5e94\u7528\u3002","sidebar":"docs"},"react-node":{"id":"react-node","title":"React \u8282\u70b9\u5bf9\u8c61","description":"React \u8282\u70b9\u5bf9\u8c61\u6709\u4ee5\u4e0b\u8fd9\u4e9b\u7c7b\u578b\uff1a","sidebar":"\u7ec4\u4ef6"},"rect":{"id":"rect","title":"\u77e9\u5f62\u533a\u57df\u5bf9\u8c61","description":"Rect \u63a5\u53d7\u6570\u503c\u50cf\u7d20\u503c\u6765\u63cf\u8ff0\u5982\u4f55\u6269\u5c55\u77e9\u5f62\u533a\u57df\u3002\u8fd9\u4e9b\u503c\u4f1a\u88ab\u6dfb\u52a0\u5230\u539f\u59cb\u533a\u57df\u7684\u5927\u5c0f\u4e0a\u4ee5\u6269\u5c55\u5b83\u3002","sidebar":"\u7ec4\u4ef6"},"rectorsize":{"id":"rectorsize","title":"RectOrSize Object Type","description":"RectOrSize\u63a5\u53d7\u6570\u5b57\u50cf\u7d20\u503c\u6765\u63cf\u8ff0\u5982\u4f55\u6269\u5c55\u77e9\u5f62\u533a\u57df\u3002\u8fd9\u4e9b\u503c\u4f1a\u88ab\u6dfb\u52a0\u5230\u539f\u59cb\u533a\u57df\u7684\u5927\u5c0f\u4e0a\u4ee5\u6269\u5c55\u5b83\u3002"},"refreshcontrol":{"id":"refreshcontrol","title":"RefreshControl","description":"\u8fd9\u4e00\u7ec4\u4ef6\u53ef\u4ee5\u7528\u5728 ScrollView \u6216 FlatList \u5185\u90e8\uff0c\u4e3a\u5176\u6dfb\u52a0\u4e0b\u62c9\u5237\u65b0\u7684\u529f\u80fd\u3002\u5f53 ScrollView \u5904\u4e8e\u7ad6\u76f4\u65b9\u5411\u7684\u8d77\u70b9\u4f4d\u7f6e\uff08scrollY: 0\uff09\uff0c\u6b64\u65f6\u4e0b\u62c9\u4f1a\u89e6\u53d1\u4e00\u4e2aonRefresh\u4e8b\u4ef6\u3002","sidebar":"\u7ec4\u4ef6"},"removing-default-permissions":{"id":"removing-default-permissions","title":"\u79fb\u9664\u4e0d\u9700\u8981\u7684\u6743\u9650","description":"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u6211\u4eec\u4f1a\u7ed9\u6700\u7ec8\u6253\u5305\u7684 APK \u52a0\u5165\u4e00\u4e9b\u6743\u9650\u7533\u8bf7\uff0c\u5177\u4f53\u5982\u4e0b\uff1a"},"render-pipeline":{"id":"render-pipeline","title":"\u6e32\u67d3\uff0c\u63d0\u4ea4\u4e0e\u6302\u8f7d\uff08\u6e32\u67d3\u6d41\u6c34\u7ebf\uff09","description":"\u6587\u6863\u4ecb\u7ecd\u4e86\u5373\u5c06\u53d1\u5e03\u7684\u65b0\u6e32\u67d3\u5668 Fabric \u7684\u67b6\u6784\u3002"},"roottag":{"id":"roottag","title":"RootTag","description":"RootTag \u662f\u7528\u4e8e\u6807\u8bb0 React Native \u539f\u751f\u6839\u89c6\u56fe\u5c42\u7684\u4e0d\u900f\u660e\u6807\u8bc6\u7b26\uff08opaque identifier\uff09\u3002\u5177\u4f53\u6765\u8bf4\u5c31\u662f ReactRootView(android) \u6216\u662f RCTRootView(iOS) \u7684\u5b9e\u4f8b ID.","sidebar":"api"},"running-on-device":{"id":"running-on-device","title":"\u5728\u8bbe\u5907\u4e0a\u8fd0\u884c","description":"\u5728\u771f\u673a\u4e0a\u4ed4\u7ec6\u6d4b\u8bd5 app \u540e\u518d\u53d1\u5e03\u7ed9\u7528\u6237\u603b\u662f\u4e0d\u4f1a\u9519\u7684\u3002\u672c\u6587\u6863\u5c06\u6307\u5bfc\u4f60\u901a\u8fc7\u5fc5\u987b\u7684\u6b65\u9aa4\u5728\u8bbe\u5907\u4e0a\u8fd0\u884c React Native app\uff0c\u4e3a\u751f\u4ea7\u505a\u51c6\u5907\u3002","sidebar":"docs"},"running-on-simulator-ios":{"id":"running-on-simulator-ios","title":"\u5728iOS\u6a21\u62df\u5668\u4e0a\u8fd0\u884c","description":"\u542f\u52a8\u6a21\u62df\u5668","sidebar":"docs"},"safeareaview":{"id":"safeareaview","title":"SafeAreaView","description":"SafeAreaView\u7684\u76ee\u7684\u662f\u5728\u4e00\u4e2a\u201c\u5b89\u5168\u201d\u7684\u53ef\u89c6\u533a\u57df\u5185\u6e32\u67d3\u5185\u5bb9\u3002\u5177\u4f53\u6765\u8bf4\u5c31\u662f\u56e0\u4e3a\u76ee\u524d\u6709 iPhone X \u8fd9\u6837\u7684\u5e26\u6709\u201c\u5218\u6d77\u201d\u7684\u5168\u9762\u5c4f\u8bbe\u5907\uff0c\u6240\u4ee5\u9700\u8981\u907f\u514d\u5185\u5bb9\u6e32\u67d3\u5230\u4e0d\u53ef\u89c1\u7684\u201c\u5218\u6d77\u201d\u8303\u56f4\u5185\u3002\u672c\u7ec4\u4ef6\u76ee\u524d\u4ec5\u652f\u6301 iOS \u8bbe\u5907\u4ee5\u53ca iOS 11 \u6216\u66f4\u9ad8\u7248\u672c\u3002","sidebar":"\u7ec4\u4ef6"},"sample-application-movies":{"id":"sample-application-movies","title":"\u793a\u4f8b\u6559\u7a0b\uff1a\u7535\u5f71\u5217\u8868","description":"\u7b80\u4ecb"},"scrollview":{"id":"scrollview","title":"ScrollView","description":"\u4e00\u4e2a\u5c01\u88c5\u4e86\u5e73\u53f0\u7684 ScrollView\uff08\u6eda\u52a8\u89c6\u56fe\uff09\u7684\u7ec4\u4ef6\uff0c\u540c\u65f6\u8fd8\u96c6\u6210\u4e86\u89e6\u6478\u9501\u5b9a\u7684\u201c\u54cd\u5e94\u8005\u201d\u7cfb\u7edf\u3002","sidebar":"\u7ec4\u4ef6"},"sectionlist":{"id":"sectionlist","title":"SectionList","description":"\u9ad8\u6027\u80fd\u7684\u5206\u7ec4(section)\u5217\u8868\u7ec4\u4ef6\uff0c\u652f\u6301\u4e0b\u9762\u8fd9\u4e9b\u5e38\u7528\u7684\u529f\u80fd\uff1a","sidebar":"\u7ec4\u4ef6"},"security":{"id":"security","title":"\u7f51\u7edc\u5b89\u5168\u7b56\u7565","description":"\u5f00\u53d1\u5e94\u7528\u65f6\u5b89\u5168\u5e38\u5e38\u662f\u4e00\u4e2a\u88ab\u5ffd\u89c6\u7684\u8bdd\u9898\u3002\u7684\u786e\uff0c\u642d\u5efa\u4e00\u4e2a\u5b8c\u5168\u65e0\u61c8\u53ef\u51fb\u7684\u8f6f\u4ef6\u662f\u4e0d\u53ef\u80fd\u7684\u2014\u2014\u6211\u4eec\u8fd8\u6ca1\u6709\u53d1\u660e\u4e00\u4e2a\u5b8c\u5168\u575a\u4e0d\u53ef\u6467\u7684\u9501\uff08\u6bd5\u7adf\uff0c\u94f6\u884c\u91d1\u5e93\u5df2\u7ecf\u8db3\u591f\u575a\u56fa\u4f46\u4ecd\u7136\u4f1a\u88ab\u95ef\u5165\uff09\u3002\u7136\u800c\uff0c\u906d\u53d7\u6076\u610f\u653b\u51fb\u6216\u66b4\u9732\u5b89\u5168\u6f0f\u6d1e\u7684\u53ef\u80fd\u6027\u4e0e\u60a8\u613f\u610f\u6295\u5165\u4fdd\u62a4\u5e94\u7528\u7a0b\u5e8f\u514d\u53d7\u6b64\u7c7b\u4e8b\u4ef6\u7684\u52aa\u529b\u6210\u53cd\u6bd4\u3002\u5c3d\u7ba1\u666e\u901a\u7684\u6302\u9501\u53ef\u4ee5\u88ab\u64ac\u5f00\uff0c\u4f46\u5b83\u4ecd\u7136\u6bd4\u6a71\u67dc\u6302\u94a9\u66f4\u96be\u653b\u7834\uff01","sidebar":"docs"},"segmentedcontrolios":{"id":"segmentedcontrolios","title":"\ud83d\udea7 SegmentedControlIOS","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/segmented-control instead."},"settings":{"id":"settings","title":"Settings","description":"Settings\u662f\u5bf9NSUserDefaults\u7684\u5c01\u88c5\u3002\u5b83\u662fiOS\u5e73\u53f0\u4e0a\u7684\u4e00\u79cd\u6301\u4e45\u7684\u952e\u503c\u5bf9\u5b58\u50a8\u3002","sidebar":"api"},"shadow-props":{"id":"shadow-props","title":"\u9634\u5f71\u6837\u5f0f\u5c5e\u6027","description":"These properties are iOS only - for similar functionality on Android, use the elevation property.","sidebar":"\u7ec4\u4ef6"},"share":{"id":"share","title":"Share","description":"\u793a\u4f8b","sidebar":"api"},"signed-apk-android":{"id":"signed-apk-android","title":"\u6253\u5305\u53d1\u5e03","description":"Android \u8981\u6c42\u6240\u6709\u5e94\u7528\u90fd\u6709\u4e00\u4e2a\u6570\u5b57\u7b7e\u540d\u624d\u4f1a\u88ab\u5141\u8bb8\u5b89\u88c5\u5728\u7528\u6237\u624b\u673a\u4e0a\uff0c\u6240\u4ee5\u5728\u628a\u5e94\u7528\u53d1\u5e03\u5230\u5e94\u7528\u5e02\u573a\u4e4b\u524d\uff0c\u4f60\u9700\u8981\u5148\u751f\u6210\u4e00\u4e2a\u7b7e\u540d\u7684 AAB \u6216 APK \u5305\uff08Google Play \u73b0\u5728\u8981\u6c42 AAB \u683c\u5f0f\uff0c\u800c\u56fd\u5185\u7684\u5e94\u7528\u5e02\u573a\u76ee\u524d\u4ec5\u652f\u6301 APK \u683c\u5f0f\u3002\u4f46\u65e0\u8bba\u54ea\u79cd\u683c\u5f0f\uff0c\u4e0b\u9762\u7684\u7b7e\u540d\u6b65\u9aa4\u662f\u4e00\u6837\u7684\uff09\u3002Android \u5f00\u53d1\u8005\u5b98\u7f51\u4e0a\u7684\u5982\u4f55\u7ed9\u4f60\u7684\u5e94\u7528\u7b7e\u540d\u6587\u6863\u63cf\u8ff0\u4e86\u7b7e\u540d\u7684\u7ec6\u8282\u3002\u672c\u6307\u5357\u65e8\u5728\u63d0\u4f9b\u4e00\u4e2a\u7b80\u5316\u7684\u7b7e\u540d\u548c\u6253\u5305\u7684\u64cd\u4f5c\u6b65\u9aa4\uff0c\u4e0d\u4f1a\u6d89\u53ca\u592a\u591a\u7406\u8bba\u3002","sidebar":"docs"},"slider":{"id":"slider","title":"\ud83d\udea7 Slider","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/slider instead."},"speeding-ci-builds":{"id":"speeding-ci-builds","title":"\u4f18\u5316 CI \u6784\u5efa","description":"You or your company may have set up a Continuous Integration (CI) environment to test your React Native application."},"state":{"id":"state","title":"State\uff08\u72b6\u6001\uff09","description":"\u6211\u4eec\u4f7f\u7528\u4e24\u79cd\u6570\u636e\u6765\u63a7\u5236\u4e00\u4e2a\u7ec4\u4ef6\uff1aprops\u548cstate\u3002props\u662f\u5728\u7236\u7ec4\u4ef6\u4e2d\u6307\u5b9a\uff0c\u800c\u4e14\u4e00\u7ecf\u6307\u5b9a\uff0c\u5728\u88ab\u6307\u5b9a\u7684\u7ec4\u4ef6\u7684\u751f\u547d\u5468\u671f\u4e2d\u5219\u4e0d\u518d\u6539\u53d8\u3002\u5bf9\u4e8e\u9700\u8981\u6539\u53d8\u7684\u6570\u636e\uff0c\u6211\u4eec\u9700\u8981\u4f7f\u7528state\u3002"},"statusbar":{"id":"statusbar","title":"StatusBar","description":"\u63a7\u5236\u5e94\u7528\u72b6\u6001\u680f\u7684\u7ec4\u4ef6\u3002","sidebar":"\u7ec4\u4ef6"},"style":{"id":"style","title":"\u6837\u5f0f","description":"\u5728 React Native \u4e2d\uff0c\u4f60\u5e76\u4e0d\u9700\u8981\u5b66\u4e60\u4ec0\u4e48\u7279\u6b8a\u7684\u8bed\u6cd5\u6765\u5b9a\u4e49\u6837\u5f0f\u3002\u6211\u4eec\u4ecd\u7136\u662f\u4f7f\u7528 JavaScript \u6765\u5199\u6837\u5f0f\u3002\u6240\u6709\u7684\u6838\u5fc3\u7ec4\u4ef6\u90fd\u63a5\u53d7\u540d\u4e3astyle\u7684\u5c5e\u6027\u3002\u8fd9\u4e9b\u6837\u5f0f\u540d\u57fa\u672c\u4e0a\u662f\u9075\u5faa\u4e86 web \u4e0a\u7684 CSS \u7684\u547d\u540d\uff0c\u53ea\u662f\u6309\u7167 JS \u7684\u8bed\u6cd5\u8981\u6c42\u4f7f\u7528\u4e86\u9a7c\u5cf0\u547d\u540d\u6cd5\uff0c\u4f8b\u5982\u5c06background-color\u6539\u4e3abackgroundColor\u3002","sidebar":"docs"},"stylesheet":{"id":"stylesheet","title":"StyleSheet","description":"StyleSheet \u63d0\u4f9b\u4e86\u4e00\u79cd\u7c7b\u4f3c CSS \u6837\u5f0f\u8868\u7684\u62bd\u8c61\u3002","sidebar":"api"},"switch":{"id":"switch","title":"Switch","description":"\u8de8\u5e73\u53f0\u901a\u7528\u7684\u201c\u5f00\u5173\u201d\u7ec4\u4ef6\u3002","sidebar":"\u7ec4\u4ef6"},"symbolication":{"id":"symbolication","title":"Symbolicating a stack trace","description":"If a React Native app throws an unhandled exception in a release build, the output may be obfuscated and hard to read:"},"systrace":{"id":"systrace","title":"Systrace","description":"Systrace is a standard Android marker-based profiling tool (and is installed when you install the Android platform-tools package). Profiled code blocks are surrounded by start/end markers which are then visualized in a colorful chart format. Both the Android SDK and React Native framework provide standard markers that you can visualize.","sidebar":"api"},"testing-overview":{"id":"testing-overview","title":"Testing","description":"This guide introduces React Native developers to the key concepts behind testing, how to write good tests, and what kinds of tests you can incorporate into your workflow.","sidebar":"docs"},"text":{"id":"text","title":"Text","description":"\u4e00\u4e2a\u7528\u4e8e\u663e\u793a\u6587\u672c\u7684 React \u7ec4\u4ef6\uff0c\u5e76\u4e14\u5b83\u4e5f\u652f\u6301\u5d4c\u5957\u3001\u6837\u5f0f\uff0c\u4ee5\u53ca\u89e6\u6478\u5904\u7406\u3002","sidebar":"\u7ec4\u4ef6"},"text-style-props":{"id":"text-style-props","title":"Text \u6837\u5f0f\u5c5e\u6027","description":"\u793a\u4f8b","sidebar":"\u7ec4\u4ef6"},"textinput":{"id":"textinput","title":"TextInput","description":"TextInput \u662f\u4e00\u4e2a\u5141\u8bb8\u7528\u6237\u5728\u5e94\u7528\u4e2d\u901a\u8fc7\u952e\u76d8\u8f93\u5165\u6587\u672c\u7684\u57fa\u672c\u7ec4\u4ef6\u3002\u672c\u7ec4\u4ef6\u7684\u5c5e\u6027\u63d0\u4f9b\u4e86\u591a\u79cd\u7279\u6027\u7684\u914d\u7f6e\uff0c\u8b6c\u5982\u81ea\u52a8\u5b8c\u6210\u3001\u81ea\u52a8\u5927\u5c0f\u5199\u3001\u5360\u4f4d\u6587\u5b57\uff0c\u4ee5\u53ca\u591a\u79cd\u4e0d\u540c\u7684\u952e\u76d8\u7c7b\u578b\uff08\u5982\u7eaf\u6570\u5b57\u952e\u76d8\uff09\u7b49\u7b49\u3002","sidebar":"\u7ec4\u4ef6"},"the-new-architecture/backward-compatibility":{"id":"the-new-architecture/backward-compatibility","title":"\u5411\u540e\u517c\u5bb9\u7684\u610f\u4e49","description":"\u521b\u5efa\u4e00\u4e2a\u5411\u540e\u517c\u5bb9\u7684\u6a21\u5757\u5f88\u91cd\u8981\uff0c\u8fd9\u6837\u53ef\u4ee5\u5b9e\u73b0\u5728\u65e7\u67b6\u6784\u548c\u65b0\u67b6\u6784\u4e2d\u90fd\u80fd\u5de5\u4f5c\u7684\u5e93\u3002\u5e76\u4e0d\u662f\u6240\u6709\u7528\u6237\u90fd\u4f1a\u7acb\u523b\u8f6c\u5230\u65b0\u67b6\u6784\uff0c\u6700\u597d\u5728\u4ed6\u4eec\u4f7f\u7528\u65e7\u67b6\u6784\u65f6\u4ecd\u7136\u4fdd\u6301\u517c\u5bb9\u3002"},"the-new-architecture/backward-compatibility-fabric-components":{"id":"the-new-architecture/backward-compatibility-fabric-components","title":"\u4f7f Fabric \u7ec4\u4ef6\u4e0e\u4f20\u7edf\u539f\u751f\u7ec4\u4ef6\u517c\u5bb9","description":"\u521b\u5efa\u5411\u540e\u517c\u5bb9\u7684 Fabric \u539f\u751f\u7ec4\u4ef6\u9700\u8981\u4e86\u89e3\u5982\u4f55\u521b\u5efa\u4f20\u7edf\u7684\u539f\u751f\u7ec4\u4ef6\u3002\u8981\u56de\u5fc6\u8fd9\u4e9b\u6982\u5ff5\uff0c\u8bf7\u67e5\u770b\u6b64\u6307\u5357\u3002"},"the-new-architecture/backward-compatibility-turbomodules":{"id":"the-new-architecture/backward-compatibility-turbomodules","title":"\u4f7f Turbo \u6a21\u5757\u4e0e\u4f20\u7edf\u539f\u751f\u6a21\u5757\u517c\u5bb9","description":"\u521b\u5efa\u5411\u540e\u517c\u5bb9\u7684 Turbo \u539f\u751f\u6a21\u5757\u9700\u8981\u4e86\u89e3\u5982\u4f55\u521b\u5efa\u4f20\u7edf\u7684\u539f\u751f\u6a21\u5757\u3002\u8981\u56de\u5fc6\u8fd9\u4e9b\u6982\u5ff5\uff0c\u8bf7\u67e5\u770b\u6b64\u6307\u5357\u3002"},"the-new-architecture/codegen-cli":{"id":"the-new-architecture/codegen-cli","title":"Codegen \u547d\u4ee4\u884c\u5de5\u5177","description":"\u8c03\u7528 Gradle \u6216\u624b\u52a8\u8c03\u7528\u811a\u672c\u53ef\u80fd\u5f88\u96be\u8bb0\u4f4f\uff0c\u5e76\u4e14\u9700\u8981\u5f88\u591a\u6b65\u9aa4\u3002","sidebar":"docs"},"the-new-architecture/create-module-library":{"id":"the-new-architecture/create-module-library","title":"\u521b\u5efa\u6a21\u5757\u5e93","description":"React Native \u6709\u4e00\u4e2a\u4e30\u5bcc\u7684\u751f\u6001\u7cfb\u7edf\u5e93\u6765\u89e3\u51b3\u5e38\u89c1\u95ee\u9898\u3002\u6211\u4eec\u5728 reactnative.directory \u7f51\u7ad9\u4e0a\u6536\u96c6 React Native \u5e93\uff0c\u8fd9\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u8d44\u6e90\uff0c\u503c\u5f97\u6bcf\u4e2a React Native \u5f00\u53d1\u8005\u6536\u85cf\u3002","sidebar":"docs"},"the-new-architecture/custom-cxx-types":{"id":"the-new-architecture/custom-cxx-types","title":"\u9ad8\u7ea7\uff1a\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b","description":"\u672c\u6307\u5357\u5047\u8bbe\u4f60\u719f\u6089 \u7eaf C++ Turbo Native \u6a21\u5757 \u6307\u5357\u3002\u5b83\u5c06\u5728\u6b64\u57fa\u7840\u4e0a\u8fdb\u884c\u6784\u5efa\u3002","sidebar":"docs"},"the-new-architecture/cxx-custom-types":{"id":"the-new-architecture/cxx-custom-types","title":"\u652f\u6301\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b","description":"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cC++ Turbo Native \u6a21\u5757\u652f\u6301\u5927\u591a\u6570 std:: \u6807\u51c6\u7c7b\u578b\u7684\u6865\u63a5\u529f\u80fd\u3002"},"the-new-architecture/cxx-cxxturbomodules":{"id":"the-new-architecture/cxx-cxxturbomodules","title":"C++ Turbo \u539f\u751f\u6a21\u5757","description":"\u672c\u6307\u5357\u5c06\u5411\u60a8\u5c55\u793a\u5982\u4f55\u4ec5\u4f7f\u7528 C++ \u5b9e\u73b0 Turbo \u539f\u751f\u6a21\u5757\uff0c\u4ee5\u4fbf\u4e0e\u4efb\u4f55\u652f\u6301\u7684\u5e73\u53f0\uff08Android\u3001iOS\u3001macOS \u6216 Windows\uff09\u5171\u4eab\u76f8\u540c\u7684\u5b9e\u73b0\u3002"},"the-new-architecture/landing-page":{"id":"the-new-architecture/landing-page","title":"\u65b0\u67b6\u6784\u4ecb\u7ecd","description":"\u4ece 0.68 \u7248\u672c\u5f00\u59cb\uff0cReact Native \u63d0\u4f9b\u4e86\u65b0\u67b6\u6784\uff0c\u5b83\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u4e86\u6784\u5efa\u9ad8\u6027\u80fd\u548c\u54cd\u5e94\u5f0f\u5e94\u7528\u7684\u65b0\u529f\u80fd\u3002\u8bf7\u8bbf\u95ee\\"\u4e3a\u4f55\u8981\u8bbe\u8ba1\u65b0\u67b6\u6784\\"\u6765\u4e86\u89e3\u66f4\u591a\u5173\u4e8e\u4fc3\u4f7f\u6211\u4eec\u51b3\u5b9a\u91cd\u65b0\u67b6\u6784\u7684\u539f\u56e0\uff0c\u4ee5\u53ca\u5b83\u63d0\u4f9b\u7684\u597d\u5904\u3002"},"the-new-architecture/pillars":{"id":"the-new-architecture/pillars","title":"\u65b0\u67b6\u6784\u7684\u4e24\u5927\u652f\u67f1","description":"\u65b0\u67b6\u6784\u4e3b\u8981\u7531\u4e24\u5927\u652f\u67f1\u7ec4\u6210\uff1a"},"the-new-architecture/pillars-codegen":{"id":"the-new-architecture/pillars-codegen","title":"Codegen","description":"Codegen \u4e0d\u7b97\u662f\u65b0\u67b6\u6784\u7684\u4e3b\u8981\u7ec4\u6210\u90e8\u5206\uff0c\u5b83\u662f\u4e00\u4e2a\u5e2e\u52a9\u6211\u4eec\u907f\u514d\u7f16\u5199\u91cd\u590d\u4ee3\u7801\u7684\u5de5\u5177\u3002Codegen \u5e76\u975e\u5fc5\u9009\u9879\uff0c\u60a8\u4ecd\u7136\u53ef\u4ee5\u624b\u5199\u5b83\u6240\u751f\u6210\u7684\u4ee3\u7801\uff0c\u4f46\u662f\u4f7f\u7528\u5b83\u6765\u751f\u6210\u811a\u624b\u67b6\u4ee3\u7801\u53ef\u4ee5\u5e2e\u60a8\u8282\u7701\u4e0d\u5c11\u65f6\u95f4\u3002"},"the-new-architecture/pillars-fabric-components":{"id":"the-new-architecture/pillars-fabric-components","title":"Fabric \u7ec4\u4ef6","description":"Fabric \u7ec4\u4ef6\u662f\u4e00\u79cd\u4f7f\u7528 Fabric \u6e32\u67d3\u5668\u6e32\u67d3\u5e76\u5c55\u793a\u5728\u5c4f\u5e55\u4e0a\u7684 UI \u7ec4\u4ef6\u3002\u5728\u65b0\u67b6\u6784\u4e2d\uff0c\u4f7f\u7528 Fabric \u7ec4\u4ef6\u66ff\u4ee3\u539f\u751f\u7ec4\u4ef6\u5177\u6709\u4ee5\u4e0b\u4f18\u52bf\uff1a"},"the-new-architecture/pillars-turbomodules":{"id":"the-new-architecture/pillars-turbomodules","title":"TurboModules","description":"\u5982\u679c\u60a8\u4f7f\u7528\u8fc7 React Native\uff0c\u60a8\u53ef\u80fd\u4e86\u89e3\u8fc7 Native Modules \u8fd9\u4e2a\u6982\u5ff5\u3002\u5b83\u53ef\u4ee5\u901a\u8fc7 React Native \u7684\u300cBridge\u300d\u5e2e\u52a9 JavaScript \u548c\u539f\u751f\u4ee3\u7801\u8fdb\u884c\u4ea4\u4e92\uff0c\u5e76\u4f7f\u7528\u8de8\u5e73\u53f0\u7684\u6570\u636e\u683c\u5f0f JSON \u8fdb\u884c\u901a\u8baf\u3002"},"the-new-architecture/pure-cxx-modules":{"id":"the-new-architecture/pure-cxx-modules","title":"\u7eaf C++ Turbo \u539f\u751f\u6a21\u5757","description":"\u7f16\u5199 C++ \u6a21\u5757\u662f\u8de8 Android \u548c iOS \u5171\u4eab\u5e73\u53f0\u65e0\u5173\u4ee3\u7801\u7684\u6700\u4f73\u65b9\u5f0f\u3002\u4f7f\u7528\u7eaf C++ \u6a21\u5757\uff0c\u60a8\u53ea\u9700\u7f16\u5199\u4e00\u6b21\u903b\u8f91\uff0c\u5373\u53ef\u5728\u6240\u6709\u5e73\u53f0\u4e0a\u91cd\u7528\u5b83\uff0c\u800c\u65e0\u9700\u7f16\u5199\u5e73\u53f0\u7279\u5b9a\u7684\u4ee3\u7801\u3002","sidebar":"docs"},"the-new-architecture/use-app-template":{"id":"the-new-architecture/use-app-template","title":"\u521b\u5efa\u542f\u7528\u65b0\u67b6\u6784\u7684\u5e94\u7528","description":"\u672c\u6587\u6863\u5c06\u5e2e\u52a9\u4f60\u4ece\u5934\u521b\u5efa\u4e00\u4e2a\u542f\u7528\u4e86\u65b0\u67b6\u6784\u7684 React Native \u5e94\u7528\u3002"},"the-new-architecture/using-codegen":{"id":"the-new-architecture/using-codegen","title":"\u4f7f\u7528 Codegen","description":"\u672c\u6307\u5357\u5c06\u6559\u4f60\u5982\u4f55\uff1a","sidebar":"docs"},"the-new-architecture/what-is-codegen":{"id":"the-new-architecture/what-is-codegen","title":"\u4ec0\u4e48\u662f Codegen\uff1f","description":"Codegen \u662f\u4e00\u4e2a\u907f\u514d\u7f16\u5199\u5927\u91cf\u91cd\u590d\u4ee3\u7801\u7684\u5de5\u5177\u3002\u4f7f\u7528 Codegen \u5e76\u4e0d\u662f\u5fc5\u987b\u7684\uff1a\u60a8\u53ef\u4ee5\u624b\u52a8\u7f16\u5199\u6240\u6709\u751f\u6210\u7684\u4ee3\u7801\u3002\u7136\u800c\uff0cCodegen \u751f\u6210\u7684\u811a\u624b\u67b6\u4ee3\u7801\u53ef\u4ee5\u8282\u7701\u60a8\u5f88\u591a\u65f6\u95f4\u3002","sidebar":"docs"},"the-new-architecture/why":{"id":"the-new-architecture/why","title":"\u4e3a\u4f55\u8981\u8bbe\u8ba1\u65b0\u67b6\u6784","description":"\u65b0\u67b6\u6784\u7684\u76ee\u6807\u662f\u89e3\u51b3\u56f0\u6270\u65e7\u67b6\u6784\u5728\u6027\u80fd\u548c\u7075\u6d3b\u6027\u65b9\u9762\u7684\u4e00\u4e9b\u95ee\u9898\u3002\u672c\u8282\u63d0\u4f9b\u4e86\u57fa\u672c\u7684\u80cc\u666f\uff0c\u4ee5\u4e86\u89e3\u65e7\u67b6\u6784\u7684\u5c40\u9650\u6027\uff0c\u4ee5\u53ca\u5982\u4f55\u901a\u8fc7\u65b0\u67b6\u6784\u6765\u514b\u670d\u8fd9\u4e9b\u5c40\u9650\u6027\u3002"},"threading-model":{"id":"threading-model","title":"\u7ebf\u7a0b\u6a21\u578b","description":"\u6587\u6863\u4ecb\u7ecd\u4e86\u5373\u5c06\u53d1\u5e03\u7684\u65b0\u6e32\u67d3\u5668 Fabric \u7684\u67b6\u6784\u3002"},"timepickerandroid":{"id":"timepickerandroid","title":"\ud83d\udea7 TimePickerAndroid","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/datetimepicker instead."},"timers":{"id":"timers","title":"\u5b9a\u65f6\u5668","description":"\u5b9a\u65f6\u5668\u662f\u4e00\u4e2a\u5e94\u7528\u4e2d\u975e\u5e38\u91cd\u8981\u7684\u90e8\u5206\u3002React Native \u5b9e\u73b0\u4e86\u548c\u6d4f\u89c8\u5668\u4e00\u81f4\u7684\u5b9a\u65f6\u5668 Timer\u3002","sidebar":"docs"},"toastandroid":{"id":"toastandroid","title":"ToastAndroid","description":"\u672c\u6a21\u5757\u5c06\u539f\u751f\u7684 ToastAndroid \u6a21\u5757\u5bfc\u51fa\u4e3a\u4e00\u4e2a JS \u6a21\u5757\uff0c\u7528\u4e8e\u5728 Android \u8bbe\u5907\u4e0a\u663e\u793a\u4e00\u4e2a\u60ac\u6d6e\u7684\u63d0\u793a\u4fe1\u606f\u3002\u672c\u6a21\u5757\u5305\u542b\u4e00\u4e2ashow\u65b9\u6cd5\u63a5\u53d7\u4ee5\u4e0b\u7684\u53c2\u6570\uff1a","sidebar":"api"},"touchablehighlight":{"id":"touchablehighlight","title":"TouchableHighlight","description":"\u6211\u4eec\u5efa\u8bae\u4f7f\u7528Pressable\u7ec4\u4ef6\uff0c\u5b83\u66f4\u5177\u6269\u5c55\u6027\u4e14\u4f1a\u662f\u5b98\u65b9\u672a\u6765\u529b\u63a8\u7684\u4e3b\u6d41\u3002","sidebar":"\u7ec4\u4ef6"},"touchablenativefeedback":{"id":"touchablenativefeedback","title":"TouchableNativeFeedback","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"\u7ec4\u4ef6"},"touchableopacity":{"id":"touchableopacity","title":"TouchableOpacity","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"\u7ec4\u4ef6"},"touchablewithoutfeedback":{"id":"touchablewithoutfeedback","title":"TouchableWithoutFeedback","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"\u7ec4\u4ef6"},"transforms":{"id":"transforms","title":"\u53d8\u6362\uff08Transform\uff09","description":"\u53d8\u6362\uff08Transform\uff09\u662f\u6837\u5f0f\u5c5e\u6027\uff0c\u53ef\u5e2e\u52a9\u60a8\u4f7f\u7528 2D \u6216 3D \u53d8\u6362\u4fee\u6539\u7ec4\u4ef6\u7684\u5916\u89c2\u548c\u4f4d\u7f6e\u3002\u7136\u800c\uff0c\u5373\u4fbf\u4f7f\u7528\u4e86\u53d8\u6362\uff0c\u4f7f\u7528\u53d8\u6362\u7684\u7ec4\u4ef6\u7684\u5e03\u5c40\u5e76\u4e0d\u4f1a\u53d8\u5316\uff0c\u56e0\u6b64\u53ef\u80fd\u4f1a\u4e0e\u9644\u8fd1\u7684\u7ec4\u4ef6\u91cd\u53e0\u3002\u60a8\u53ef\u4ee5\u5bf9\u53d8\u6362\u7684\u7ec4\u4ef6\u3001\u9644\u8fd1\u7684\u7ec4\u4ef6\u5e94\u7528\u8fb9\u8ddd\uff0c\u6216\u5bf9\u5bb9\u5668\u5e94\u7528\u586b\u5145\uff0c\u4ee5\u9632\u6b62\u8fd9\u79cd\u91cd\u53e0\u3002","sidebar":"api"},"troubleshooting":{"id":"troubleshooting","title":"Troubleshooting","description":"These are some common issues you may run into while setting up React Native. If you encounter something that is not listed here, try searching for the issue in GitHub."},"turbo-native-modules-android":{"id":"turbo-native-modules-android","title":"Turbo \u539f\u751f\u6a21\u5757\uff1aAndroid","description":"\u73b0\u5728\u6211\u4eec\u6765\u7f16\u5199\u4e00\u4e9b Android \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u786e\u4fdd localStorage \u5728\u5e94\u7528\u5173\u95ed\u540e\u4ecd\u7136\u53ef\u4ee5\u6301\u4e45\u4fdd\u5b58\u6570\u636e\u3002"},"turbo-native-modules-introduction":{"id":"turbo-native-modules-introduction","title":"Turbo \u539f\u751f\u6a21\u5757\u4ecb\u7ecd","description":"\u4f60\u7684 React Native \u5e94\u7528\u4ee3\u7801\u53ef\u80fd\u9700\u8981\u4e0e React Native \u6216\u73b0\u6709\u5e93\u672a\u63d0\u4f9b\u7684\u539f\u751f\u5e73\u53f0 API \u8fdb\u884c\u4ea4\u4e92\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528 Turbo \u539f\u751f\u6a21\u5757 \u81ea\u5df1\u7f16\u5199\u96c6\u6210\u4ee3\u7801\u3002\u672c\u6307\u5357\u5c06\u5411\u4f60\u5c55\u793a\u5982\u4f55\u7f16\u5199\u4e00\u4e2a\u3002","sidebar":"docs"},"turbo-native-modules-ios":{"id":"turbo-native-modules-ios","title":"Turbo \u539f\u751f\u6a21\u5757\uff1aiOS","description":"\u73b0\u5728\u6211\u4eec\u6765\u7f16\u5199\u4e00\u4e9b iOS \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u786e\u4fdd localStorage \u5728\u5e94\u7528\u5173\u95ed\u540e\u4ecd\u7136\u53ef\u4ee5\u6301\u4e45\u4fdd\u5b58\u6570\u636e\u3002"},"tutorial":{"id":"tutorial","title":"\u793a\u4f8b\u6559\u7a0b\uff1aHello World","description":"React Native \u770b\u8d77\u6765\u5f88\u50cf React\uff0c\u53ea\u4e0d\u8fc7\u5176\u57fa\u7840\u7ec4\u4ef6\u662f\u539f\u751f\u7ec4\u4ef6\u800c\u975e web \u7ec4\u4ef6\u3002\u8981\u7406\u89e3 React Native \u5e94\u7528\u7684\u57fa\u672c\u7ed3\u6784\uff0c\u9996\u5148\u9700\u8981\u4e86\u89e3\u4e00\u4e9b\u57fa\u672c\u7684 React \u7684\u6982\u5ff5\uff0c\u6bd4\u5982 JSX \u8bed\u6cd5\u3001\u7ec4\u4ef6\u3001state\u72b6\u6001\u4ee5\u53caprops\u5c5e\u6027\u3002\u5982\u679c\u4f60\u5df2\u7ecf\u4e86\u89e3\u4e86 React\uff0c\u90a3\u4e48\u8fd8\u9700\u8981\u638c\u63e1\u4e00\u4e9b React Native \u7279\u6709\u7684\u77e5\u8bc6\uff0c\u6bd4\u5982\u539f\u751f\u7ec4\u4ef6\u7684\u4f7f\u7528\u3002\u8fd9\u7bc7\u6559\u7a0b\u53ef\u4ee5\u4f9b\u4efb\u4f55\u57fa\u7840\u7684\u8bfb\u8005\u5b66\u4e60\uff0c\u4e0d\u7ba1\u4f60\u662f\u5426\u6709 React \u65b9\u9762\u7684\u7ecf\u9a8c\u3002"},"typescript":{"id":"typescript","title":"\u4f7f\u7528 TypeScript","description":"TypeScript \u662f\u4e00\u79cd\u901a\u8fc7\u6dfb\u52a0\u7c7b\u578b\u5b9a\u4e49\u6765\u6269\u5c55 JavaScript \u7684\u8bed\u8a00\u3002\u65b0\u7684 React Native \u9879\u76ee\u9ed8\u8ba4\u4ee5 TypeScript \u4e3a\u76ee\u6807\uff0c\u540c\u65f6\u4e5f\u652f\u6301 JavaScript \u548c Flow\u3002","sidebar":"docs"},"upgrading":{"id":"upgrading","title":"\u66f4\u65b0","description":"\u65f6\u523b\u5c06 React Native \u66f4\u65b0\u5230\u6700\u65b0\u7684\u7248\u672c\uff0c\u53ef\u4ee5\u83b7\u5f97\u66f4\u591a API\u3001\u89c6\u56fe\u3001\u5f00\u53d1\u8005\u5de5\u5177\u4ee5\u53ca\u5176\u4ed6\u4e00\u4e9b\u597d\u4e1c\u897f\uff08\u8bd1\u6ce8\uff1a\u5b98\u65b9\u5f00\u53d1\u4efb\u52a1\u7e41\u91cd\uff0c\u4eba\u624b\u7d27\u7f3a\uff0c\u51e0\u4e4e\u4e0d\u4f1a\u5bf9\u65e7\u7248\u672c\u63d0\u4f9b\u7ef4\u62a4\u652f\u6301\uff0c\u6240\u4ee5\u5373\u4fbf\u66f4\u65b0\u53ef\u80fd\u5e26\u6765\u4e00\u4e9b\u517c\u5bb9\u4e0a\u7684\u53d8\u66f4\uff0c\u4f46\u5efa\u8bae\u5f00\u53d1\u8005\u8fd8\u662f\u5c3d\u4e00\u5207\u53ef\u80fd\u7b2c\u4e00\u65f6\u95f4\u66f4\u65b0\uff09\u3002\u7531\u4e8e\u4e00\u4e2a\u5b8c\u6574\u7684 React Native \u9879\u76ee\u662f\u7531 Android \u9879\u76ee\u3001iOS \u9879\u76ee\u548c JavaScript \u9879\u76ee\u7ec4\u6210\u7684\uff0c\u4e14\u90fd\u6253\u5305\u5728\u4e00\u4e2a npm \u5305\u4e2d\uff0c\u6240\u4ee5\u5347\u7ea7\u53ef\u80fd\u4f1a\u6709\u4e00\u4e9b\u9ebb\u70e6\u3002\u6211\u4eec\u4f1a\u5c3d\u91cf\u7b80\u5316\u8fd9\u4e00\u6d41\u7a0b\u3002\u4f60\u53ef\u4ee5\u5728\u9879\u76ee\u76ee\u5f55\u4e0b\u4f7f\u7528npx react-native info\u547d\u4ee4\u67e5\u770b\u5f53\u524d\u7684\u7248\u672c\u3002","sidebar":"docs"},"usecolorscheme":{"id":"usecolorscheme","title":"useColorScheme","description":"useColorScheme \u8fd9\u4e2aReact hook \u63d0\u4f9b\u5e76\u8ba2\u9605\u6765\u81eaAppearance\u6a21\u5757\u7684\u989c\u8272\u65b9\u6848\u66f4\u65b0\u3002\u8fd4\u56de\u503c\u8868\u793a\u5f53\u524d\u7528\u6237\u9996\u9009\u7684\u989c\u8272\u65b9\u6848\u3002\u8be5\u503c\u53ef\u4ee5\u7a0d\u540e\u901a\u8fc7\u76f4\u63a5\u7528\u6237\u52a8\u4f5c\uff08\u4f8b\u5982\uff0c\u8bbe\u5907\u8bbe\u7f6e\u4e2d\u7684\u4e3b\u9898\u9009\u62e9\uff09\u6216\u6839\u636e\u65f6\u95f4\u8868\uff08\u4f8b\u5982\uff0c\u9075\u5faa\u767d\u5929/\u591c\u665a\u5468\u671f\u7684\u4eae\u4e3b\u9898\u548c\u6697\u4e3b\u9898\uff09\u6765\u66f4\u65b0\u3002","sidebar":"api"},"usewindowdimensions":{"id":"usewindowdimensions","title":"useWindowDimensions","description":"useWindowDimensions\u4f1a\u5728\u5c4f\u5e55\u5c3a\u5bf8\u53d8\u5316\u65f6\u81ea\u52a8\u66f4\u65b0\u83b7\u53d6\u5230\u7684\u8bbe\u5907width\u548cheight\u503c\u3002\u4f7f\u7528\u65b9\u6cd5\u5982\u4e0b\uff1a","sidebar":"api"},"using-a-listview":{"id":"using-a-listview","title":"\u4f7f\u7528\u957f\u5217\u8868","description":"React Native \u63d0\u4f9b\u4e86\u51e0\u4e2a\u9002\u7528\u4e8e\u5c55\u793a\u957f\u5217\u8868\u6570\u636e\u7684\u7ec4\u4ef6\uff0c\u4e00\u822c\u800c\u8a00\u6211\u4eec\u4f1a\u9009\u7528FlatList\u6216\u662fSectionList\u3002","sidebar":"docs"},"using-a-scrollview":{"id":"using-a-scrollview","title":"\u4f7f\u7528\u6eda\u52a8\u89c6\u56fe","description":"ScrollView\u662f\u4e00\u4e2a\u901a\u7528\u7684\u53ef\u6eda\u52a8\u7684\u5bb9\u5668\uff0c\u4f60\u53ef\u4ee5\u5728\u5176\u4e2d\u653e\u5165\u591a\u4e2a\u7ec4\u4ef6\u548c\u89c6\u56fe\uff0c\u800c\u4e14\u8fd9\u4e9b\u7ec4\u4ef6\u5e76\u4e0d\u9700\u8981\u662f\u540c\u7c7b\u578b\u7684\u3002ScrollView \u4e0d\u4ec5\u53ef\u4ee5\u5782\u76f4\u6eda\u52a8\uff0c\u8fd8\u80fd\u6c34\u5e73\u6eda\u52a8\uff08\u901a\u8fc7horizontal\u5c5e\u6027\u6765\u8bbe\u7f6e\uff09\u3002","sidebar":"docs"},"vibration":{"id":"vibration","title":"Vibration","description":"\u4f7f\u8bbe\u5907\u632f\u52a8\u3002","sidebar":"api"},"view":{"id":"view","title":"View","description":"\u4f5c\u4e3a\u521b\u5efa UI \u65f6\u6700\u57fa\u7840\u7684\u7ec4\u4ef6\uff0cView \u662f\u4e00\u4e2a\u652f\u6301 Flexbox \u5e03\u5c40\u3001\u6837\u5f0f\u3001\u89e6\u6478\u54cd\u5e94\u3001\u548c\u4e00\u4e9b\u65e0\u969c\u788d\u529f\u80fd\u7684\u5bb9\u5668\u3002\u4e0d\u8bba\u5728\u4ec0\u4e48\u5e73\u53f0\u4e0a\uff0cView \u90fd\u76f4\u63a5\u5bf9\u5e94\u5f53\u524d\u5e73\u53f0\u7684\u539f\u751f\u89c6\u56fe\uff0c\u65e0\u8bba\u5b83\u662f UIView\u3001div \u8fd8\u662f android.view.View\u3002","sidebar":"\u7ec4\u4ef6"},"view-flattening":{"id":"view-flattening","title":"\u89c6\u56fe\u62cd\u5e73","description":"This document refers to the architecture of the new renderer, Fabric, that is in active roll-out."},"view-style-props":{"id":"view-style-props","title":"View \u6837\u5f0f\u5c5e\u6027","description":"\u793a\u4f8b","sidebar":"\u7ec4\u4ef6"},"viewpagerandroid":{"id":"viewpagerandroid","title":"\ud83d\udea7 ViewPagerAndroid","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/viewpager instead."},"viewtoken":{"id":"viewtoken","title":"ViewToken \u5bf9\u8c61","description":"ViewToken object is returned as one of properties in the onViewableItemsChanged callback, for example in FlatList component. It is exported by ViewabilityHelper.js.","sidebar":"\u7ec4\u4ef6"},"virtualizedlist":{"id":"virtualizedlist","title":"VirtualizedList","description":"FlatList\u548cSectionList\u7684\u5e95\u5c42\u5b9e\u73b0\u3002FlatList \u548c SectionList \u4f7f\u7528\u8d77\u6765\u66f4\u65b9\u4fbf\uff0c\u540c\u65f6\u4e5f\u6709\u76f8\u5bf9\u66f4\u8be6\u7ec6\u7684\u6587\u6863\u3002\u4e00\u822c\u6765\u8bf4\uff0c\u4ec5\u5f53\u60f3\u83b7\u5f97\u6bd4 FlatList \u66f4\u9ad8\u7684\u7075\u6d3b\u6027\uff08\u6bd4\u5982\u8bf4\u5728\u4f7f\u7528 immutable data \u800c\u4e0d\u662f \u666e\u901a\u6570\u7ec4\uff09\u7684\u65f6\u5019\uff0c\u4f60\u624d\u5e94\u8be5\u8003\u8651\u4f7f\u7528 VirtualizedList\u3002","sidebar":"\u7ec4\u4ef6"},"xplat-implementation":{"id":"xplat-implementation","title":"\u8de8\u5e73\u53f0\u7684\u5b9e\u73b0","description":"This document refers to the architecture of the new renderer, Fabric, that is in active roll-out."}}}}')}}]); \ No newline at end of file diff --git a/assets/js/0058b4c6.6ffb0a21.js b/assets/js/0058b4c6.6ffb0a21.js deleted file mode 100644 index 6276f00400e..00000000000 --- a/assets/js/0058b4c6.6ffb0a21.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -exports.id = 90849; -exports.ids = [90849]; -exports.modules = { - -/***/ 86164: -/***/ ((module) => { - -module.exports = /*#__PURE__*/JSON.parse('{"version":{"pluginId":"default","version":"0.76","label":"0.76","banner":null,"badge":false,"noIndex":false,"className":"docs-version-0.76","isLast":true,"docsSidebars":{"docs":[{"type":"category","label":"入门基础","items":[{"type":"link","label":"简介","href":"/docs/getting-started","docId":"getting-started","unlisted":false},{"type":"link","label":"核心组件与原生组件","href":"/docs/intro-react-native-components","docId":"intro-react-native-components","unlisted":false},{"type":"link","label":"React 基础","href":"/docs/intro-react","docId":"intro-react","unlisted":false},{"type":"link","label":"处理文本输入","href":"/docs/handling-text-input","docId":"handling-text-input","unlisted":false},{"type":"link","label":"使用滚动视图","href":"/docs/using-a-scrollview","docId":"using-a-scrollview","unlisted":false},{"type":"link","label":"使用长列表","href":"/docs/using-a-listview","docId":"using-a-listview","unlisted":false},{"type":"link","label":"特定平台代码","href":"/docs/platform-specific-code","docId":"platform-specific-code","unlisted":false},{"type":"link","label":"其他参考资源","href":"/docs/more-resources","docId":"more-resources","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"环境搭建","items":[{"type":"link","label":"搭建开发环境","href":"/docs/environment-setup","docId":"environment-setup","unlisted":false},{"type":"link","label":"集成到现有原生应用","href":"/docs/integration-with-existing-apps","docId":"integration-with-existing-apps","unlisted":false},{"type":"link","label":"集成到 Android Fragment","href":"/docs/integration-with-android-fragment","docId":"integration-with-android-fragment","unlisted":false},{"type":"link","label":"为电视和机顶盒制作应用","href":"/docs/building-for-tv","docId":"building-for-tv","unlisted":false},{"type":"link","label":"多平台支持","href":"/docs/out-of-tree-platforms","docId":"out-of-tree-platforms","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"开发流程","items":[{"type":"link","label":"在设备上运行","href":"/docs/running-on-device","docId":"running-on-device","unlisted":false},{"type":"link","label":"快速刷新","href":"/docs/fast-refresh","docId":"fast-refresh","unlisted":false},{"type":"link","label":"Metro","href":"/docs/metro","docId":"metro","unlisted":false},{"type":"link","label":"使用第三方库","href":"/docs/libraries","docId":"libraries","unlisted":false},{"type":"link","label":"使用 TypeScript","href":"/docs/typescript","docId":"typescript","unlisted":false},{"type":"link","label":"更新","href":"/docs/upgrading","docId":"upgrading","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"界面与交互","items":[{"type":"link","label":"样式","href":"/docs/style","docId":"style","unlisted":false},{"type":"link","label":"高度与宽度","href":"/docs/height-and-width","docId":"height-and-width","unlisted":false},{"type":"link","label":"使用 Flexbox 布局","href":"/docs/flexbox","docId":"flexbox","unlisted":false},{"type":"link","label":"图片","href":"/docs/images","docId":"images","unlisted":false},{"type":"link","label":"颜色","href":"/docs/colors","docId":"colors","unlisted":false},{"type":"category","label":"交互","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"处理触摸事件","href":"/docs/handling-touches","docId":"handling-touches","unlisted":false},{"type":"link","label":"使用导航器跳转页面","href":"/docs/navigation","docId":"navigation","unlisted":false},{"type":"link","label":"动画","href":"/docs/animations","docId":"animations","unlisted":false},{"type":"link","label":"手势响应系统","href":"/docs/gesture-responder-system","docId":"gesture-responder-system","unlisted":false}]},{"type":"category","label":"网络连接","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"访问网络","href":"/docs/network","docId":"network","unlisted":false},{"type":"link","label":"网络安全策略","href":"/docs/security","docId":"security","unlisted":false}]},{"type":"category","label":"包容性","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"无障碍功能","href":"/docs/accessibility","docId":"accessibility","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"调试","items":[{"type":"link","label":"调试","href":"/docs/debugging","docId":"debugging","unlisted":false},{"type":"link","label":"React Native 开发者工具","href":"/docs/react-native-devtools","docId":"react-native-devtools","unlisted":false},{"type":"link","label":"调试原生代码","href":"/docs/debugging-native-code","docId":"debugging-native-code","unlisted":false},{"type":"link","label":"调试发行版本","href":"/docs/debugging-release-builds","docId":"debugging-release-builds","unlisted":false},{"type":"link","label":"其他调试方法","href":"/docs/other-debugging-methods","docId":"other-debugging-methods","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"测试","items":[{"type":"link","label":"Testing","href":"/docs/testing-overview","docId":"testing-overview","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"性能调优","items":[{"type":"link","label":"性能综述","href":"/docs/performance","docId":"performance","unlisted":false},{"type":"link","label":"优化编译速度","href":"/docs/build-speed","docId":"build-speed","unlisted":false},{"type":"link","label":"列表配置优化","href":"/docs/optimizing-flatlist-configuration","docId":"optimizing-flatlist-configuration","unlisted":false},{"type":"link","label":"Optimizing JavaScript loading","href":"/docs/optimizing-javascript-loading","docId":"optimizing-javascript-loading","unlisted":false},{"type":"link","label":"Profiling","href":"/docs/profiling","docId":"profiling","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"JavaScript 运行环境","items":[{"type":"link","label":"JavaScript 环境","href":"/docs/javascript-environment","docId":"javascript-environment","unlisted":false},{"type":"link","label":"定时器","href":"/docs/timers","docId":"timers","unlisted":false},{"type":"link","label":"使用新的 Hermes 引擎","href":"/docs/hermes","docId":"hermes","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Codegen","items":[{"type":"link","label":"什么是 Codegen?","href":"/docs/the-new-architecture/what-is-codegen","docId":"the-new-architecture/what-is-codegen","unlisted":false},{"type":"link","label":"使用 Codegen","href":"/docs/the-new-architecture/using-codegen","docId":"the-new-architecture/using-codegen","unlisted":false},{"type":"link","label":"Codegen 命令行工具","href":"/docs/the-new-architecture/codegen-cli","docId":"the-new-architecture/codegen-cli","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"原生开发","items":[{"type":"link","label":"桥接原生平台能力","href":"/docs/native-platform","docId":"native-platform","unlisted":false},{"type":"category","label":"原生模块","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Turbo 原生模块介绍","href":"/docs/turbo-native-modules-introduction","docId":"turbo-native-modules-introduction","unlisted":false},{"type":"link","label":"纯 C++ Turbo 原生模块","href":"/docs/the-new-architecture/pure-cxx-modules","docId":"the-new-architecture/pure-cxx-modules","unlisted":false},{"type":"link","label":"高级:自定义 C++ 类型","href":"/docs/the-new-architecture/custom-cxx-types","docId":"the-new-architecture/custom-cxx-types","unlisted":false}]},{"type":"category","label":"原生 UI 组件","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Fabric Native Components Introduction","href":"/docs/fabric-native-components-introduction","docId":"fabric-native-components-introduction","unlisted":false}]},{"type":"category","label":"其他","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"appendix","href":"/docs/appendix","docId":"appendix","unlisted":false},{"type":"link","label":"创建模块库","href":"/docs/the-new-architecture/create-module-library","docId":"the-new-architecture/create-module-library","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"Android 与 iOS 指南","items":[{"type":"category","label":"Android","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Headless JS(后台任务)","href":"/docs/headless-js-android","docId":"headless-js-android","unlisted":false},{"type":"link","label":"打包发布","href":"/docs/signed-apk-android","docId":"signed-apk-android","unlisted":false},{"type":"link","label":"和原生端通信","href":"/docs/communication-android","docId":"communication-android","unlisted":false},{"type":"link","label":"React Native Gradle Plugin","href":"/docs/react-native-gradle-plugin","docId":"react-native-gradle-plugin","unlisted":false}]},{"type":"category","label":"iOS","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"链接原生库","href":"/docs/linking-libraries-ios","docId":"linking-libraries-ios","unlisted":false},{"type":"link","label":"在iOS模拟器上运行","href":"/docs/running-on-simulator-ios","docId":"running-on-simulator-ios","unlisted":false},{"type":"link","label":"和原生端通信","href":"/docs/communication-ios","docId":"communication-ios","unlisted":false},{"type":"link","label":"iOS 应用小组件","href":"/docs/app-extensions","docId":"app-extensions","unlisted":false},{"type":"link","label":"上架 App Store","href":"/docs/publishing-to-app-store","docId":"publishing-to-app-store","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"旧架构","items":[{"type":"category","label":"原生模块(旧架构)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"原生模块简介","href":"/docs/legacy/native-modules-intro","docId":"legacy/native-modules-intro","unlisted":false},{"type":"link","label":"Android 原生模块","href":"/docs/legacy/native-modules-android","docId":"legacy/native-modules-android","unlisted":false},{"type":"link","label":"iOS 原生模块","href":"/docs/legacy/native-modules-ios","docId":"legacy/native-modules-ios","unlisted":false},{"type":"link","label":"Native Modules NPM Package Setup","href":"/docs/legacy/native-modules-setup","docId":"legacy/native-modules-setup","unlisted":false},{"type":"link","label":"Local libraries setup","href":"/docs/legacy/local-library-setup","docId":"legacy/local-library-setup","unlisted":false}]},{"type":"category","label":"原生 UI 组件(旧架构)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Android 原生UI组件","href":"/docs/legacy/native-components-android","docId":"legacy/native-components-android","unlisted":false},{"type":"link","label":"iOS 原生UI组件","href":"/docs/legacy/native-components-ios","docId":"legacy/native-components-ios","unlisted":false},{"type":"link","label":"直接操作","href":"/docs/legacy/direct-manipulation","docId":"legacy/direct-manipulation","unlisted":false}]}],"collapsed":true,"collapsible":true}],"api":[{"type":"category","label":"APIs","items":[{"type":"link","label":"AccessibilityInfo","href":"/docs/accessibilityinfo","docId":"accessibilityinfo","unlisted":false},{"type":"link","label":"Alert","href":"/docs/alert","docId":"alert","unlisted":false},{"type":"link","label":"Animated","href":"/docs/animated","docId":"animated","unlisted":false},{"type":"link","label":"Animated.Value","href":"/docs/animatedvalue","docId":"animatedvalue","unlisted":false},{"type":"link","label":"Animated.ValueXY","href":"/docs/animatedvaluexy","docId":"animatedvaluexy","unlisted":false},{"type":"link","label":"Appearance","href":"/docs/appearance","docId":"appearance","unlisted":false},{"type":"link","label":"AppRegistry","href":"/docs/appregistry","docId":"appregistry","unlisted":false},{"type":"link","label":"AppState","href":"/docs/appstate","docId":"appstate","unlisted":false},{"type":"link","label":"DevSettings","href":"/docs/devsettings","docId":"devsettings","unlisted":false},{"type":"link","label":"Dimensions","href":"/docs/dimensions","docId":"dimensions","unlisted":false},{"type":"link","label":"Easing","href":"/docs/easing","docId":"easing","unlisted":false},{"type":"link","label":"InteractionManager","href":"/docs/interactionmanager","docId":"interactionmanager","unlisted":false},{"type":"link","label":"Keyboard","href":"/docs/keyboard","docId":"keyboard","unlisted":false},{"type":"link","label":"LayoutAnimation","href":"/docs/layoutanimation","docId":"layoutanimation","unlisted":false},{"type":"link","label":"Linking","href":"/docs/linking","docId":"linking","unlisted":false},{"type":"link","label":"PanResponder","href":"/docs/panresponder","docId":"panresponder","unlisted":false},{"type":"link","label":"PixelRatio","href":"/docs/pixelratio","docId":"pixelratio","unlisted":false},{"type":"link","label":"Platform","href":"/docs/platform","docId":"platform","unlisted":false},{"type":"link","label":"PlatformColor","href":"/docs/platformcolor","docId":"platformcolor","unlisted":false},{"type":"link","label":"RootTag","href":"/docs/roottag","docId":"roottag","unlisted":false},{"type":"link","label":"Share","href":"/docs/share","docId":"share","unlisted":false},{"type":"link","label":"StyleSheet","href":"/docs/stylesheet","docId":"stylesheet","unlisted":false},{"type":"link","label":"Systrace","href":"/docs/systrace","docId":"systrace","unlisted":false},{"type":"link","label":"变换(Transform)","href":"/docs/transforms","docId":"transforms","unlisted":false},{"type":"link","label":"Vibration","href":"/docs/vibration","docId":"vibration","unlisted":false},{"type":"category","label":"Hooks","collapsed":false,"items":[{"type":"link","label":"useColorScheme","href":"/docs/usecolorscheme","docId":"usecolorscheme","unlisted":false},{"type":"link","label":"useWindowDimensions","href":"/docs/usewindowdimensions","docId":"usewindowdimensions","unlisted":false}],"collapsible":true},{"type":"category","label":"Android API","collapsed":false,"items":[{"type":"link","label":"BackHandler","href":"/docs/backhandler","docId":"backhandler","unlisted":false},{"type":"link","label":"PermissionsAndroid","href":"/docs/permissionsandroid","docId":"permissionsandroid","unlisted":false},{"type":"link","label":"ToastAndroid","href":"/docs/toastandroid","docId":"toastandroid","unlisted":false}],"collapsible":true},{"type":"category","label":"iOS API","collapsed":false,"items":[{"type":"link","label":"ActionSheetIOS","href":"/docs/actionsheetios","docId":"actionsheetios","unlisted":false},{"type":"link","label":"DynamicColorIOS","href":"/docs/dynamiccolorios","docId":"dynamiccolorios","unlisted":false},{"type":"link","label":"Settings","href":"/docs/settings","docId":"settings","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true}],"组件":[{"type":"category","label":"核心组件","items":[{"type":"link","label":"核心组件和API","href":"/docs/components-and-apis","docId":"components-and-apis","unlisted":false},{"type":"link","label":"ActivityIndicator","href":"/docs/activityindicator","docId":"activityindicator","unlisted":false},{"type":"link","label":"Button","href":"/docs/button","docId":"button","unlisted":false},{"type":"link","label":"FlatList","href":"/docs/flatlist","docId":"flatlist","unlisted":false},{"type":"link","label":"Image","href":"/docs/image","docId":"image","unlisted":false},{"type":"link","label":"ImageBackground","href":"/docs/imagebackground","docId":"imagebackground","unlisted":false},{"type":"link","label":"KeyboardAvoidingView","href":"/docs/keyboardavoidingview","docId":"keyboardavoidingview","unlisted":false},{"type":"link","label":"Modal","href":"/docs/modal","docId":"modal","unlisted":false},{"type":"link","label":"Pressable","href":"/docs/pressable","docId":"pressable","unlisted":false},{"type":"link","label":"RefreshControl","href":"/docs/refreshcontrol","docId":"refreshcontrol","unlisted":false},{"type":"link","label":"ScrollView","href":"/docs/scrollview","docId":"scrollview","unlisted":false},{"type":"link","label":"SectionList","href":"/docs/sectionlist","docId":"sectionlist","unlisted":false},{"type":"link","label":"StatusBar","href":"/docs/statusbar","docId":"statusbar","unlisted":false},{"type":"link","label":"Switch","href":"/docs/switch","docId":"switch","unlisted":false},{"type":"link","label":"Text","href":"/docs/text","docId":"text","unlisted":false},{"type":"link","label":"TextInput","href":"/docs/textinput","docId":"textinput","unlisted":false},{"type":"link","label":"TouchableHighlight","href":"/docs/touchablehighlight","docId":"touchablehighlight","unlisted":false},{"type":"link","label":"TouchableOpacity","href":"/docs/touchableopacity","docId":"touchableopacity","unlisted":false},{"type":"link","label":"TouchableWithoutFeedback","href":"/docs/touchablewithoutfeedback","docId":"touchablewithoutfeedback","unlisted":false},{"type":"link","label":"View","href":"/docs/view","docId":"view","unlisted":false},{"type":"link","label":"VirtualizedList","href":"/docs/virtualizedlist","docId":"virtualizedlist","unlisted":false},{"type":"category","label":"Android 组件","collapsed":false,"items":[{"type":"link","label":"DrawerLayoutAndroid","href":"/docs/drawerlayoutandroid","docId":"drawerlayoutandroid","unlisted":false},{"type":"link","label":"TouchableNativeFeedback","href":"/docs/touchablenativefeedback","docId":"touchablenativefeedback","unlisted":false}],"collapsible":true},{"type":"category","label":"iOS 组件","collapsed":false,"items":[{"type":"link","label":"InputAccessoryView","href":"/docs/inputaccessoryview","docId":"inputaccessoryview","unlisted":false},{"type":"link","label":"SafeAreaView","href":"/docs/safeareaview","docId":"safeareaview","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Props","items":[{"type":"link","label":"图片样式属性","href":"/docs/image-style-props","docId":"image-style-props","unlisted":false},{"type":"link","label":"布局属性","href":"/docs/layout-props","docId":"layout-props","unlisted":false},{"type":"link","label":"阴影样式属性","href":"/docs/shadow-props","docId":"shadow-props","unlisted":false},{"type":"link","label":"Text 样式属性","href":"/docs/text-style-props","docId":"text-style-props","unlisted":false},{"type":"link","label":"View 样式属性","href":"/docs/view-style-props","docId":"view-style-props","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"内部对象类型","items":[{"type":"link","label":"布局事件对象","href":"/docs/layoutevent","docId":"layoutevent","unlisted":false},{"type":"link","label":"点击事件对象","href":"/docs/pressevent","docId":"pressevent","unlisted":false},{"type":"link","label":"React 节点对象","href":"/docs/react-node","docId":"react-node","unlisted":false},{"type":"link","label":"矩形区域对象","href":"/docs/rect","docId":"rect","unlisted":false},{"type":"link","label":"ViewToken 对象","href":"/docs/viewtoken","docId":"viewtoken","unlisted":false}],"collapsed":true,"collapsible":true}]},"docs":{"accessibility":{"id":"accessibility","title":"无障碍功能","description":"译注:accessibility 一词常见多种译法:可访问性、无障碍性、辅助功能等等,其中文意思都不太能准确表达其功能的本质——即为残障人士提供便利。本文主要采用“无障碍功能”和“辅助技术/服务”的说法。如果你或你的公司暂时没有资源和精力去服务这些用户,那么你可以跳过本文。但是,译者个人希望借本文档,呼吁有能力有资源的商业公司/组织/个人,重视残障人士使用智能手机的权利。","sidebar":"docs"},"accessibilityinfo":{"id":"accessibilityinfo","title":"AccessibilityInfo","description":"有时候我们希望知道用户的设备是否正在运行读屏应用。AccessibilityInfo正是用于此目的。你可以用它来查询读屏应用的当前状态,并且可以监听其状态变化。","sidebar":"api"},"actionsheetios":{"id":"actionsheetios","title":"ActionSheetIOS","description":"显示一个 iOS 原生的Action Sheet组件。","sidebar":"api"},"activityindicator":{"id":"activityindicator","title":"ActivityIndicator","description":"显示一个圆形的 loading 提示符号。","sidebar":"组件"},"alert":{"id":"alert","title":"Alert","description":"启动一个提示对话框,包含对应的标题和信息。","sidebar":"api"},"alertios":{"id":"alertios","title":"AlertIOS","description":"AlertIOS用于弹出一个 iOS 提示对话框,可以通知用户一些信息或是提示用户输入一些文字。"},"animated":{"id":"animated","title":"Animated","description":"Animated库旨在使动画变得流畅,强大并易于构建和维护。Animated侧重于输入和输出之间的声明性关系,以及两者之间的可配置变换,此外还提供了简单的 start/stop方法来控制基于时间的动画执行。","sidebar":"api"},"animatedvalue":{"id":"animatedvalue","title":"Animated.Value","description":"驱动动画的一维标量值. 一个Animated.Value可以同步地驱动多个属性,但每次只能以一种动画机制变化。如果改用了其他动画机制(例如开始一个新的动画或是调用setValue),则会停止先前的动画。","sidebar":"api"},"animatedvaluexy":{"id":"animatedvaluexy","title":"Animated.ValueXY","description":"2D 值用于驱动 2D 动画,例如平移手势。与普通的Animated.Value几乎相同的 API,但是可以多路复用。在内部包含两个常规的Animated.Value。","sidebar":"api"},"animations":{"id":"animations","title":"动画","description":"流畅、有意义的动画对于移动应用用户体验来说是非常重要的。现实生活中的物体在开始移动和停下来的时候都具有一定的惯性,我们在界面中也可以使用动画来实现契合物理规律的交互。","sidebar":"docs"},"app-extensions":{"id":"app-extensions","title":"iOS 应用小组件","description":"小组件允许您在主要应用程序之外提供自定义功能和内容。iOS上有不同类型的应用小组件,它们都在App Extension编程指南中进行了介绍。在本指南中,我们将简要介绍如何在iOS上利用应用小组件的优势。","sidebar":"docs"},"appearance":{"id":"appearance","title":"Appearance","description":"Appearance 模块提供了关于用户外观偏好的信息,例如他们喜欢的颜色方案(明亮或暗黑)。","sidebar":"api"},"appendix":{"id":"appendix","title":"appendix","description":"一、术语","sidebar":"docs"},"appregistry":{"id":"appregistry","title":"AppRegistry","description":"仅适用于非沙盒项目","sidebar":"api"},"appstate":{"id":"appstate","title":"AppState","description":"AppState能告诉你应用当前是在前台还是在后台,并且能在状态变化的时候通知你。","sidebar":"api"},"architecture-glossary":{"id":"architecture-glossary","title":"术语表","description":"Fabric 渲染器(Fabric Renderer)"},"architecture-overview":{"id":"architecture-overview","title":"架构概览","description":"本文档还在持续更新中,会从概念上介绍 React Native 新架构是如何工作的。目标读者包括生态库的开发者、核心贡献者和特别有好奇心的人。"},"asyncstorage":{"id":"asyncstorage","title":"🚧 AsyncStorage","description":"已过时。 Use one of the community packages instead."},"backhandler":{"id":"backhandler","title":"BackHandler","description":"BackHandler API 用于监听设备上的后退按钮事件,可以调用你自己的函数来处理后退行为。此 API 仅能在 Android 上使用。","sidebar":"api"},"build-speed":{"id":"build-speed","title":"优化编译速度","description":"构建 React Native 应用可能会非常昂贵,并且需要开发人员花费数分钟的时间。","sidebar":"docs"},"building-for-tv":{"id":"building-for-tv","title":"为电视和机顶盒制作应用","description":"目前的 React Native 应用只需在 JavaScript 端简单修改甚至无需修改,在电视和机顶盒设备上就基本可用了。","sidebar":"docs"},"button":{"id":"button","title":"Button","description":"一个简单的跨平台的按钮组件。可以进行一些简单的定制。","sidebar":"组件"},"checkbox":{"id":"checkbox","title":"🚧 CheckBox","description":"Removed. Use one of the community packages instead."},"clipboard":{"id":"clipboard","title":"🚧 Clipboard","description":"Deprecated. Use one of the community packages instead."},"colors":{"id":"colors","title":"颜色","description":"React Native 中的组件是使用 JavaScript 进行样式化的。颜色属性通常与 Web 上的 CSS 工作方式相匹配。每个平台上关于颜色使用的一般指南如下:","sidebar":"docs"},"communication-android":{"id":"communication-android","title":"和原生端通信","description":"通过植入原生应用和原生 UI 组件两篇文档,我们学习了 React Native 和原生组件的互相整合。在整合的过程中,我们会需要在两个世界间互相通信。有些方法已经在其他的指南中提到了,这篇文章总结了所有可行的技术。","sidebar":"docs"},"communication-ios":{"id":"communication-ios","title":"和原生端通信","description":"通过植入原生应用和原生 UI 组件两篇文档,我们学习了 React Native 和原生组件的互相整合。在整合的过程中,我们会需要在两个世界间互相通信。有些方法已经在其他的指南中提到了,这篇文章总结了所有可行的技术。","sidebar":"docs"},"components-and-apis":{"id":"components-and-apis","title":"核心组件和API","description":"React Native 提供了一些内置的核心组件供你使用。你可以在网站的左侧看到组件的完整列表。如果你不知道从哪看起,那么可以先看一下下面这个简单的分类:","sidebar":"组件"},"custom-webview-android":{"id":"custom-webview-android","title":"Custom WebView","description":"While the built-in web view has a lot of features, it is not possible to handle every use-case in React Native. You can, however, extend the web view with native code without forking React Native or duplicating all the existing web view code."},"custom-webview-ios":{"id":"custom-webview-ios","title":"Custom WebView","description":"While the built-in web view has a lot of features, it is not possible to handle every use-case in React Native. You can, however, extend the web view with native code without forking React Native or duplicating all the existing web view code."},"datepickerandroid":{"id":"datepickerandroid","title":"🚧 DatePickerAndroid","description":"Deprecated. Use one of the community packages instead."},"datepickerios":{"id":"datepickerios","title":"🚧 DatePickerIOS","description":"Deprecated. Use one of the community packages instead."},"debugging":{"id":"debugging","title":"调试","description":"访问 App 内的开发菜单","sidebar":"docs"},"debugging-native-code":{"id":"debugging-native-code","title":"调试原生代码","description":"Projects with Native Code Only","sidebar":"docs"},"debugging-release-builds":{"id":"debugging-release-builds","title":"调试发行版本","description":"符号化堆栈跟踪","sidebar":"docs"},"devsettings":{"id":"devsettings","title":"DevSettings","description":"DevSettings 模块可以对开发者菜单进行一些自定义。","sidebar":"api"},"dimensions":{"id":"dimensions","title":"Dimensions","description":"本模块用于获取设备屏幕的宽高。","sidebar":"api"},"drawerlayoutandroid":{"id":"drawerlayoutandroid","title":"DrawerLayoutAndroid","description":"封装了 Android 平台DrawerLayout的 React 组件。抽屉(通常用于导航切换)是通过renderNavigationView方法渲染的,并且 DrawerLayoutAndroid 的直接子视图会成为主视图(用于放置内容)。导航视图一开始在屏幕上并不可见,不过可以从drawerPosition指定的窗口侧面拖拽出来,并且抽屉的宽度可以使用drawerWidth属性来指定。","sidebar":"组件"},"dynamiccolorios":{"id":"dynamiccolorios","title":"DynamicColorIOS","description":"DynamicColorIOS函数是专门针对iOS平台的颜色类型。","sidebar":"api"},"easing":{"id":"easing","title":"Easing","description":"Easing模块实现了常见的动画缓动函数。 这个模块被Animated.timing()用于在动画中传达真实可信的运动。","sidebar":"api"},"environment-setup":{"id":"environment-setup","title":"搭建开发环境","description":"欢迎使用 React Native!这篇文档会帮助你搭建基本的 React Native 开发环境。","sidebar":"docs"},"fabric-native-components-android":{"id":"fabric-native-components-android","title":"Fabric Native Modules: Android","description":"现在,是时候编写一些 Android 平台代码,以便能够渲染 web 视图。以下是需要的步骤:"},"fabric-native-components-introduction":{"id":"fabric-native-components-introduction","title":"Fabric Native Components Introduction","description":"如果你想构建一个 新架构 的 React Native 组件,该组件可以包装一个 Host Component,例如 Android 上的 CheckBox,或者 iOS 上的 UIButton,你应该使用 Fabric 原生组件。","sidebar":"docs"},"fabric-native-components-ios":{"id":"fabric-native-components-ios","title":"Fabric Native Components: iOS","description":"现在,是时候编写一些 iOS 平台代码,以便能够渲染 web 视图。以下是需要的步骤:"},"fabric-renderer":{"id":"fabric-renderer","title":"Fabric 渲染器","description":"Fabric 是 React Native 新架构的渲染系统,是从老架构的渲染系统演变而来的。核心原理是在 C++ 层统一更多的渲染逻辑,提升与宿主平台(host platforms)互操作性,并为 React Native 解锁更多能力。其研发始于 2018 年。从 2021 年开始, Facebook App 中的 React Native 启用了新的渲染器。"},"fast-refresh":{"id":"fast-refresh","title":"快速刷新","description":"快速刷新是 React Native 一个特性,在修改组件的时候快速刷新会给你一个即时的反馈。快速刷新默认是开启的,可以通过调整 React Native 开发者菜单里面的 \\"Enable Fast Refresh\\" 来开启或关闭。在快速刷新开启的时候,大多数的修改能在一到两秒之内呈现。","sidebar":"docs"},"flatlist":{"id":"flatlist","title":"FlatList","description":"高性能的简单列表组件,支持下面这些常用的功能:","sidebar":"组件"},"flexbox":{"id":"flexbox","title":"使用 Flexbox 布局","description":"我们在 React Native 中使用 flexbox 规则来指定某个组件的子元素的布局。Flexbox 可以在不同屏幕尺寸上提供一致的布局结构。","sidebar":"docs"},"gesture-responder-system":{"id":"gesture-responder-system","title":"手势响应系统","description":"移动设备上的手势识别要比在 web 上复杂得多。用户的一次触摸操作的真实意图是什么,App 要经过好几个阶段才能判断。比如 App 需要判断用户的触摸到底是在滚动页面,还是滑动一个 widget,或者只是一个单纯的点击。甚至随着持续时间的不同,这些操作还会转化。此外,还有多点同时触控的情况。","sidebar":"docs"},"getting-started":{"id":"getting-started","title":"简介","description":"欢迎开启 React Native 的旅程!如果你在找如何搭建环境的文档,请移步搭建开发环境。 继续往下阅读可了解关于文档结构、原生组件、React等相关的一些介绍。","sidebar":"docs"},"handling-text-input":{"id":"handling-text-input","title":"处理文本输入","description":"TextInput是一个允许用户输入文本的基础组件。它有一个名为onChangeText的属性,此属性接受一个函数,而此函数会在文本变化时被调用。另外还有一个名为onSubmitEditing的属性,会在文本被提交后(用户按下软键盘上的提交键)调用。","sidebar":"docs"},"handling-touches":{"id":"handling-touches","title":"处理触摸事件","description":"移动应用上的用户交互基本靠“摸”。当然,“摸”也是有各种姿势的:在一个按钮上点击,在一个列表上滑动,或是在一个地图上缩放。React Native 提供了可以处理常见触摸手势(例如点击或滑动)的组件, 以及可用于识别更复杂的手势的完整的手势响应系统。","sidebar":"docs"},"headless-js-android":{"id":"headless-js-android","title":"Headless JS(后台任务)","description":"Headless JS 是一种使用 js 在后台执行任务的方法。它可以用来在后台同步数据、处理推送通知或是播放音乐等等。","sidebar":"docs"},"height-and-width":{"id":"height-and-width","title":"高度与宽度","description":"组件的高度和宽度决定了其在屏幕上显示的尺寸。","sidebar":"docs"},"hermes":{"id":"hermes","title":"使用新的 Hermes 引擎","description":"Hermes 是专门针对 React Native 应用而优化的全新开源 JavaScript 引擎。对于很多应用来说,启用 Hermes 引擎可以优化启动时间,减少内存占用以及空间占用。从 React Native 0.70 版本开始 Hermes 已经默认启用,无需开发者再做任何配置。","sidebar":"docs"},"image":{"id":"image","title":"Image","description":"用于显示多种不同类型图片的 React 组件,包括网络图片、静态资源、临时的本地图片、以及本地磁盘上的图片(如相册)等。","sidebar":"组件"},"image-style-props":{"id":"image-style-props","title":"图片样式属性","description":"示例","sidebar":"组件"},"imagebackground":{"id":"imagebackground","title":"ImageBackground","description":"对于熟悉 Web 开发的开发人员来说,background-image是一个常见的功能请求。为了处理这种情况,您可以使用`组件,它具有与`相同的属性,并且可以添加任何子元素以覆盖在其上面。","sidebar":"组件"},"imagepickerios":{"id":"imagepickerios","title":"🚧 ImagePickerIOS","description":"Deprecated. Use one of the community packages instead."},"images":{"id":"images","title":"图片","description":"静态图片资源","sidebar":"docs"},"improvingux":{"id":"improvingux","title":"改进用户体验","description":"配置文本输入"},"inputaccessoryview":{"id":"inputaccessoryview","title":"InputAccessoryView","description":"一个可以在iOS上自定义键盘输入辅助视图的组件。当TextInput获得焦点时,输入辅助视图显示在键盘上方。该组件可用于创建自定义工具栏。","sidebar":"组件"},"integration-with-android-fragment":{"id":"integration-with-android-fragment","title":"集成到 Android Fragment","description":"与现有应用程序集成指南中详细介绍了如何将全屏 React Native 应用程序作为 Activity 集成到现有 Android 应用程序中。要在现有应用程序的 Fragments 中使用 React Native 组件,需要进行一些额外的设置。这样做的好处是它允许原生应用程序将 React Native 组件与 Activity 中的原生 Fragments 集成在一起。","sidebar":"docs"},"integration-with-existing-apps":{"id":"integration-with-existing-apps","title":"集成到现有原生应用","description":"如果你正准备从头开始制作一个新的应用,那么 React Native 会是个非常好的选择。但如果你只想给现有的原生应用中添加一两个视图或是业务流程,React Native 也同样不在话下。只需简单几步,你就可以给原有应用加上新的基于 React Native 的特性、画面和视图等。","sidebar":"docs"},"interactionmanager":{"id":"interactionmanager","title":"InteractionManager","description":"Interactionmanager 可以将一些耗时较长的工作安排到所有互动或动画完成之后再进行。这样可以保证 JavaScript 动画的流畅运行。","sidebar":"api"},"intro-react":{"id":"intro-react","title":"React 基础","description":"要深入理解 React Native,需要扎实的React 基础知识。这篇小教程可以帮助你入门或者温习相关知识。","sidebar":"docs"},"intro-react-native-components":{"id":"intro-react-native-components","title":"核心组件与原生组件","description":"React Native 使用完全原生的组件来构建应用界面。尤其方便的是它已经内置了大量直接上手可用的核心组件。","sidebar":"docs"},"javascript-environment":{"id":"javascript-environment","title":"JavaScript 环境","description":"JavaScript 运行时环境","sidebar":"docs"},"keyboard":{"id":"keyboard","title":"Keyboard","description":"Keyboard模块用来控制键盘相关的事件。","sidebar":"api"},"keyboardavoidingview":{"id":"keyboardavoidingview","title":"KeyboardAvoidingView","description":"本组件用于解决一个常见的尴尬问题:手机上弹出的键盘常常会挡住当前的视图。本组件可以自动根据键盘的高度,调整自身的 height 或底部的 padding,以避免被遮挡。","sidebar":"组件"},"layout-props":{"id":"layout-props","title":"布局属性","description":"更多关于这些属性的详细示例可以在Flexbox 布局页面上找到。","sidebar":"组件"},"layoutanimation":{"id":"layoutanimation","title":"LayoutAnimation","description":"当布局变化时,自动将视图运动到它们新的位置上。","sidebar":"api"},"layoutevent":{"id":"layoutevent","title":"布局事件对象","description":"LayoutEvent object is returned in the callback as a result of component layout change, for example onLayout in View component.","sidebar":"组件"},"legacy/direct-manipulation":{"id":"legacy/direct-manipulation","title":"直接操作","description":"有时候我们需要直接改动组件并触发局部的刷新,但不使用 state 或是 props。譬如在浏览器中使用 React 库,有时候会需要直接修改一个 DOM 节点,而在手机 App 中操作 View 时也会碰到同样的情况。在 React Native 中,setNativeProps就是等价于直接操作 DOM 节点的方法。","sidebar":"docs"},"legacy/local-library-setup":{"id":"legacy/local-library-setup","title":"Local libraries setup","description":"A local library is a library containing views or modules that\'s local to your app and not published to a registry. This is different from the traditional setup for view and modules in the sense that a local library is decoupled from your app\'s native code.","sidebar":"docs"},"legacy/native-components-android":{"id":"legacy/native-components-android","title":"Android 原生UI组件","description":"在如今的 App 中,已经有成千上万的原生 UI 部件了——其中的一些是平台的一部分,另一些可能来自于一些第三方库,而且可能你自己还收藏了很多。React Native 已经封装了大部分最常见的组件,譬如ScrollView和TextInput,但不可能封装全部组件。而且,说不定你曾经为自己以前的 App 还封装过一些组件,React Native 肯定没法包含它们。幸运的是,在 React Naitve 应用程序中封装和植入已有的组件非常简单。","sidebar":"docs"},"legacy/native-components-ios":{"id":"legacy/native-components-ios","title":"iOS 原生UI组件","description":"在如今的 App 中,已经有成千上万的原生 UI 部件了——其中的一些是平台的一部分,另一些可能来自于一些第三方库,而且可能你自己还收藏了很多。React Native 已经封装了大部分最常见的组件,譬如ScrollView和TextInput,但不可能封装全部组件。而且,说不定你曾经为自己以前的 App 还封装过一些组件,React Native 肯定没法包含它们。幸运的是,在 React Naitve 应用程序中封装和植入已有的组件非常简单。","sidebar":"docs"},"legacy/native-modules-android":{"id":"legacy/native-modules-android","title":"Android 原生模块","description":"欢迎来到 Android 的原生模块。请先阅读 原生模块简介 以了解原生模块的基本概念。","sidebar":"docs"},"legacy/native-modules-intro":{"id":"legacy/native-modules-intro","title":"原生模块简介","description":"有时候 App 需要访问平台 API,但 React Native 可能还没有相应的模块包装;或者你需要复用一些 Java 代码,而不是用 Javascript 重新实现一遍;又或者你需要实现某些高性能的、多线程的代码,譬如图片处理、数据库、或者各种高级扩展等等。","sidebar":"docs"},"legacy/native-modules-ios":{"id":"legacy/native-modules-ios","title":"iOS 原生模块","description":"有时候 App 需要访问平台 API,但 React Native 可能还没有相应的模块封装;或者你需要复用 Objective-C、Swift 或 C++代码,而不是用 JavaScript 重新实现一遍;又或者你需要实现某些高性能、多线程的代码,譬如图片处理、数据库、或者各种高级扩展等等。","sidebar":"docs"},"legacy/native-modules-setup":{"id":"legacy/native-modules-setup","title":"Native Modules NPM Package Setup","description":"Native modules are usually distributed as npm packages, except that on top of the usual JavaScript they will include some native code per platform. To understand more about npm packages you may find this guide useful.","sidebar":"docs"},"libraries":{"id":"libraries","title":"使用第三方库","description":"This guide introduces React Native developers to finding, installing, and using third-party libraries in their apps.","sidebar":"docs"},"linking":{"id":"linking","title":"Linking","description":"Linking提供了一个通用的接口来与传入和传出的 App 链接进行交互。","sidebar":"api"},"linking-libraries-ios":{"id":"linking-libraries-ios","title":"链接原生库","description":"并不是所有的 APP 都需要使用全部的原生功能,包含支持全部特性的代码会增大应用的体积。但我们仍然希望能让你简单地根据自己的需求添加需要的特性。","sidebar":"docs"},"metro":{"id":"metro","title":"Metro","description":"React Native 使用Metro构建 JavaScript 代码和资源。","sidebar":"docs"},"modal":{"id":"modal","title":"Modal","description":"Modal 组件是一种简单的覆盖在其他视图之上显示内容的方式。","sidebar":"组件"},"more-resources":{"id":"more-resources","title":"其他参考资源","description":"如果你耐心的读完并理解了本网站上的所有文档,那么你应该已经可以编写一个像样的 React Native 应用了。但是 React Native 并不全是某一家公司的作品——它汇聚了成千上万开源社区开发者的智慧结晶。如果你想深入研究 React Native,那么建议不要错过下面这些参考资源。","sidebar":"docs"},"native-platform":{"id":"native-platform","title":"桥接原生平台能力","description":"你的应用可能需要访问 React Native 或社区维护的数百个 第三方库 中未直接提供的平台功能。也许你想要重用一些现有的 Objective-C、Swift、Java、Kotlin 或 C++ 代码。无论你的原因是什么,React Native 都提供了一组强大的 API 来连接你的原生代码和 JavaScript 应用代码。","sidebar":"docs"},"navigation":{"id":"navigation","title":"使用导航器跳转页面","description":"移动应用基本不会只由一个页面组成。管理多个页面的呈现、跳转的组件就是我们通常所说的导航器(navigator)。","sidebar":"docs"},"netinfo":{"id":"netinfo","title":"NetInfo","description":"已过时。 Use react-native-community/react-native-netinfo instead."},"network":{"id":"network","title":"访问网络","description":"很多移动应用都需要从远程地址中获取数据或资源。你可能需要给某个 REST API 发起 POST 请求以提交用户数据,又或者可能仅仅需要从某个服务器上获取一些静态内容——以下就是你会用到的东西。新手可以对照这个简短的视频教程加深理解。","sidebar":"docs"},"new-architecture-app-intro":{"id":"new-architecture-app-intro","title":"在应用中启用的预备工作","description":"在启用新架构之前,应先满足一些先决条件。"},"new-architecture-app-modules-ios":{"id":"new-architecture-app-modules-ios","title":"在 iOS 上启用 TurboModule","description":"Make sure your application meets all the prerequisites."},"new-architecture-app-renderer-android":{"id":"new-architecture-app-renderer-android","title":"在 Android 上启用 Fabric","description":"Make sure your application meets all the prerequisites."},"new-architecture-app-renderer-ios":{"id":"new-architecture-app-renderer-ios","title":"在 iOS 上启用 Fabric","description":"This section will go over how to enable the new renderer in your app. Make sure your application meets all the prerequisites."},"new-architecture-intro":{"id":"new-architecture-intro","title":"迁移到新架构","description":"此迁移指南旨在为React Native的库作者和应用程序开发者提供。它概述了您需要遵循的步骤,以在您的Android和iOS库和应用中使用由新的NativeModule系统(TurboModule)和新的渲染器(Fabric)组成的新架构。"},"new-architecture-library-android":{"id":"new-architecture-library-android","title":"在 Android 库中启用","description":"一旦您在先决条件中定义了本机模块的 JavaScript 规范,设置了 CodeGen 配置,并遵循了 Android/Gradle 设置,然后就可以将您的库迁移到新架构。以下是迁移所需的步骤。"},"new-architecture-library-intro":{"id":"new-architecture-library-intro","title":"在库中启用的预备工作","description":"The following steps will help ensure your modules and components are ready for the New Architecture."},"new-architecture-library-ios":{"id":"new-architecture-library-ios","title":"在 iOS 库中启用","description":"You have defined the JavaScript specs for your native modules as part of the prerequisites, and you are now ready to migrate your library to the New Architecture. Here are the steps you can follow to accomplish this."},"new-architecture-troubleshooting":{"id":"new-architecture-troubleshooting","title":"常见问题","description":"本页面会记录一些迁移到新架构时可能遇到的常见问题的解决方案。"},"new-architecture-turbo-modules":{"id":"new-architecture-turbo-modules","title":"新架构的原生模块(Turbo Module)","description":"If you\'ve worked with React Native, you may be familiar with the concept of Native Modules, which allow JavaScript and platform-native code to communicate over the React Native \\"bridge\\", which handles cross-platform serialization via JSON."},"optimizing-flatlist-configuration":{"id":"optimizing-flatlist-configuration","title":"列表配置优化","description":"术语定义","sidebar":"docs"},"optimizing-javascript-loading":{"id":"optimizing-javascript-loading","title":"Optimizing JavaScript loading","description":"解析和运行 JavaScript 代码需要内存和时间。因此,随着你的应用程序增长,通常将代码加载延迟到首次需要时是有用的。React Native 自带一些默认开启的标准优化,并且你可以在自己的代码中采用一些技术来帮助 React 更有效地加载你的应用程序。还有一些适合非常大应用程序的高级自动优化(它们也有自己的权衡)。","sidebar":"docs"},"other-debugging-methods":{"id":"other-debugging-methods","title":"其他调试方法","description":"此页面介绍了除 打开调试器 中描述的方法之外的其他 JavaScript 调试方法。如果你正在使用新创建的 React Native 或 Expo 应用,我们建议从那里开始。","sidebar":"docs"},"out-of-tree-platforms":{"id":"out-of-tree-platforms","title":"多平台支持","description":"React Native不仅适用于 Android 和 iOS - 还有社区支持的项目将其应用于其他平台,例如:","sidebar":"docs"},"panresponder":{"id":"panresponder","title":"PanResponder","description":"PanResponder类可以将多点触摸操作协调成一个手势。它使得一个单点触摸可以接受更多的触摸操作,也可以用于识别简单的多点触摸手势。","sidebar":"api"},"performance":{"id":"performance","title":"性能综述","description":"使用 React Native 替代基于 WebView 的框架来开发 App 的一个强有力的理由,就是为了使 App 可以达到每秒 60 帧(足够流畅),并且能有类似原生 App 的外观和手感。因此我们也尽可能地优化 React Native 去实现这一目标,使开发者能集中精力处理 App 的业务逻辑,而不用费心考虑性能。但是,总还是有一些地方有所欠缺,以及在某些场合 React Native 还不能够替你决定如何进行优化(用原生代码写也无法避免),因此人工的干预依然是必要的。","sidebar":"docs"},"permissionsandroid":{"id":"permissionsandroid","title":"PermissionsAndroid","description":"仅适用于非沙盒项目","sidebar":"api"},"pixelratio":{"id":"pixelratio","title":"PixelRatio","description":"PixelRatio 可以获取到设备的像素密度和字体缩放比。","sidebar":"api"},"platform":{"id":"platform","title":"Platform","description":"Example","sidebar":"api"},"platform-specific-code":{"id":"platform-specific-code","title":"特定平台代码","description":"在编写跨平台的应用时,我们肯定希望尽可能多地复用代码。但是总有些时候我们会碰到针对不同平台编写不同代码的需求。","sidebar":"docs"},"platformcolor":{"id":"platformcolor","title":"PlatformColor","description":"You can use the PlatformColor function to access native colors on the target platform by supplying the native color’s corresponding string value. You pass a string to the PlatformColor function and, provided it exists on that platform, it will return the corresponding native color, which you can apply in any part of your application.","sidebar":"api"},"pressable":{"id":"pressable","title":"Pressable","description":"Pressable 是一个核心组件的封装,它可以检测到任意子组件的不同阶段的按压交互情况。","sidebar":"组件"},"pressevent":{"id":"pressevent","title":"点击事件对象","description":"点击事件对象作为用户按压交互的结果在回调中返回,例如 Button 组件中的 onPress。","sidebar":"组件"},"profile-hermes":{"id":"profile-hermes","title":"在 Hermes 中进行性能分析","description":"你可以使用Hermes在 React Native 应用中可视化 JavaScript 的性能。Hermes 是一个小型且轻量的 JavaScript 引擎(你可以在这里阅读更多有关在 React Native 中使用它的信息)。Hermes 有助于提高应用性能,并且还提供了分析其运行的 JavaScript 性能的方式。"},"profiling":{"id":"profiling","title":"Profiling","description":"使用内置的性能分析器获取 JavaScript 线程和主线程并排的详细工作信息。从调试菜单中选择 Perf Monitor 即可访问它。","sidebar":"docs"},"progressbarandroid":{"id":"progressbarandroid","title":"🚧 ProgressBarAndroid","description":"已过时。 Use @react-native-community/progress-bar-android instead."},"progressviewios":{"id":"progressviewios","title":"🚧 ProgressViewIOS","description":"已过时。 Use @react-native-community/progress-view instead."},"props":{"id":"props","title":"Props(属性)","description":"大多数组件在创建时就可以使用各种参数来进行定制。用于定制的这些参数就称为props(属性)。"},"publishing-to-app-store":{"id":"publishing-to-app-store","title":"上架 App Store","description":"上架应用的过程和任何其它原生 iOS 应用一样,但有一些额外的注意事项要考虑。","sidebar":"docs"},"pushnotificationios":{"id":"pushnotificationios","title":"🚧 PushNotificationIOS","description":"已过时。 Use @react-native-community/push-notification-ios instead."},"ram-bundles-inline-requires":{"id":"ram-bundles-inline-requires","title":"RAM Bundles 和内联引用优化","description":"如果你有一个较为庞大的应用程序,你可能要考虑使用RAM(Random Access Modules,随机存取模块)格式的 bundle 和内联引用。这对于具有大量页面的应用程序是非常有用的,这些页面在应用程序的典型使用过程中可能不会被打开。通常对于启动后一段时间内不需要大量代码的应用程序来说是非常有用的。例如应用程序包含复杂的配置文件屏幕或较少使用的功能,但大多数会话只涉及访问应用程序的主屏幕更新。我们可以通过使用RAM格式来优化bundle的加载,并且内联引用这些功能和页面(当它们被实际使用时)。"},"react-18-and-react-native":{"id":"react-18-and-react-native","title":"React 18 与 React Native","description":"这个页面描述了如何在 React Native 的新架构中启用 React 18 版本。"},"react-native-devtools":{"id":"react-native-devtools","title":"React Native 开发者工具","description":"React Native DevTools 是我们新的调试体验,它对我们的调试堆栈进行了端到端的重新编写。它旨在比以前的调试方法更深入地集成,并且从根本上更可靠。","sidebar":"docs"},"react-native-gradle-plugin":{"id":"react-native-gradle-plugin","title":"React Native Gradle Plugin","description":"本指南描述了如何配置 React Native Gradle Plugin(通常称为 RNGP)来为 Android 构建 React Native 应用。","sidebar":"docs"},"react-node":{"id":"react-node","title":"React 节点对象","description":"React 节点对象有以下这些类型:","sidebar":"组件"},"rect":{"id":"rect","title":"矩形区域对象","description":"Rect 接受数值像素值来描述如何扩展矩形区域。这些值会被添加到原始区域的大小上以扩展它。","sidebar":"组件"},"rectorsize":{"id":"rectorsize","title":"RectOrSize Object Type","description":"RectOrSize接受数字像素值来描述如何扩展矩形区域。这些值会被添加到原始区域的大小上以扩展它。"},"refreshcontrol":{"id":"refreshcontrol","title":"RefreshControl","description":"这一组件可以用在 ScrollView 或 FlatList 内部,为其添加下拉刷新的功能。当 ScrollView 处于竖直方向的起点位置(scrollY: 0),此时下拉会触发一个onRefresh事件。","sidebar":"组件"},"removing-default-permissions":{"id":"removing-default-permissions","title":"移除不需要的权限","description":"默认情况下我们会给最终打包的 APK 加入一些权限申请,具体如下:"},"render-pipeline":{"id":"render-pipeline","title":"渲染,提交与挂载(渲染流水线)","description":"文档介绍了即将发布的新渲染器 Fabric 的架构。"},"roottag":{"id":"roottag","title":"RootTag","description":"RootTag 是用于标记 React Native 原生根视图层的不透明标识符(opaque identifier)。具体来说就是 ReactRootView(android) 或是 RCTRootView(iOS) 的实例 ID.","sidebar":"api"},"running-on-device":{"id":"running-on-device","title":"在设备上运行","description":"在真机上仔细测试 app 后再发布给用户总是不会错的。本文档将指导你通过必须的步骤在设备上运行 React Native app,为生产做准备。","sidebar":"docs"},"running-on-simulator-ios":{"id":"running-on-simulator-ios","title":"在iOS模拟器上运行","description":"启动模拟器","sidebar":"docs"},"safeareaview":{"id":"safeareaview","title":"SafeAreaView","description":"SafeAreaView的目的是在一个“安全”的可视区域内渲染内容。具体来说就是因为目前有 iPhone X 这样的带有“刘海”的全面屏设备,所以需要避免内容渲染到不可见的“刘海”范围内。本组件目前仅支持 iOS 设备以及 iOS 11 或更高版本。","sidebar":"组件"},"sample-application-movies":{"id":"sample-application-movies","title":"示例教程:电影列表","description":"简介"},"scrollview":{"id":"scrollview","title":"ScrollView","description":"一个封装了平台的 ScrollView(滚动视图)的组件,同时还集成了触摸锁定的“响应者”系统。","sidebar":"组件"},"sectionlist":{"id":"sectionlist","title":"SectionList","description":"高性能的分组(section)列表组件,支持下面这些常用的功能:","sidebar":"组件"},"security":{"id":"security","title":"网络安全策略","description":"开发应用时安全常常是一个被忽视的话题。的确,搭建一个完全无懈可击的软件是不可能的——我们还没有发明一个完全坚不可摧的锁(毕竟,银行金库已经足够坚固但仍然会被闯入)。然而,遭受恶意攻击或暴露安全漏洞的可能性与您愿意投入保护应用程序免受此类事件的努力成反比。尽管普通的挂锁可以被撬开,但它仍然比橱柜挂钩更难攻破!","sidebar":"docs"},"segmentedcontrolios":{"id":"segmentedcontrolios","title":"🚧 SegmentedControlIOS","description":"已过时。 Use @react-native-community/segmented-control instead."},"settings":{"id":"settings","title":"Settings","description":"Settings是对NSUserDefaults的封装。它是iOS平台上的一种持久的键值对存储。","sidebar":"api"},"shadow-props":{"id":"shadow-props","title":"阴影样式属性","description":"These properties are iOS only - for similar functionality on Android, use the elevation property.","sidebar":"组件"},"share":{"id":"share","title":"Share","description":"示例","sidebar":"api"},"signed-apk-android":{"id":"signed-apk-android","title":"打包发布","description":"Android 要求所有应用都有一个数字签名才会被允许安装在用户手机上,所以在把应用发布到应用市场之前,你需要先生成一个签名的 AAB 或 APK 包(Google Play 现在要求 AAB 格式,而国内的应用市场目前仅支持 APK 格式。但无论哪种格式,下面的签名步骤是一样的)。Android 开发者官网上的如何给你的应用签名文档描述了签名的细节。本指南旨在提供一个简化的签名和打包的操作步骤,不会涉及太多理论。","sidebar":"docs"},"slider":{"id":"slider","title":"🚧 Slider","description":"已过时。 Use @react-native-community/slider instead."},"speeding-ci-builds":{"id":"speeding-ci-builds","title":"优化 CI 构建","description":"You or your company may have set up a Continuous Integration (CI) environment to test your React Native application."},"state":{"id":"state","title":"State(状态)","description":"我们使用两种数据来控制一个组件:props和state。props是在父组件中指定,而且一经指定,在被指定的组件的生命周期中则不再改变。对于需要改变的数据,我们需要使用state。"},"statusbar":{"id":"statusbar","title":"StatusBar","description":"控制应用状态栏的组件。","sidebar":"组件"},"style":{"id":"style","title":"样式","description":"在 React Native 中,你并不需要学习什么特殊的语法来定义样式。我们仍然是使用 JavaScript 来写样式。所有的核心组件都接受名为style的属性。这些样式名基本上是遵循了 web 上的 CSS 的命名,只是按照 JS 的语法要求使用了驼峰命名法,例如将background-color改为backgroundColor。","sidebar":"docs"},"stylesheet":{"id":"stylesheet","title":"StyleSheet","description":"StyleSheet 提供了一种类似 CSS 样式表的抽象。","sidebar":"api"},"switch":{"id":"switch","title":"Switch","description":"跨平台通用的“开关”组件。","sidebar":"组件"},"symbolication":{"id":"symbolication","title":"Symbolicating a stack trace","description":"If a React Native app throws an unhandled exception in a release build, the output may be obfuscated and hard to read:"},"systrace":{"id":"systrace","title":"Systrace","description":"Systrace is a standard Android marker-based profiling tool (and is installed when you install the Android platform-tools package). Profiled code blocks are surrounded by start/end markers which are then visualized in a colorful chart format. Both the Android SDK and React Native framework provide standard markers that you can visualize.","sidebar":"api"},"testing-overview":{"id":"testing-overview","title":"Testing","description":"This guide introduces React Native developers to the key concepts behind testing, how to write good tests, and what kinds of tests you can incorporate into your workflow.","sidebar":"docs"},"text":{"id":"text","title":"Text","description":"一个用于显示文本的 React 组件,并且它也支持嵌套、样式,以及触摸处理。","sidebar":"组件"},"text-style-props":{"id":"text-style-props","title":"Text 样式属性","description":"示例","sidebar":"组件"},"textinput":{"id":"textinput","title":"TextInput","description":"TextInput 是一个允许用户在应用中通过键盘输入文本的基本组件。本组件的属性提供了多种特性的配置,譬如自动完成、自动大小写、占位文字,以及多种不同的键盘类型(如纯数字键盘)等等。","sidebar":"组件"},"the-new-architecture/backward-compatibility":{"id":"the-new-architecture/backward-compatibility","title":"向后兼容的意义","description":"创建一个向后兼容的模块很重要,这样可以实现在旧架构和新架构中都能工作的库。并不是所有用户都会立刻转到新架构,最好在他们使用旧架构时仍然保持兼容。"},"the-new-architecture/backward-compatibility-fabric-components":{"id":"the-new-architecture/backward-compatibility-fabric-components","title":"使 Fabric 组件与传统原生组件兼容","description":"创建向后兼容的 Fabric 原生组件需要了解如何创建传统的原生组件。要回忆这些概念,请查看此指南。"},"the-new-architecture/backward-compatibility-turbomodules":{"id":"the-new-architecture/backward-compatibility-turbomodules","title":"使 Turbo 模块与传统原生模块兼容","description":"创建向后兼容的 Turbo 原生模块需要了解如何创建传统的原生模块。要回忆这些概念,请查看此指南。"},"the-new-architecture/codegen-cli":{"id":"the-new-architecture/codegen-cli","title":"Codegen 命令行工具","description":"调用 Gradle 或手动调用脚本可能很难记住,并且需要很多步骤。","sidebar":"docs"},"the-new-architecture/create-module-library":{"id":"the-new-architecture/create-module-library","title":"创建模块库","description":"React Native 有一个丰富的生态系统库来解决常见问题。我们在 reactnative.directory 网站上收集 React Native 库,这是一个很好的资源,值得每个 React Native 开发者收藏。","sidebar":"docs"},"the-new-architecture/custom-cxx-types":{"id":"the-new-architecture/custom-cxx-types","title":"高级:自定义 C++ 类型","description":"本指南假设你熟悉 纯 C++ Turbo Native 模块 指南。它将在此基础上进行构建。","sidebar":"docs"},"the-new-architecture/cxx-custom-types":{"id":"the-new-architecture/cxx-custom-types","title":"支持自定义 C++ 类型","description":"默认情况下,C++ Turbo Native 模块支持大多数 std:: 标准类型的桥接功能。"},"the-new-architecture/cxx-cxxturbomodules":{"id":"the-new-architecture/cxx-cxxturbomodules","title":"C++ Turbo 原生模块","description":"本指南将向您展示如何仅使用 C++ 实现 Turbo 原生模块,以便与任何支持的平台(Android、iOS、macOS 或 Windows)共享相同的实现。"},"the-new-architecture/landing-page":{"id":"the-new-architecture/landing-page","title":"新架构介绍","description":"从 0.68 版本开始,React Native 提供了新架构,它为开发者提供了构建高性能和响应式应用的新功能。请访问\\"为何要设计新架构\\"来了解更多关于促使我们决定重新架构的原因,以及它提供的好处。"},"the-new-architecture/pillars":{"id":"the-new-architecture/pillars","title":"新架构的两大支柱","description":"新架构主要由两大支柱组成:"},"the-new-architecture/pillars-codegen":{"id":"the-new-architecture/pillars-codegen","title":"Codegen","description":"Codegen 不算是新架构的主要组成部分,它是一个帮助我们避免编写重复代码的工具。Codegen 并非必选项,您仍然可以手写它所生成的代码,但是使用它来生成脚手架代码可以帮您节省不少时间。"},"the-new-architecture/pillars-fabric-components":{"id":"the-new-architecture/pillars-fabric-components","title":"Fabric 组件","description":"Fabric 组件是一种使用 Fabric 渲染器渲染并展示在屏幕上的 UI 组件。在新架构中,使用 Fabric 组件替代原生组件具有以下优势:"},"the-new-architecture/pillars-turbomodules":{"id":"the-new-architecture/pillars-turbomodules","title":"TurboModules","description":"如果您使用过 React Native,您可能了解过 Native Modules 这个概念。它可以通过 React Native 的「Bridge」帮助 JavaScript 和原生代码进行交互,并使用跨平台的数据格式 JSON 进行通讯。"},"the-new-architecture/pure-cxx-modules":{"id":"the-new-architecture/pure-cxx-modules","title":"纯 C++ Turbo 原生模块","description":"编写 C++ 模块是跨 Android 和 iOS 共享平台无关代码的最佳方式。使用纯 C++ 模块,您只需编写一次逻辑,即可在所有平台上重用它,而无需编写平台特定的代码。","sidebar":"docs"},"the-new-architecture/use-app-template":{"id":"the-new-architecture/use-app-template","title":"创建启用新架构的应用","description":"本文档将帮助你从头创建一个启用了新架构的 React Native 应用。"},"the-new-architecture/using-codegen":{"id":"the-new-architecture/using-codegen","title":"使用 Codegen","description":"本指南将教你如何:","sidebar":"docs"},"the-new-architecture/what-is-codegen":{"id":"the-new-architecture/what-is-codegen","title":"什么是 Codegen?","description":"Codegen 是一个避免编写大量重复代码的工具。使用 Codegen 并不是必须的:您可以手动编写所有生成的代码。然而,Codegen 生成的脚手架代码可以节省您很多时间。","sidebar":"docs"},"the-new-architecture/why":{"id":"the-new-architecture/why","title":"为何要设计新架构","description":"新架构的目标是解决困扰旧架构在性能和灵活性方面的一些问题。本节提供了基本的背景,以了解旧架构的局限性,以及如何通过新架构来克服这些局限性。"},"threading-model":{"id":"threading-model","title":"线程模型","description":"文档介绍了即将发布的新渲染器 Fabric 的架构。"},"timepickerandroid":{"id":"timepickerandroid","title":"🚧 TimePickerAndroid","description":"已过时。 Use @react-native-community/datetimepicker instead."},"timers":{"id":"timers","title":"定时器","description":"定时器是一个应用中非常重要的部分。React Native 实现了和浏览器一致的定时器 Timer。","sidebar":"docs"},"toastandroid":{"id":"toastandroid","title":"ToastAndroid","description":"本模块将原生的 ToastAndroid 模块导出为一个 JS 模块,用于在 Android 设备上显示一个悬浮的提示信息。本模块包含一个show方法接受以下的参数:","sidebar":"api"},"touchablehighlight":{"id":"touchablehighlight","title":"TouchableHighlight","description":"我们建议使用Pressable组件,它更具扩展性且会是官方未来力推的主流。","sidebar":"组件"},"touchablenativefeedback":{"id":"touchablenativefeedback","title":"TouchableNativeFeedback","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"组件"},"touchableopacity":{"id":"touchableopacity","title":"TouchableOpacity","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"组件"},"touchablewithoutfeedback":{"id":"touchablewithoutfeedback","title":"TouchableWithoutFeedback","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"组件"},"transforms":{"id":"transforms","title":"变换(Transform)","description":"变换(Transform)是样式属性,可帮助您使用 2D 或 3D 变换修改组件的外观和位置。然而,即便使用了变换,使用变换的组件的布局并不会变化,因此可能会与附近的组件重叠。您可以对变换的组件、附近的组件应用边距,或对容器应用填充,以防止这种重叠。","sidebar":"api"},"troubleshooting":{"id":"troubleshooting","title":"Troubleshooting","description":"These are some common issues you may run into while setting up React Native. If you encounter something that is not listed here, try searching for the issue in GitHub."},"turbo-native-modules-android":{"id":"turbo-native-modules-android","title":"Turbo 原生模块:Android","description":"现在我们来编写一些 Android 平台代码,以确保 localStorage 在应用关闭后仍然可以持久保存数据。"},"turbo-native-modules-introduction":{"id":"turbo-native-modules-introduction","title":"Turbo 原生模块介绍","description":"你的 React Native 应用代码可能需要与 React Native 或现有库未提供的原生平台 API 进行交互。你可以使用 Turbo 原生模块 自己编写集成代码。本指南将向你展示如何编写一个。","sidebar":"docs"},"turbo-native-modules-ios":{"id":"turbo-native-modules-ios","title":"Turbo 原生模块:iOS","description":"现在我们来编写一些 iOS 平台代码,以确保 localStorage 在应用关闭后仍然可以持久保存数据。"},"tutorial":{"id":"tutorial","title":"示例教程:Hello World","description":"React Native 看起来很像 React,只不过其基础组件是原生组件而非 web 组件。要理解 React Native 应用的基本结构,首先需要了解一些基本的 React 的概念,比如 JSX 语法、组件、state状态以及props属性。如果你已经了解了 React,那么还需要掌握一些 React Native 特有的知识,比如原生组件的使用。这篇教程可以供任何基础的读者学习,不管你是否有 React 方面的经验。"},"typescript":{"id":"typescript","title":"使用 TypeScript","description":"TypeScript 是一种通过添加类型定义来扩展 JavaScript 的语言。新的 React Native 项目默认以 TypeScript 为目标,同时也支持 JavaScript 和 Flow。","sidebar":"docs"},"upgrading":{"id":"upgrading","title":"更新","description":"时刻将 React Native 更新到最新的版本,可以获得更多 API、视图、开发者工具以及其他一些好东西(译注:官方开发任务繁重,人手紧缺,几乎不会对旧版本提供维护支持,所以即便更新可能带来一些兼容上的变更,但建议开发者还是尽一切可能第一时间更新)。由于一个完整的 React Native 项目是由 Android 项目、iOS 项目和 JavaScript 项目组成的,且都打包在一个 npm 包中,所以升级可能会有一些麻烦。我们会尽量简化这一流程。你可以在项目目录下使用npx react-native info命令查看当前的版本。","sidebar":"docs"},"usecolorscheme":{"id":"usecolorscheme","title":"useColorScheme","description":"useColorScheme 这个React hook 提供并订阅来自Appearance模块的颜色方案更新。返回值表示当前用户首选的颜色方案。该值可以稍后通过直接用户动作(例如,设备设置中的主题选择)或根据时间表(例如,遵循白天/夜晚周期的亮主题和暗主题)来更新。","sidebar":"api"},"usewindowdimensions":{"id":"usewindowdimensions","title":"useWindowDimensions","description":"useWindowDimensions会在屏幕尺寸变化时自动更新获取到的设备width和height值。使用方法如下:","sidebar":"api"},"using-a-listview":{"id":"using-a-listview","title":"使用长列表","description":"React Native 提供了几个适用于展示长列表数据的组件,一般而言我们会选用FlatList或是SectionList。","sidebar":"docs"},"using-a-scrollview":{"id":"using-a-scrollview","title":"使用滚动视图","description":"ScrollView是一个通用的可滚动的容器,你可以在其中放入多个组件和视图,而且这些组件并不需要是同类型的。ScrollView 不仅可以垂直滚动,还能水平滚动(通过horizontal属性来设置)。","sidebar":"docs"},"vibration":{"id":"vibration","title":"Vibration","description":"使设备振动。","sidebar":"api"},"view":{"id":"view","title":"View","description":"作为创建 UI 时最基础的组件,View 是一个支持 Flexbox 布局、样式、触摸响应、和一些无障碍功能的容器。不论在什么平台上,View 都直接对应当前平台的原生视图,无论它是 UIView、div 还是 android.view.View。","sidebar":"组件"},"view-flattening":{"id":"view-flattening","title":"视图拍平","description":"This document refers to the architecture of the new renderer, Fabric, that is in active roll-out."},"view-style-props":{"id":"view-style-props","title":"View 样式属性","description":"示例","sidebar":"组件"},"viewpagerandroid":{"id":"viewpagerandroid","title":"🚧 ViewPagerAndroid","description":"已过时。 Use @react-native-community/viewpager instead."},"viewtoken":{"id":"viewtoken","title":"ViewToken 对象","description":"ViewToken object is returned as one of properties in the onViewableItemsChanged callback, for example in FlatList component. It is exported by ViewabilityHelper.js.","sidebar":"组件"},"virtualizedlist":{"id":"virtualizedlist","title":"VirtualizedList","description":"FlatList和SectionList的底层实现。FlatList 和 SectionList 使用起来更方便,同时也有相对更详细的文档。一般来说,仅当想获得比 FlatList 更高的灵活性(比如说在使用 immutable data 而不是 普通数组)的时候,你才应该考虑使用 VirtualizedList。","sidebar":"组件"},"xplat-implementation":{"id":"xplat-implementation","title":"跨平台的实现","description":"This document refers to the architecture of the new renderer, Fabric, that is in active roll-out."}}}}'); - -/***/ }) - -}; -; \ No newline at end of file diff --git a/assets/js/0058b4c6.f8efbbe3.js b/assets/js/0058b4c6.f8efbbe3.js deleted file mode 100644 index 2457012e90b..00000000000 --- a/assets/js/0058b4c6.f8efbbe3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[90849],{86164:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"0.76","label":"0.76","banner":null,"badge":false,"noIndex":false,"className":"docs-version-0.76","isLast":true,"docsSidebars":{"docs":[{"type":"category","label":"\u5165\u95e8\u57fa\u7840","items":[{"type":"link","label":"\u7b80\u4ecb","href":"/docs/getting-started","docId":"getting-started","unlisted":false},{"type":"link","label":"\u6838\u5fc3\u7ec4\u4ef6\u4e0e\u539f\u751f\u7ec4\u4ef6","href":"/docs/intro-react-native-components","docId":"intro-react-native-components","unlisted":false},{"type":"link","label":"React \u57fa\u7840","href":"/docs/intro-react","docId":"intro-react","unlisted":false},{"type":"link","label":"\u5904\u7406\u6587\u672c\u8f93\u5165","href":"/docs/handling-text-input","docId":"handling-text-input","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u6eda\u52a8\u89c6\u56fe","href":"/docs/using-a-scrollview","docId":"using-a-scrollview","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u957f\u5217\u8868","href":"/docs/using-a-listview","docId":"using-a-listview","unlisted":false},{"type":"link","label":"\u7279\u5b9a\u5e73\u53f0\u4ee3\u7801","href":"/docs/platform-specific-code","docId":"platform-specific-code","unlisted":false},{"type":"link","label":"\u5176\u4ed6\u53c2\u8003\u8d44\u6e90","href":"/docs/more-resources","docId":"more-resources","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u73af\u5883\u642d\u5efa","items":[{"type":"link","label":"\u642d\u5efa\u5f00\u53d1\u73af\u5883","href":"/docs/environment-setup","docId":"environment-setup","unlisted":false},{"type":"link","label":"\u96c6\u6210\u5230\u73b0\u6709\u539f\u751f\u5e94\u7528","href":"/docs/integration-with-existing-apps","docId":"integration-with-existing-apps","unlisted":false},{"type":"link","label":"\u96c6\u6210\u5230 Android Fragment","href":"/docs/integration-with-android-fragment","docId":"integration-with-android-fragment","unlisted":false},{"type":"link","label":"\u4e3a\u7535\u89c6\u548c\u673a\u9876\u76d2\u5236\u4f5c\u5e94\u7528","href":"/docs/building-for-tv","docId":"building-for-tv","unlisted":false},{"type":"link","label":"\u591a\u5e73\u53f0\u652f\u6301","href":"/docs/out-of-tree-platforms","docId":"out-of-tree-platforms","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u5f00\u53d1\u6d41\u7a0b","items":[{"type":"link","label":"\u5728\u8bbe\u5907\u4e0a\u8fd0\u884c","href":"/docs/running-on-device","docId":"running-on-device","unlisted":false},{"type":"link","label":"\u5feb\u901f\u5237\u65b0","href":"/docs/fast-refresh","docId":"fast-refresh","unlisted":false},{"type":"link","label":"Metro","href":"/docs/metro","docId":"metro","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u7b2c\u4e09\u65b9\u5e93","href":"/docs/libraries","docId":"libraries","unlisted":false},{"type":"link","label":"\u4f7f\u7528 TypeScript","href":"/docs/typescript","docId":"typescript","unlisted":false},{"type":"link","label":"\u66f4\u65b0","href":"/docs/upgrading","docId":"upgrading","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u754c\u9762\u4e0e\u4ea4\u4e92","items":[{"type":"link","label":"\u6837\u5f0f","href":"/docs/style","docId":"style","unlisted":false},{"type":"link","label":"\u9ad8\u5ea6\u4e0e\u5bbd\u5ea6","href":"/docs/height-and-width","docId":"height-and-width","unlisted":false},{"type":"link","label":"\u4f7f\u7528 Flexbox \u5e03\u5c40","href":"/docs/flexbox","docId":"flexbox","unlisted":false},{"type":"link","label":"\u56fe\u7247","href":"/docs/images","docId":"images","unlisted":false},{"type":"link","label":"\u989c\u8272","href":"/docs/colors","docId":"colors","unlisted":false},{"type":"category","label":"\u4ea4\u4e92","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u5904\u7406\u89e6\u6478\u4e8b\u4ef6","href":"/docs/handling-touches","docId":"handling-touches","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u5bfc\u822a\u5668\u8df3\u8f6c\u9875\u9762","href":"/docs/navigation","docId":"navigation","unlisted":false},{"type":"link","label":"\u52a8\u753b","href":"/docs/animations","docId":"animations","unlisted":false},{"type":"link","label":"\u624b\u52bf\u54cd\u5e94\u7cfb\u7edf","href":"/docs/gesture-responder-system","docId":"gesture-responder-system","unlisted":false}]},{"type":"category","label":"\u7f51\u7edc\u8fde\u63a5","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u8bbf\u95ee\u7f51\u7edc","href":"/docs/network","docId":"network","unlisted":false},{"type":"link","label":"\u7f51\u7edc\u5b89\u5168\u7b56\u7565","href":"/docs/security","docId":"security","unlisted":false}]},{"type":"category","label":"\u5305\u5bb9\u6027","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u65e0\u969c\u788d\u529f\u80fd","href":"/docs/accessibility","docId":"accessibility","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u8c03\u8bd5","items":[{"type":"link","label":"\u8c03\u8bd5","href":"/docs/debugging","docId":"debugging","unlisted":false},{"type":"link","label":"React Native \u5f00\u53d1\u8005\u5de5\u5177","href":"/docs/react-native-devtools","docId":"react-native-devtools","unlisted":false},{"type":"link","label":"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801","href":"/docs/debugging-native-code","docId":"debugging-native-code","unlisted":false},{"type":"link","label":"\u8c03\u8bd5\u53d1\u884c\u7248\u672c","href":"/docs/debugging-release-builds","docId":"debugging-release-builds","unlisted":false},{"type":"link","label":"\u5176\u4ed6\u8c03\u8bd5\u65b9\u6cd5","href":"/docs/other-debugging-methods","docId":"other-debugging-methods","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u6d4b\u8bd5","items":[{"type":"link","label":"Testing","href":"/docs/testing-overview","docId":"testing-overview","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u6027\u80fd\u8c03\u4f18","items":[{"type":"link","label":"\u6027\u80fd\u7efc\u8ff0","href":"/docs/performance","docId":"performance","unlisted":false},{"type":"link","label":"\u4f18\u5316\u7f16\u8bd1\u901f\u5ea6","href":"/docs/build-speed","docId":"build-speed","unlisted":false},{"type":"link","label":"\u5217\u8868\u914d\u7f6e\u4f18\u5316","href":"/docs/optimizing-flatlist-configuration","docId":"optimizing-flatlist-configuration","unlisted":false},{"type":"link","label":"Optimizing JavaScript loading","href":"/docs/optimizing-javascript-loading","docId":"optimizing-javascript-loading","unlisted":false},{"type":"link","label":"Profiling","href":"/docs/profiling","docId":"profiling","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"JavaScript \u8fd0\u884c\u73af\u5883","items":[{"type":"link","label":"JavaScript \u73af\u5883","href":"/docs/javascript-environment","docId":"javascript-environment","unlisted":false},{"type":"link","label":"\u5b9a\u65f6\u5668","href":"/docs/timers","docId":"timers","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u65b0\u7684 Hermes \u5f15\u64ce","href":"/docs/hermes","docId":"hermes","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Codegen","items":[{"type":"link","label":"\u4ec0\u4e48\u662f Codegen\uff1f","href":"/docs/the-new-architecture/what-is-codegen","docId":"the-new-architecture/what-is-codegen","unlisted":false},{"type":"link","label":"\u4f7f\u7528 Codegen","href":"/docs/the-new-architecture/using-codegen","docId":"the-new-architecture/using-codegen","unlisted":false},{"type":"link","label":"Codegen \u547d\u4ee4\u884c\u5de5\u5177","href":"/docs/the-new-architecture/codegen-cli","docId":"the-new-architecture/codegen-cli","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u539f\u751f\u5f00\u53d1","items":[{"type":"link","label":"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b","href":"/docs/native-platform","docId":"native-platform","unlisted":false},{"type":"category","label":"\u539f\u751f\u6a21\u5757","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Turbo \u539f\u751f\u6a21\u5757\u4ecb\u7ecd","href":"/docs/turbo-native-modules-introduction","docId":"turbo-native-modules-introduction","unlisted":false},{"type":"link","label":"\u7eaf C++ Turbo \u539f\u751f\u6a21\u5757","href":"/docs/the-new-architecture/pure-cxx-modules","docId":"the-new-architecture/pure-cxx-modules","unlisted":false},{"type":"link","label":"\u9ad8\u7ea7\uff1a\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b","href":"/docs/the-new-architecture/custom-cxx-types","docId":"the-new-architecture/custom-cxx-types","unlisted":false}]},{"type":"category","label":"\u539f\u751f UI \u7ec4\u4ef6","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Fabric Native Components Introduction","href":"/docs/fabric-native-components-introduction","docId":"fabric-native-components-introduction","unlisted":false}]},{"type":"category","label":"\u5176\u4ed6","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"appendix","href":"/docs/appendix","docId":"appendix","unlisted":false},{"type":"link","label":"\u521b\u5efa\u6a21\u5757\u5e93","href":"/docs/the-new-architecture/create-module-library","docId":"the-new-architecture/create-module-library","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"Android \u4e0e iOS \u6307\u5357","items":[{"type":"category","label":"Android","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Headless JS\uff08\u540e\u53f0\u4efb\u52a1\uff09","href":"/docs/headless-js-android","docId":"headless-js-android","unlisted":false},{"type":"link","label":"\u6253\u5305\u53d1\u5e03","href":"/docs/signed-apk-android","docId":"signed-apk-android","unlisted":false},{"type":"link","label":"\u548c\u539f\u751f\u7aef\u901a\u4fe1","href":"/docs/communication-android","docId":"communication-android","unlisted":false},{"type":"link","label":"React Native Gradle Plugin","href":"/docs/react-native-gradle-plugin","docId":"react-native-gradle-plugin","unlisted":false}]},{"type":"category","label":"iOS","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u94fe\u63a5\u539f\u751f\u5e93","href":"/docs/linking-libraries-ios","docId":"linking-libraries-ios","unlisted":false},{"type":"link","label":"\u5728iOS\u6a21\u62df\u5668\u4e0a\u8fd0\u884c","href":"/docs/running-on-simulator-ios","docId":"running-on-simulator-ios","unlisted":false},{"type":"link","label":"\u548c\u539f\u751f\u7aef\u901a\u4fe1","href":"/docs/communication-ios","docId":"communication-ios","unlisted":false},{"type":"link","label":"iOS \u5e94\u7528\u5c0f\u7ec4\u4ef6","href":"/docs/app-extensions","docId":"app-extensions","unlisted":false},{"type":"link","label":"\u4e0a\u67b6 App Store","href":"/docs/publishing-to-app-store","docId":"publishing-to-app-store","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u65e7\u67b6\u6784","items":[{"type":"category","label":"\u539f\u751f\u6a21\u5757\uff08\u65e7\u67b6\u6784\uff09","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u539f\u751f\u6a21\u5757\u7b80\u4ecb","href":"/docs/legacy/native-modules-intro","docId":"legacy/native-modules-intro","unlisted":false},{"type":"link","label":"Android \u539f\u751f\u6a21\u5757","href":"/docs/legacy/native-modules-android","docId":"legacy/native-modules-android","unlisted":false},{"type":"link","label":"iOS \u539f\u751f\u6a21\u5757","href":"/docs/legacy/native-modules-ios","docId":"legacy/native-modules-ios","unlisted":false},{"type":"link","label":"Native Modules NPM Package Setup","href":"/docs/legacy/native-modules-setup","docId":"legacy/native-modules-setup","unlisted":false},{"type":"link","label":"Local libraries setup","href":"/docs/legacy/local-library-setup","docId":"legacy/local-library-setup","unlisted":false}]},{"type":"category","label":"\u539f\u751f UI \u7ec4\u4ef6\uff08\u65e7\u67b6\u6784\uff09","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Android \u539f\u751fUI\u7ec4\u4ef6","href":"/docs/legacy/native-components-android","docId":"legacy/native-components-android","unlisted":false},{"type":"link","label":"iOS \u539f\u751fUI\u7ec4\u4ef6","href":"/docs/legacy/native-components-ios","docId":"legacy/native-components-ios","unlisted":false},{"type":"link","label":"\u76f4\u63a5\u64cd\u4f5c","href":"/docs/legacy/direct-manipulation","docId":"legacy/direct-manipulation","unlisted":false}]}],"collapsed":true,"collapsible":true}],"api":[{"type":"category","label":"APIs","items":[{"type":"link","label":"AccessibilityInfo","href":"/docs/accessibilityinfo","docId":"accessibilityinfo","unlisted":false},{"type":"link","label":"Alert","href":"/docs/alert","docId":"alert","unlisted":false},{"type":"link","label":"Animated","href":"/docs/animated","docId":"animated","unlisted":false},{"type":"link","label":"Animated.Value","href":"/docs/animatedvalue","docId":"animatedvalue","unlisted":false},{"type":"link","label":"Animated.ValueXY","href":"/docs/animatedvaluexy","docId":"animatedvaluexy","unlisted":false},{"type":"link","label":"Appearance","href":"/docs/appearance","docId":"appearance","unlisted":false},{"type":"link","label":"AppRegistry","href":"/docs/appregistry","docId":"appregistry","unlisted":false},{"type":"link","label":"AppState","href":"/docs/appstate","docId":"appstate","unlisted":false},{"type":"link","label":"DevSettings","href":"/docs/devsettings","docId":"devsettings","unlisted":false},{"type":"link","label":"Dimensions","href":"/docs/dimensions","docId":"dimensions","unlisted":false},{"type":"link","label":"Easing","href":"/docs/easing","docId":"easing","unlisted":false},{"type":"link","label":"InteractionManager","href":"/docs/interactionmanager","docId":"interactionmanager","unlisted":false},{"type":"link","label":"Keyboard","href":"/docs/keyboard","docId":"keyboard","unlisted":false},{"type":"link","label":"LayoutAnimation","href":"/docs/layoutanimation","docId":"layoutanimation","unlisted":false},{"type":"link","label":"Linking","href":"/docs/linking","docId":"linking","unlisted":false},{"type":"link","label":"PanResponder","href":"/docs/panresponder","docId":"panresponder","unlisted":false},{"type":"link","label":"PixelRatio","href":"/docs/pixelratio","docId":"pixelratio","unlisted":false},{"type":"link","label":"Platform","href":"/docs/platform","docId":"platform","unlisted":false},{"type":"link","label":"PlatformColor","href":"/docs/platformcolor","docId":"platformcolor","unlisted":false},{"type":"link","label":"RootTag","href":"/docs/roottag","docId":"roottag","unlisted":false},{"type":"link","label":"Share","href":"/docs/share","docId":"share","unlisted":false},{"type":"link","label":"StyleSheet","href":"/docs/stylesheet","docId":"stylesheet","unlisted":false},{"type":"link","label":"Systrace","href":"/docs/systrace","docId":"systrace","unlisted":false},{"type":"link","label":"\u53d8\u6362\uff08Transform\uff09","href":"/docs/transforms","docId":"transforms","unlisted":false},{"type":"link","label":"Vibration","href":"/docs/vibration","docId":"vibration","unlisted":false},{"type":"category","label":"Hooks","collapsed":false,"items":[{"type":"link","label":"useColorScheme","href":"/docs/usecolorscheme","docId":"usecolorscheme","unlisted":false},{"type":"link","label":"useWindowDimensions","href":"/docs/usewindowdimensions","docId":"usewindowdimensions","unlisted":false}],"collapsible":true},{"type":"category","label":"Android API","collapsed":false,"items":[{"type":"link","label":"BackHandler","href":"/docs/backhandler","docId":"backhandler","unlisted":false},{"type":"link","label":"PermissionsAndroid","href":"/docs/permissionsandroid","docId":"permissionsandroid","unlisted":false},{"type":"link","label":"ToastAndroid","href":"/docs/toastandroid","docId":"toastandroid","unlisted":false}],"collapsible":true},{"type":"category","label":"iOS API","collapsed":false,"items":[{"type":"link","label":"ActionSheetIOS","href":"/docs/actionsheetios","docId":"actionsheetios","unlisted":false},{"type":"link","label":"DynamicColorIOS","href":"/docs/dynamiccolorios","docId":"dynamiccolorios","unlisted":false},{"type":"link","label":"Settings","href":"/docs/settings","docId":"settings","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true}],"\u7ec4\u4ef6":[{"type":"category","label":"\u6838\u5fc3\u7ec4\u4ef6","items":[{"type":"link","label":"\u6838\u5fc3\u7ec4\u4ef6\u548cAPI","href":"/docs/components-and-apis","docId":"components-and-apis","unlisted":false},{"type":"link","label":"ActivityIndicator","href":"/docs/activityindicator","docId":"activityindicator","unlisted":false},{"type":"link","label":"Button","href":"/docs/button","docId":"button","unlisted":false},{"type":"link","label":"FlatList","href":"/docs/flatlist","docId":"flatlist","unlisted":false},{"type":"link","label":"Image","href":"/docs/image","docId":"image","unlisted":false},{"type":"link","label":"ImageBackground","href":"/docs/imagebackground","docId":"imagebackground","unlisted":false},{"type":"link","label":"KeyboardAvoidingView","href":"/docs/keyboardavoidingview","docId":"keyboardavoidingview","unlisted":false},{"type":"link","label":"Modal","href":"/docs/modal","docId":"modal","unlisted":false},{"type":"link","label":"Pressable","href":"/docs/pressable","docId":"pressable","unlisted":false},{"type":"link","label":"RefreshControl","href":"/docs/refreshcontrol","docId":"refreshcontrol","unlisted":false},{"type":"link","label":"ScrollView","href":"/docs/scrollview","docId":"scrollview","unlisted":false},{"type":"link","label":"SectionList","href":"/docs/sectionlist","docId":"sectionlist","unlisted":false},{"type":"link","label":"StatusBar","href":"/docs/statusbar","docId":"statusbar","unlisted":false},{"type":"link","label":"Switch","href":"/docs/switch","docId":"switch","unlisted":false},{"type":"link","label":"Text","href":"/docs/text","docId":"text","unlisted":false},{"type":"link","label":"TextInput","href":"/docs/textinput","docId":"textinput","unlisted":false},{"type":"link","label":"TouchableHighlight","href":"/docs/touchablehighlight","docId":"touchablehighlight","unlisted":false},{"type":"link","label":"TouchableOpacity","href":"/docs/touchableopacity","docId":"touchableopacity","unlisted":false},{"type":"link","label":"TouchableWithoutFeedback","href":"/docs/touchablewithoutfeedback","docId":"touchablewithoutfeedback","unlisted":false},{"type":"link","label":"View","href":"/docs/view","docId":"view","unlisted":false},{"type":"link","label":"VirtualizedList","href":"/docs/virtualizedlist","docId":"virtualizedlist","unlisted":false},{"type":"category","label":"Android \u7ec4\u4ef6","collapsed":false,"items":[{"type":"link","label":"DrawerLayoutAndroid","href":"/docs/drawerlayoutandroid","docId":"drawerlayoutandroid","unlisted":false},{"type":"link","label":"TouchableNativeFeedback","href":"/docs/touchablenativefeedback","docId":"touchablenativefeedback","unlisted":false}],"collapsible":true},{"type":"category","label":"iOS \u7ec4\u4ef6","collapsed":false,"items":[{"type":"link","label":"InputAccessoryView","href":"/docs/inputaccessoryview","docId":"inputaccessoryview","unlisted":false},{"type":"link","label":"SafeAreaView","href":"/docs/safeareaview","docId":"safeareaview","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Props","items":[{"type":"link","label":"\u56fe\u7247\u6837\u5f0f\u5c5e\u6027","href":"/docs/image-style-props","docId":"image-style-props","unlisted":false},{"type":"link","label":"\u5e03\u5c40\u5c5e\u6027","href":"/docs/layout-props","docId":"layout-props","unlisted":false},{"type":"link","label":"\u9634\u5f71\u6837\u5f0f\u5c5e\u6027","href":"/docs/shadow-props","docId":"shadow-props","unlisted":false},{"type":"link","label":"Text \u6837\u5f0f\u5c5e\u6027","href":"/docs/text-style-props","docId":"text-style-props","unlisted":false},{"type":"link","label":"View \u6837\u5f0f\u5c5e\u6027","href":"/docs/view-style-props","docId":"view-style-props","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u5185\u90e8\u5bf9\u8c61\u7c7b\u578b","items":[{"type":"link","label":"\u5e03\u5c40\u4e8b\u4ef6\u5bf9\u8c61","href":"/docs/layoutevent","docId":"layoutevent","unlisted":false},{"type":"link","label":"\u70b9\u51fb\u4e8b\u4ef6\u5bf9\u8c61","href":"/docs/pressevent","docId":"pressevent","unlisted":false},{"type":"link","label":"React \u8282\u70b9\u5bf9\u8c61","href":"/docs/react-node","docId":"react-node","unlisted":false},{"type":"link","label":"\u77e9\u5f62\u533a\u57df\u5bf9\u8c61","href":"/docs/rect","docId":"rect","unlisted":false},{"type":"link","label":"ViewToken \u5bf9\u8c61","href":"/docs/viewtoken","docId":"viewtoken","unlisted":false}],"collapsed":true,"collapsible":true}]},"docs":{"accessibility":{"id":"accessibility","title":"\u65e0\u969c\u788d\u529f\u80fd","description":"\u8bd1\u6ce8\uff1aaccessibility \u4e00\u8bcd\u5e38\u89c1\u591a\u79cd\u8bd1\u6cd5\uff1a\u53ef\u8bbf\u95ee\u6027\u3001\u65e0\u969c\u788d\u6027\u3001\u8f85\u52a9\u529f\u80fd\u7b49\u7b49\uff0c\u5176\u4e2d\u6587\u610f\u601d\u90fd\u4e0d\u592a\u80fd\u51c6\u786e\u8868\u8fbe\u5176\u529f\u80fd\u7684\u672c\u8d28\u2014\u2014\u5373\u4e3a\u6b8b\u969c\u4eba\u58eb\u63d0\u4f9b\u4fbf\u5229\u3002\u672c\u6587\u4e3b\u8981\u91c7\u7528\u201c\u65e0\u969c\u788d\u529f\u80fd\u201d\u548c\u201c\u8f85\u52a9\u6280\u672f/\u670d\u52a1\u201d\u7684\u8bf4\u6cd5\u3002\u5982\u679c\u4f60\u6216\u4f60\u7684\u516c\u53f8\u6682\u65f6\u6ca1\u6709\u8d44\u6e90\u548c\u7cbe\u529b\u53bb\u670d\u52a1\u8fd9\u4e9b\u7528\u6237\uff0c\u90a3\u4e48\u4f60\u53ef\u4ee5\u8df3\u8fc7\u672c\u6587\u3002\u4f46\u662f\uff0c\u8bd1\u8005\u4e2a\u4eba\u5e0c\u671b\u501f\u672c\u6587\u6863\uff0c\u547c\u5401\u6709\u80fd\u529b\u6709\u8d44\u6e90\u7684\u5546\u4e1a\u516c\u53f8/\u7ec4\u7ec7/\u4e2a\u4eba\uff0c\u91cd\u89c6\u6b8b\u969c\u4eba\u58eb\u4f7f\u7528\u667a\u80fd\u624b\u673a\u7684\u6743\u5229\u3002","sidebar":"docs"},"accessibilityinfo":{"id":"accessibilityinfo","title":"AccessibilityInfo","description":"\u6709\u65f6\u5019\u6211\u4eec\u5e0c\u671b\u77e5\u9053\u7528\u6237\u7684\u8bbe\u5907\u662f\u5426\u6b63\u5728\u8fd0\u884c\u8bfb\u5c4f\u5e94\u7528\u3002AccessibilityInfo\u6b63\u662f\u7528\u4e8e\u6b64\u76ee\u7684\u3002\u4f60\u53ef\u4ee5\u7528\u5b83\u6765\u67e5\u8be2\u8bfb\u5c4f\u5e94\u7528\u7684\u5f53\u524d\u72b6\u6001\uff0c\u5e76\u4e14\u53ef\u4ee5\u76d1\u542c\u5176\u72b6\u6001\u53d8\u5316\u3002","sidebar":"api"},"actionsheetios":{"id":"actionsheetios","title":"ActionSheetIOS","description":"\u663e\u793a\u4e00\u4e2a iOS \u539f\u751f\u7684Action Sheet\u7ec4\u4ef6\u3002","sidebar":"api"},"activityindicator":{"id":"activityindicator","title":"ActivityIndicator","description":"\u663e\u793a\u4e00\u4e2a\u5706\u5f62\u7684 loading \u63d0\u793a\u7b26\u53f7\u3002","sidebar":"\u7ec4\u4ef6"},"alert":{"id":"alert","title":"Alert","description":"\u542f\u52a8\u4e00\u4e2a\u63d0\u793a\u5bf9\u8bdd\u6846\uff0c\u5305\u542b\u5bf9\u5e94\u7684\u6807\u9898\u548c\u4fe1\u606f\u3002","sidebar":"api"},"alertios":{"id":"alertios","title":"AlertIOS","description":"AlertIOS\u7528\u4e8e\u5f39\u51fa\u4e00\u4e2a iOS \u63d0\u793a\u5bf9\u8bdd\u6846\uff0c\u53ef\u4ee5\u901a\u77e5\u7528\u6237\u4e00\u4e9b\u4fe1\u606f\u6216\u662f\u63d0\u793a\u7528\u6237\u8f93\u5165\u4e00\u4e9b\u6587\u5b57\u3002"},"animated":{"id":"animated","title":"Animated","description":"Animated\u5e93\u65e8\u5728\u4f7f\u52a8\u753b\u53d8\u5f97\u6d41\u7545\uff0c\u5f3a\u5927\u5e76\u6613\u4e8e\u6784\u5efa\u548c\u7ef4\u62a4\u3002Animated\u4fa7\u91cd\u4e8e\u8f93\u5165\u548c\u8f93\u51fa\u4e4b\u95f4\u7684\u58f0\u660e\u6027\u5173\u7cfb\uff0c\u4ee5\u53ca\u4e24\u8005\u4e4b\u95f4\u7684\u53ef\u914d\u7f6e\u53d8\u6362\uff0c\u6b64\u5916\u8fd8\u63d0\u4f9b\u4e86\u7b80\u5355\u7684 start/stop\u65b9\u6cd5\u6765\u63a7\u5236\u57fa\u4e8e\u65f6\u95f4\u7684\u52a8\u753b\u6267\u884c\u3002","sidebar":"api"},"animatedvalue":{"id":"animatedvalue","title":"Animated.Value","description":"\u9a71\u52a8\u52a8\u753b\u7684\u4e00\u7ef4\u6807\u91cf\u503c. \u4e00\u4e2aAnimated.Value\u53ef\u4ee5\u540c\u6b65\u5730\u9a71\u52a8\u591a\u4e2a\u5c5e\u6027\uff0c\u4f46\u6bcf\u6b21\u53ea\u80fd\u4ee5\u4e00\u79cd\u52a8\u753b\u673a\u5236\u53d8\u5316\u3002\u5982\u679c\u6539\u7528\u4e86\u5176\u4ed6\u52a8\u753b\u673a\u5236\uff08\u4f8b\u5982\u5f00\u59cb\u4e00\u4e2a\u65b0\u7684\u52a8\u753b\u6216\u662f\u8c03\u7528setValue\uff09\uff0c\u5219\u4f1a\u505c\u6b62\u5148\u524d\u7684\u52a8\u753b\u3002","sidebar":"api"},"animatedvaluexy":{"id":"animatedvaluexy","title":"Animated.ValueXY","description":"2D \u503c\u7528\u4e8e\u9a71\u52a8 2D \u52a8\u753b\uff0c\u4f8b\u5982\u5e73\u79fb\u624b\u52bf\u3002\u4e0e\u666e\u901a\u7684Animated.Value\u51e0\u4e4e\u76f8\u540c\u7684 API\uff0c\u4f46\u662f\u53ef\u4ee5\u591a\u8def\u590d\u7528\u3002\u5728\u5185\u90e8\u5305\u542b\u4e24\u4e2a\u5e38\u89c4\u7684Animated.Value\u3002","sidebar":"api"},"animations":{"id":"animations","title":"\u52a8\u753b","description":"\u6d41\u7545\u3001\u6709\u610f\u4e49\u7684\u52a8\u753b\u5bf9\u4e8e\u79fb\u52a8\u5e94\u7528\u7528\u6237\u4f53\u9a8c\u6765\u8bf4\u662f\u975e\u5e38\u91cd\u8981\u7684\u3002\u73b0\u5b9e\u751f\u6d3b\u4e2d\u7684\u7269\u4f53\u5728\u5f00\u59cb\u79fb\u52a8\u548c\u505c\u4e0b\u6765\u7684\u65f6\u5019\u90fd\u5177\u6709\u4e00\u5b9a\u7684\u60ef\u6027\uff0c\u6211\u4eec\u5728\u754c\u9762\u4e2d\u4e5f\u53ef\u4ee5\u4f7f\u7528\u52a8\u753b\u6765\u5b9e\u73b0\u5951\u5408\u7269\u7406\u89c4\u5f8b\u7684\u4ea4\u4e92\u3002","sidebar":"docs"},"app-extensions":{"id":"app-extensions","title":"iOS \u5e94\u7528\u5c0f\u7ec4\u4ef6","description":"\u5c0f\u7ec4\u4ef6\u5141\u8bb8\u60a8\u5728\u4e3b\u8981\u5e94\u7528\u7a0b\u5e8f\u4e4b\u5916\u63d0\u4f9b\u81ea\u5b9a\u4e49\u529f\u80fd\u548c\u5185\u5bb9\u3002iOS\u4e0a\u6709\u4e0d\u540c\u7c7b\u578b\u7684\u5e94\u7528\u5c0f\u7ec4\u4ef6\uff0c\u5b83\u4eec\u90fd\u5728App Extension\u7f16\u7a0b\u6307\u5357\u4e2d\u8fdb\u884c\u4e86\u4ecb\u7ecd\u3002\u5728\u672c\u6307\u5357\u4e2d\uff0c\u6211\u4eec\u5c06\u7b80\u8981\u4ecb\u7ecd\u5982\u4f55\u5728iOS\u4e0a\u5229\u7528\u5e94\u7528\u5c0f\u7ec4\u4ef6\u7684\u4f18\u52bf\u3002","sidebar":"docs"},"appearance":{"id":"appearance","title":"Appearance","description":"Appearance \u6a21\u5757\u63d0\u4f9b\u4e86\u5173\u4e8e\u7528\u6237\u5916\u89c2\u504f\u597d\u7684\u4fe1\u606f\uff0c\u4f8b\u5982\u4ed6\u4eec\u559c\u6b22\u7684\u989c\u8272\u65b9\u6848\uff08\u660e\u4eae\u6216\u6697\u9ed1\uff09\u3002","sidebar":"api"},"appendix":{"id":"appendix","title":"appendix","description":"\u4e00\u3001\u672f\u8bed","sidebar":"docs"},"appregistry":{"id":"appregistry","title":"AppRegistry","description":"\u4ec5\u9002\u7528\u4e8e\u975e\u6c99\u76d2\u9879\u76ee","sidebar":"api"},"appstate":{"id":"appstate","title":"AppState","description":"AppState\u80fd\u544a\u8bc9\u4f60\u5e94\u7528\u5f53\u524d\u662f\u5728\u524d\u53f0\u8fd8\u662f\u5728\u540e\u53f0\uff0c\u5e76\u4e14\u80fd\u5728\u72b6\u6001\u53d8\u5316\u7684\u65f6\u5019\u901a\u77e5\u4f60\u3002","sidebar":"api"},"architecture-glossary":{"id":"architecture-glossary","title":"\u672f\u8bed\u8868","description":"Fabric \u6e32\u67d3\u5668\uff08Fabric Renderer\uff09"},"architecture-overview":{"id":"architecture-overview","title":"\u67b6\u6784\u6982\u89c8","description":"\u672c\u6587\u6863\u8fd8\u5728\u6301\u7eed\u66f4\u65b0\u4e2d\uff0c\u4f1a\u4ece\u6982\u5ff5\u4e0a\u4ecb\u7ecd React Native \u65b0\u67b6\u6784\u662f\u5982\u4f55\u5de5\u4f5c\u7684\u3002\u76ee\u6807\u8bfb\u8005\u5305\u62ec\u751f\u6001\u5e93\u7684\u5f00\u53d1\u8005\u3001\u6838\u5fc3\u8d21\u732e\u8005\u548c\u7279\u522b\u6709\u597d\u5947\u5fc3\u7684\u4eba\u3002"},"asyncstorage":{"id":"asyncstorage","title":"\ud83d\udea7 AsyncStorage","description":"\u5df2\u8fc7\u65f6\u3002 Use one of the community packages instead."},"backhandler":{"id":"backhandler","title":"BackHandler","description":"BackHandler API \u7528\u4e8e\u76d1\u542c\u8bbe\u5907\u4e0a\u7684\u540e\u9000\u6309\u94ae\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u8c03\u7528\u4f60\u81ea\u5df1\u7684\u51fd\u6570\u6765\u5904\u7406\u540e\u9000\u884c\u4e3a\u3002\u6b64 API \u4ec5\u80fd\u5728 Android \u4e0a\u4f7f\u7528\u3002","sidebar":"api"},"build-speed":{"id":"build-speed","title":"\u4f18\u5316\u7f16\u8bd1\u901f\u5ea6","description":"\u6784\u5efa React Native \u5e94\u7528\u53ef\u80fd\u4f1a\u975e\u5e38\u6602\u8d35\uff0c\u5e76\u4e14\u9700\u8981\u5f00\u53d1\u4eba\u5458\u82b1\u8d39\u6570\u5206\u949f\u7684\u65f6\u95f4\u3002","sidebar":"docs"},"building-for-tv":{"id":"building-for-tv","title":"\u4e3a\u7535\u89c6\u548c\u673a\u9876\u76d2\u5236\u4f5c\u5e94\u7528","description":"\u76ee\u524d\u7684 React Native \u5e94\u7528\u53ea\u9700\u5728 JavaScript \u7aef\u7b80\u5355\u4fee\u6539\u751a\u81f3\u65e0\u9700\u4fee\u6539\uff0c\u5728\u7535\u89c6\u548c\u673a\u9876\u76d2\u8bbe\u5907\u4e0a\u5c31\u57fa\u672c\u53ef\u7528\u4e86\u3002","sidebar":"docs"},"button":{"id":"button","title":"Button","description":"\u4e00\u4e2a\u7b80\u5355\u7684\u8de8\u5e73\u53f0\u7684\u6309\u94ae\u7ec4\u4ef6\u3002\u53ef\u4ee5\u8fdb\u884c\u4e00\u4e9b\u7b80\u5355\u7684\u5b9a\u5236\u3002","sidebar":"\u7ec4\u4ef6"},"checkbox":{"id":"checkbox","title":"\ud83d\udea7 CheckBox","description":"Removed. Use one of the community packages instead."},"clipboard":{"id":"clipboard","title":"\ud83d\udea7 Clipboard","description":"Deprecated. Use one of the community packages instead."},"colors":{"id":"colors","title":"\u989c\u8272","description":"React Native \u4e2d\u7684\u7ec4\u4ef6\u662f\u4f7f\u7528 JavaScript \u8fdb\u884c\u6837\u5f0f\u5316\u7684\u3002\u989c\u8272\u5c5e\u6027\u901a\u5e38\u4e0e Web \u4e0a\u7684 CSS \u5de5\u4f5c\u65b9\u5f0f\u76f8\u5339\u914d\u3002\u6bcf\u4e2a\u5e73\u53f0\u4e0a\u5173\u4e8e\u989c\u8272\u4f7f\u7528\u7684\u4e00\u822c\u6307\u5357\u5982\u4e0b\uff1a","sidebar":"docs"},"communication-android":{"id":"communication-android","title":"\u548c\u539f\u751f\u7aef\u901a\u4fe1","description":"\u901a\u8fc7\u690d\u5165\u539f\u751f\u5e94\u7528\u548c\u539f\u751f UI \u7ec4\u4ef6\u4e24\u7bc7\u6587\u6863\uff0c\u6211\u4eec\u5b66\u4e60\u4e86 React Native \u548c\u539f\u751f\u7ec4\u4ef6\u7684\u4e92\u76f8\u6574\u5408\u3002\u5728\u6574\u5408\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u4f1a\u9700\u8981\u5728\u4e24\u4e2a\u4e16\u754c\u95f4\u4e92\u76f8\u901a\u4fe1\u3002\u6709\u4e9b\u65b9\u6cd5\u5df2\u7ecf\u5728\u5176\u4ed6\u7684\u6307\u5357\u4e2d\u63d0\u5230\u4e86\uff0c\u8fd9\u7bc7\u6587\u7ae0\u603b\u7ed3\u4e86\u6240\u6709\u53ef\u884c\u7684\u6280\u672f\u3002","sidebar":"docs"},"communication-ios":{"id":"communication-ios","title":"\u548c\u539f\u751f\u7aef\u901a\u4fe1","description":"\u901a\u8fc7\u690d\u5165\u539f\u751f\u5e94\u7528\u548c\u539f\u751f UI \u7ec4\u4ef6\u4e24\u7bc7\u6587\u6863\uff0c\u6211\u4eec\u5b66\u4e60\u4e86 React Native \u548c\u539f\u751f\u7ec4\u4ef6\u7684\u4e92\u76f8\u6574\u5408\u3002\u5728\u6574\u5408\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u4f1a\u9700\u8981\u5728\u4e24\u4e2a\u4e16\u754c\u95f4\u4e92\u76f8\u901a\u4fe1\u3002\u6709\u4e9b\u65b9\u6cd5\u5df2\u7ecf\u5728\u5176\u4ed6\u7684\u6307\u5357\u4e2d\u63d0\u5230\u4e86\uff0c\u8fd9\u7bc7\u6587\u7ae0\u603b\u7ed3\u4e86\u6240\u6709\u53ef\u884c\u7684\u6280\u672f\u3002","sidebar":"docs"},"components-and-apis":{"id":"components-and-apis","title":"\u6838\u5fc3\u7ec4\u4ef6\u548cAPI","description":"React Native \u63d0\u4f9b\u4e86\u4e00\u4e9b\u5185\u7f6e\u7684\u6838\u5fc3\u7ec4\u4ef6\u4f9b\u4f60\u4f7f\u7528\u3002\u4f60\u53ef\u4ee5\u5728\u7f51\u7ad9\u7684\u5de6\u4fa7\u770b\u5230\u7ec4\u4ef6\u7684\u5b8c\u6574\u5217\u8868\u3002\u5982\u679c\u4f60\u4e0d\u77e5\u9053\u4ece\u54ea\u770b\u8d77\uff0c\u90a3\u4e48\u53ef\u4ee5\u5148\u770b\u4e00\u4e0b\u4e0b\u9762\u8fd9\u4e2a\u7b80\u5355\u7684\u5206\u7c7b\uff1a","sidebar":"\u7ec4\u4ef6"},"custom-webview-android":{"id":"custom-webview-android","title":"Custom WebView","description":"While the built-in web view has a lot of features, it is not possible to handle every use-case in React Native. You can, however, extend the web view with native code without forking React Native or duplicating all the existing web view code."},"custom-webview-ios":{"id":"custom-webview-ios","title":"Custom WebView","description":"While the built-in web view has a lot of features, it is not possible to handle every use-case in React Native. You can, however, extend the web view with native code without forking React Native or duplicating all the existing web view code."},"datepickerandroid":{"id":"datepickerandroid","title":"\ud83d\udea7 DatePickerAndroid","description":"Deprecated. Use one of the community packages instead."},"datepickerios":{"id":"datepickerios","title":"\ud83d\udea7 DatePickerIOS","description":"Deprecated. Use one of the community packages instead."},"debugging":{"id":"debugging","title":"\u8c03\u8bd5","description":"\u8bbf\u95ee App \u5185\u7684\u5f00\u53d1\u83dc\u5355","sidebar":"docs"},"debugging-native-code":{"id":"debugging-native-code","title":"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801","description":"Projects with Native Code Only","sidebar":"docs"},"debugging-release-builds":{"id":"debugging-release-builds","title":"\u8c03\u8bd5\u53d1\u884c\u7248\u672c","description":"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a","sidebar":"docs"},"devsettings":{"id":"devsettings","title":"DevSettings","description":"DevSettings \u6a21\u5757\u53ef\u4ee5\u5bf9\u5f00\u53d1\u8005\u83dc\u5355\u8fdb\u884c\u4e00\u4e9b\u81ea\u5b9a\u4e49\u3002","sidebar":"api"},"dimensions":{"id":"dimensions","title":"Dimensions","description":"\u672c\u6a21\u5757\u7528\u4e8e\u83b7\u53d6\u8bbe\u5907\u5c4f\u5e55\u7684\u5bbd\u9ad8\u3002","sidebar":"api"},"drawerlayoutandroid":{"id":"drawerlayoutandroid","title":"DrawerLayoutAndroid","description":"\u5c01\u88c5\u4e86 Android \u5e73\u53f0DrawerLayout\u7684 React \u7ec4\u4ef6\u3002\u62bd\u5c49\uff08\u901a\u5e38\u7528\u4e8e\u5bfc\u822a\u5207\u6362\uff09\u662f\u901a\u8fc7renderNavigationView\u65b9\u6cd5\u6e32\u67d3\u7684\uff0c\u5e76\u4e14 DrawerLayoutAndroid \u7684\u76f4\u63a5\u5b50\u89c6\u56fe\u4f1a\u6210\u4e3a\u4e3b\u89c6\u56fe\uff08\u7528\u4e8e\u653e\u7f6e\u5185\u5bb9\uff09\u3002\u5bfc\u822a\u89c6\u56fe\u4e00\u5f00\u59cb\u5728\u5c4f\u5e55\u4e0a\u5e76\u4e0d\u53ef\u89c1\uff0c\u4e0d\u8fc7\u53ef\u4ee5\u4ecedrawerPosition\u6307\u5b9a\u7684\u7a97\u53e3\u4fa7\u9762\u62d6\u62fd\u51fa\u6765\uff0c\u5e76\u4e14\u62bd\u5c49\u7684\u5bbd\u5ea6\u53ef\u4ee5\u4f7f\u7528drawerWidth\u5c5e\u6027\u6765\u6307\u5b9a\u3002","sidebar":"\u7ec4\u4ef6"},"dynamiccolorios":{"id":"dynamiccolorios","title":"DynamicColorIOS","description":"DynamicColorIOS\u51fd\u6570\u662f\u4e13\u95e8\u9488\u5bf9iOS\u5e73\u53f0\u7684\u989c\u8272\u7c7b\u578b\u3002","sidebar":"api"},"easing":{"id":"easing","title":"Easing","description":"Easing\u6a21\u5757\u5b9e\u73b0\u4e86\u5e38\u89c1\u7684\u52a8\u753b\u7f13\u52a8\u51fd\u6570\u3002 \u8fd9\u4e2a\u6a21\u5757\u88abAnimated.timing()\u7528\u4e8e\u5728\u52a8\u753b\u4e2d\u4f20\u8fbe\u771f\u5b9e\u53ef\u4fe1\u7684\u8fd0\u52a8\u3002","sidebar":"api"},"environment-setup":{"id":"environment-setup","title":"\u642d\u5efa\u5f00\u53d1\u73af\u5883","description":"\u6b22\u8fce\u4f7f\u7528 React Native\uff01\u8fd9\u7bc7\u6587\u6863\u4f1a\u5e2e\u52a9\u4f60\u642d\u5efa\u57fa\u672c\u7684 React Native \u5f00\u53d1\u73af\u5883\u3002","sidebar":"docs"},"fabric-native-components-android":{"id":"fabric-native-components-android","title":"Fabric Native Modules: Android","description":"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b Android \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a"},"fabric-native-components-introduction":{"id":"fabric-native-components-introduction","title":"Fabric Native Components Introduction","description":"\u5982\u679c\u4f60\u60f3\u6784\u5efa\u4e00\u4e2a \u65b0\u67b6\u6784 \u7684 React Native \u7ec4\u4ef6\uff0c\u8be5\u7ec4\u4ef6\u53ef\u4ee5\u5305\u88c5\u4e00\u4e2a Host Component\uff0c\u4f8b\u5982 Android \u4e0a\u7684 CheckBox\uff0c\u6216\u8005 iOS \u4e0a\u7684 UIButton\uff0c\u4f60\u5e94\u8be5\u4f7f\u7528 Fabric \u539f\u751f\u7ec4\u4ef6\u3002","sidebar":"docs"},"fabric-native-components-ios":{"id":"fabric-native-components-ios","title":"Fabric Native Components: iOS","description":"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b iOS \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a"},"fabric-renderer":{"id":"fabric-renderer","title":"Fabric \u6e32\u67d3\u5668","description":"Fabric \u662f React Native \u65b0\u67b6\u6784\u7684\u6e32\u67d3\u7cfb\u7edf\uff0c\u662f\u4ece\u8001\u67b6\u6784\u7684\u6e32\u67d3\u7cfb\u7edf\u6f14\u53d8\u800c\u6765\u7684\u3002\u6838\u5fc3\u539f\u7406\u662f\u5728 C++ \u5c42\u7edf\u4e00\u66f4\u591a\u7684\u6e32\u67d3\u903b\u8f91\uff0c\u63d0\u5347\u4e0e\u5bbf\u4e3b\u5e73\u53f0\uff08host platforms\uff09\u4e92\u64cd\u4f5c\u6027\uff0c\u5e76\u4e3a React Native \u89e3\u9501\u66f4\u591a\u80fd\u529b\u3002\u5176\u7814\u53d1\u59cb\u4e8e 2018 \u5e74\u3002\u4ece 2021 \u5e74\u5f00\u59cb\uff0c Facebook App \u4e2d\u7684 React Native \u542f\u7528\u4e86\u65b0\u7684\u6e32\u67d3\u5668\u3002"},"fast-refresh":{"id":"fast-refresh","title":"\u5feb\u901f\u5237\u65b0","description":"\u5feb\u901f\u5237\u65b0\u662f React Native \u4e00\u4e2a\u7279\u6027\uff0c\u5728\u4fee\u6539\u7ec4\u4ef6\u7684\u65f6\u5019\u5feb\u901f\u5237\u65b0\u4f1a\u7ed9\u4f60\u4e00\u4e2a\u5373\u65f6\u7684\u53cd\u9988\u3002\u5feb\u901f\u5237\u65b0\u9ed8\u8ba4\u662f\u5f00\u542f\u7684\uff0c\u53ef\u4ee5\u901a\u8fc7\u8c03\u6574 React Native \u5f00\u53d1\u8005\u83dc\u5355\u91cc\u9762\u7684 \\"Enable Fast Refresh\\" \u6765\u5f00\u542f\u6216\u5173\u95ed\u3002\u5728\u5feb\u901f\u5237\u65b0\u5f00\u542f\u7684\u65f6\u5019\uff0c\u5927\u591a\u6570\u7684\u4fee\u6539\u80fd\u5728\u4e00\u5230\u4e24\u79d2\u4e4b\u5185\u5448\u73b0\u3002","sidebar":"docs"},"flatlist":{"id":"flatlist","title":"FlatList","description":"\u9ad8\u6027\u80fd\u7684\u7b80\u5355\u5217\u8868\u7ec4\u4ef6\uff0c\u652f\u6301\u4e0b\u9762\u8fd9\u4e9b\u5e38\u7528\u7684\u529f\u80fd\uff1a","sidebar":"\u7ec4\u4ef6"},"flexbox":{"id":"flexbox","title":"\u4f7f\u7528 Flexbox \u5e03\u5c40","description":"\u6211\u4eec\u5728 React Native \u4e2d\u4f7f\u7528 flexbox \u89c4\u5219\u6765\u6307\u5b9a\u67d0\u4e2a\u7ec4\u4ef6\u7684\u5b50\u5143\u7d20\u7684\u5e03\u5c40\u3002Flexbox \u53ef\u4ee5\u5728\u4e0d\u540c\u5c4f\u5e55\u5c3a\u5bf8\u4e0a\u63d0\u4f9b\u4e00\u81f4\u7684\u5e03\u5c40\u7ed3\u6784\u3002","sidebar":"docs"},"gesture-responder-system":{"id":"gesture-responder-system","title":"\u624b\u52bf\u54cd\u5e94\u7cfb\u7edf","description":"\u79fb\u52a8\u8bbe\u5907\u4e0a\u7684\u624b\u52bf\u8bc6\u522b\u8981\u6bd4\u5728 web \u4e0a\u590d\u6742\u5f97\u591a\u3002\u7528\u6237\u7684\u4e00\u6b21\u89e6\u6478\u64cd\u4f5c\u7684\u771f\u5b9e\u610f\u56fe\u662f\u4ec0\u4e48\uff0cApp \u8981\u7ecf\u8fc7\u597d\u51e0\u4e2a\u9636\u6bb5\u624d\u80fd\u5224\u65ad\u3002\u6bd4\u5982 App \u9700\u8981\u5224\u65ad\u7528\u6237\u7684\u89e6\u6478\u5230\u5e95\u662f\u5728\u6eda\u52a8\u9875\u9762\uff0c\u8fd8\u662f\u6ed1\u52a8\u4e00\u4e2a widget\uff0c\u6216\u8005\u53ea\u662f\u4e00\u4e2a\u5355\u7eaf\u7684\u70b9\u51fb\u3002\u751a\u81f3\u968f\u7740\u6301\u7eed\u65f6\u95f4\u7684\u4e0d\u540c\uff0c\u8fd9\u4e9b\u64cd\u4f5c\u8fd8\u4f1a\u8f6c\u5316\u3002\u6b64\u5916\uff0c\u8fd8\u6709\u591a\u70b9\u540c\u65f6\u89e6\u63a7\u7684\u60c5\u51b5\u3002","sidebar":"docs"},"getting-started":{"id":"getting-started","title":"\u7b80\u4ecb","description":"\u6b22\u8fce\u5f00\u542f React Native \u7684\u65c5\u7a0b\uff01\u5982\u679c\u4f60\u5728\u627e\u5982\u4f55\u642d\u5efa\u73af\u5883\u7684\u6587\u6863\uff0c\u8bf7\u79fb\u6b65\u642d\u5efa\u5f00\u53d1\u73af\u5883\u3002 \u7ee7\u7eed\u5f80\u4e0b\u9605\u8bfb\u53ef\u4e86\u89e3\u5173\u4e8e\u6587\u6863\u7ed3\u6784\u3001\u539f\u751f\u7ec4\u4ef6\u3001React\u7b49\u76f8\u5173\u7684\u4e00\u4e9b\u4ecb\u7ecd\u3002","sidebar":"docs"},"handling-text-input":{"id":"handling-text-input","title":"\u5904\u7406\u6587\u672c\u8f93\u5165","description":"TextInput\u662f\u4e00\u4e2a\u5141\u8bb8\u7528\u6237\u8f93\u5165\u6587\u672c\u7684\u57fa\u7840\u7ec4\u4ef6\u3002\u5b83\u6709\u4e00\u4e2a\u540d\u4e3aonChangeText\u7684\u5c5e\u6027\uff0c\u6b64\u5c5e\u6027\u63a5\u53d7\u4e00\u4e2a\u51fd\u6570\uff0c\u800c\u6b64\u51fd\u6570\u4f1a\u5728\u6587\u672c\u53d8\u5316\u65f6\u88ab\u8c03\u7528\u3002\u53e6\u5916\u8fd8\u6709\u4e00\u4e2a\u540d\u4e3aonSubmitEditing\u7684\u5c5e\u6027\uff0c\u4f1a\u5728\u6587\u672c\u88ab\u63d0\u4ea4\u540e\uff08\u7528\u6237\u6309\u4e0b\u8f6f\u952e\u76d8\u4e0a\u7684\u63d0\u4ea4\u952e\uff09\u8c03\u7528\u3002","sidebar":"docs"},"handling-touches":{"id":"handling-touches","title":"\u5904\u7406\u89e6\u6478\u4e8b\u4ef6","description":"\u79fb\u52a8\u5e94\u7528\u4e0a\u7684\u7528\u6237\u4ea4\u4e92\u57fa\u672c\u9760\u201c\u6478\u201d\u3002\u5f53\u7136\uff0c\u201c\u6478\u201d\u4e5f\u662f\u6709\u5404\u79cd\u59ff\u52bf\u7684\uff1a\u5728\u4e00\u4e2a\u6309\u94ae\u4e0a\u70b9\u51fb\uff0c\u5728\u4e00\u4e2a\u5217\u8868\u4e0a\u6ed1\u52a8\uff0c\u6216\u662f\u5728\u4e00\u4e2a\u5730\u56fe\u4e0a\u7f29\u653e\u3002React Native \u63d0\u4f9b\u4e86\u53ef\u4ee5\u5904\u7406\u5e38\u89c1\u89e6\u6478\u624b\u52bf\uff08\u4f8b\u5982\u70b9\u51fb\u6216\u6ed1\u52a8\uff09\u7684\u7ec4\u4ef6\uff0c \u4ee5\u53ca\u53ef\u7528\u4e8e\u8bc6\u522b\u66f4\u590d\u6742\u7684\u624b\u52bf\u7684\u5b8c\u6574\u7684\u624b\u52bf\u54cd\u5e94\u7cfb\u7edf\u3002","sidebar":"docs"},"headless-js-android":{"id":"headless-js-android","title":"Headless JS\uff08\u540e\u53f0\u4efb\u52a1\uff09","description":"Headless JS \u662f\u4e00\u79cd\u4f7f\u7528 js \u5728\u540e\u53f0\u6267\u884c\u4efb\u52a1\u7684\u65b9\u6cd5\u3002\u5b83\u53ef\u4ee5\u7528\u6765\u5728\u540e\u53f0\u540c\u6b65\u6570\u636e\u3001\u5904\u7406\u63a8\u9001\u901a\u77e5\u6216\u662f\u64ad\u653e\u97f3\u4e50\u7b49\u7b49\u3002","sidebar":"docs"},"height-and-width":{"id":"height-and-width","title":"\u9ad8\u5ea6\u4e0e\u5bbd\u5ea6","description":"\u7ec4\u4ef6\u7684\u9ad8\u5ea6\u548c\u5bbd\u5ea6\u51b3\u5b9a\u4e86\u5176\u5728\u5c4f\u5e55\u4e0a\u663e\u793a\u7684\u5c3a\u5bf8\u3002","sidebar":"docs"},"hermes":{"id":"hermes","title":"\u4f7f\u7528\u65b0\u7684 Hermes \u5f15\u64ce","description":"Hermes \u662f\u4e13\u95e8\u9488\u5bf9 React Native \u5e94\u7528\u800c\u4f18\u5316\u7684\u5168\u65b0\u5f00\u6e90 JavaScript \u5f15\u64ce\u3002\u5bf9\u4e8e\u5f88\u591a\u5e94\u7528\u6765\u8bf4\uff0c\u542f\u7528 Hermes \u5f15\u64ce\u53ef\u4ee5\u4f18\u5316\u542f\u52a8\u65f6\u95f4\uff0c\u51cf\u5c11\u5185\u5b58\u5360\u7528\u4ee5\u53ca\u7a7a\u95f4\u5360\u7528\u3002\u4ece React Native 0.70 \u7248\u672c\u5f00\u59cb Hermes \u5df2\u7ecf\u9ed8\u8ba4\u542f\u7528\uff0c\u65e0\u9700\u5f00\u53d1\u8005\u518d\u505a\u4efb\u4f55\u914d\u7f6e\u3002","sidebar":"docs"},"image":{"id":"image","title":"Image","description":"\u7528\u4e8e\u663e\u793a\u591a\u79cd\u4e0d\u540c\u7c7b\u578b\u56fe\u7247\u7684 React \u7ec4\u4ef6\uff0c\u5305\u62ec\u7f51\u7edc\u56fe\u7247\u3001\u9759\u6001\u8d44\u6e90\u3001\u4e34\u65f6\u7684\u672c\u5730\u56fe\u7247\u3001\u4ee5\u53ca\u672c\u5730\u78c1\u76d8\u4e0a\u7684\u56fe\u7247\uff08\u5982\u76f8\u518c\uff09\u7b49\u3002","sidebar":"\u7ec4\u4ef6"},"image-style-props":{"id":"image-style-props","title":"\u56fe\u7247\u6837\u5f0f\u5c5e\u6027","description":"\u793a\u4f8b","sidebar":"\u7ec4\u4ef6"},"imagebackground":{"id":"imagebackground","title":"ImageBackground","description":"\u5bf9\u4e8e\u719f\u6089 Web \u5f00\u53d1\u7684\u5f00\u53d1\u4eba\u5458\u6765\u8bf4\uff0cbackground-image\u662f\u4e00\u4e2a\u5e38\u89c1\u7684\u529f\u80fd\u8bf7\u6c42\u3002\u4e3a\u4e86\u5904\u7406\u8fd9\u79cd\u60c5\u51b5\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528`\u7ec4\u4ef6\uff0c\u5b83\u5177\u6709\u4e0e`\u76f8\u540c\u7684\u5c5e\u6027\uff0c\u5e76\u4e14\u53ef\u4ee5\u6dfb\u52a0\u4efb\u4f55\u5b50\u5143\u7d20\u4ee5\u8986\u76d6\u5728\u5176\u4e0a\u9762\u3002","sidebar":"\u7ec4\u4ef6"},"imagepickerios":{"id":"imagepickerios","title":"\ud83d\udea7 ImagePickerIOS","description":"Deprecated. Use one of the community packages instead."},"images":{"id":"images","title":"\u56fe\u7247","description":"\u9759\u6001\u56fe\u7247\u8d44\u6e90","sidebar":"docs"},"improvingux":{"id":"improvingux","title":"\u6539\u8fdb\u7528\u6237\u4f53\u9a8c","description":"\u914d\u7f6e\u6587\u672c\u8f93\u5165"},"inputaccessoryview":{"id":"inputaccessoryview","title":"InputAccessoryView","description":"\u4e00\u4e2a\u53ef\u4ee5\u5728iOS\u4e0a\u81ea\u5b9a\u4e49\u952e\u76d8\u8f93\u5165\u8f85\u52a9\u89c6\u56fe\u7684\u7ec4\u4ef6\u3002\u5f53TextInput\u83b7\u5f97\u7126\u70b9\u65f6\uff0c\u8f93\u5165\u8f85\u52a9\u89c6\u56fe\u663e\u793a\u5728\u952e\u76d8\u4e0a\u65b9\u3002\u8be5\u7ec4\u4ef6\u53ef\u7528\u4e8e\u521b\u5efa\u81ea\u5b9a\u4e49\u5de5\u5177\u680f\u3002","sidebar":"\u7ec4\u4ef6"},"integration-with-android-fragment":{"id":"integration-with-android-fragment","title":"\u96c6\u6210\u5230 Android Fragment","description":"\u4e0e\u73b0\u6709\u5e94\u7528\u7a0b\u5e8f\u96c6\u6210\u6307\u5357\u4e2d\u8be6\u7ec6\u4ecb\u7ecd\u4e86\u5982\u4f55\u5c06\u5168\u5c4f React Native \u5e94\u7528\u7a0b\u5e8f\u4f5c\u4e3a Activity \u96c6\u6210\u5230\u73b0\u6709 Android \u5e94\u7528\u7a0b\u5e8f\u4e2d\u3002\u8981\u5728\u73b0\u6709\u5e94\u7528\u7a0b\u5e8f\u7684 Fragments \u4e2d\u4f7f\u7528 React Native \u7ec4\u4ef6\uff0c\u9700\u8981\u8fdb\u884c\u4e00\u4e9b\u989d\u5916\u7684\u8bbe\u7f6e\u3002\u8fd9\u6837\u505a\u7684\u597d\u5904\u662f\u5b83\u5141\u8bb8\u539f\u751f\u5e94\u7528\u7a0b\u5e8f\u5c06 React Native \u7ec4\u4ef6\u4e0e Activity \u4e2d\u7684\u539f\u751f Fragments \u96c6\u6210\u5728\u4e00\u8d77\u3002","sidebar":"docs"},"integration-with-existing-apps":{"id":"integration-with-existing-apps","title":"\u96c6\u6210\u5230\u73b0\u6709\u539f\u751f\u5e94\u7528","description":"\u5982\u679c\u4f60\u6b63\u51c6\u5907\u4ece\u5934\u5f00\u59cb\u5236\u4f5c\u4e00\u4e2a\u65b0\u7684\u5e94\u7528\uff0c\u90a3\u4e48 React Native \u4f1a\u662f\u4e2a\u975e\u5e38\u597d\u7684\u9009\u62e9\u3002\u4f46\u5982\u679c\u4f60\u53ea\u60f3\u7ed9\u73b0\u6709\u7684\u539f\u751f\u5e94\u7528\u4e2d\u6dfb\u52a0\u4e00\u4e24\u4e2a\u89c6\u56fe\u6216\u662f\u4e1a\u52a1\u6d41\u7a0b\uff0cReact Native \u4e5f\u540c\u6837\u4e0d\u5728\u8bdd\u4e0b\u3002\u53ea\u9700\u7b80\u5355\u51e0\u6b65\uff0c\u4f60\u5c31\u53ef\u4ee5\u7ed9\u539f\u6709\u5e94\u7528\u52a0\u4e0a\u65b0\u7684\u57fa\u4e8e React Native \u7684\u7279\u6027\u3001\u753b\u9762\u548c\u89c6\u56fe\u7b49\u3002","sidebar":"docs"},"interactionmanager":{"id":"interactionmanager","title":"InteractionManager","description":"Interactionmanager \u53ef\u4ee5\u5c06\u4e00\u4e9b\u8017\u65f6\u8f83\u957f\u7684\u5de5\u4f5c\u5b89\u6392\u5230\u6240\u6709\u4e92\u52a8\u6216\u52a8\u753b\u5b8c\u6210\u4e4b\u540e\u518d\u8fdb\u884c\u3002\u8fd9\u6837\u53ef\u4ee5\u4fdd\u8bc1 JavaScript \u52a8\u753b\u7684\u6d41\u7545\u8fd0\u884c\u3002","sidebar":"api"},"intro-react":{"id":"intro-react","title":"React \u57fa\u7840","description":"\u8981\u6df1\u5165\u7406\u89e3 React Native\uff0c\u9700\u8981\u624e\u5b9e\u7684React \u57fa\u7840\u77e5\u8bc6\u3002\u8fd9\u7bc7\u5c0f\u6559\u7a0b\u53ef\u4ee5\u5e2e\u52a9\u4f60\u5165\u95e8\u6216\u8005\u6e29\u4e60\u76f8\u5173\u77e5\u8bc6\u3002","sidebar":"docs"},"intro-react-native-components":{"id":"intro-react-native-components","title":"\u6838\u5fc3\u7ec4\u4ef6\u4e0e\u539f\u751f\u7ec4\u4ef6","description":"React Native \u4f7f\u7528\u5b8c\u5168\u539f\u751f\u7684\u7ec4\u4ef6\u6765\u6784\u5efa\u5e94\u7528\u754c\u9762\u3002\u5c24\u5176\u65b9\u4fbf\u7684\u662f\u5b83\u5df2\u7ecf\u5185\u7f6e\u4e86\u5927\u91cf\u76f4\u63a5\u4e0a\u624b\u53ef\u7528\u7684\u6838\u5fc3\u7ec4\u4ef6\u3002","sidebar":"docs"},"javascript-environment":{"id":"javascript-environment","title":"JavaScript \u73af\u5883","description":"JavaScript \u8fd0\u884c\u65f6\u73af\u5883","sidebar":"docs"},"keyboard":{"id":"keyboard","title":"Keyboard","description":"Keyboard\u6a21\u5757\u7528\u6765\u63a7\u5236\u952e\u76d8\u76f8\u5173\u7684\u4e8b\u4ef6\u3002","sidebar":"api"},"keyboardavoidingview":{"id":"keyboardavoidingview","title":"KeyboardAvoidingView","description":"\u672c\u7ec4\u4ef6\u7528\u4e8e\u89e3\u51b3\u4e00\u4e2a\u5e38\u89c1\u7684\u5c34\u5c2c\u95ee\u9898\uff1a\u624b\u673a\u4e0a\u5f39\u51fa\u7684\u952e\u76d8\u5e38\u5e38\u4f1a\u6321\u4f4f\u5f53\u524d\u7684\u89c6\u56fe\u3002\u672c\u7ec4\u4ef6\u53ef\u4ee5\u81ea\u52a8\u6839\u636e\u952e\u76d8\u7684\u9ad8\u5ea6\uff0c\u8c03\u6574\u81ea\u8eab\u7684 height \u6216\u5e95\u90e8\u7684 padding\uff0c\u4ee5\u907f\u514d\u88ab\u906e\u6321\u3002","sidebar":"\u7ec4\u4ef6"},"layout-props":{"id":"layout-props","title":"\u5e03\u5c40\u5c5e\u6027","description":"\u66f4\u591a\u5173\u4e8e\u8fd9\u4e9b\u5c5e\u6027\u7684\u8be6\u7ec6\u793a\u4f8b\u53ef\u4ee5\u5728Flexbox \u5e03\u5c40\u9875\u9762\u4e0a\u627e\u5230\u3002","sidebar":"\u7ec4\u4ef6"},"layoutanimation":{"id":"layoutanimation","title":"LayoutAnimation","description":"\u5f53\u5e03\u5c40\u53d8\u5316\u65f6\uff0c\u81ea\u52a8\u5c06\u89c6\u56fe\u8fd0\u52a8\u5230\u5b83\u4eec\u65b0\u7684\u4f4d\u7f6e\u4e0a\u3002","sidebar":"api"},"layoutevent":{"id":"layoutevent","title":"\u5e03\u5c40\u4e8b\u4ef6\u5bf9\u8c61","description":"LayoutEvent object is returned in the callback as a result of component layout change, for example onLayout in View component.","sidebar":"\u7ec4\u4ef6"},"legacy/direct-manipulation":{"id":"legacy/direct-manipulation","title":"\u76f4\u63a5\u64cd\u4f5c","description":"\u6709\u65f6\u5019\u6211\u4eec\u9700\u8981\u76f4\u63a5\u6539\u52a8\u7ec4\u4ef6\u5e76\u89e6\u53d1\u5c40\u90e8\u7684\u5237\u65b0\uff0c\u4f46\u4e0d\u4f7f\u7528 state \u6216\u662f props\u3002\u8b6c\u5982\u5728\u6d4f\u89c8\u5668\u4e2d\u4f7f\u7528 React \u5e93\uff0c\u6709\u65f6\u5019\u4f1a\u9700\u8981\u76f4\u63a5\u4fee\u6539\u4e00\u4e2a DOM \u8282\u70b9\uff0c\u800c\u5728\u624b\u673a App \u4e2d\u64cd\u4f5c View \u65f6\u4e5f\u4f1a\u78b0\u5230\u540c\u6837\u7684\u60c5\u51b5\u3002\u5728 React Native \u4e2d\uff0csetNativeProps\u5c31\u662f\u7b49\u4ef7\u4e8e\u76f4\u63a5\u64cd\u4f5c DOM \u8282\u70b9\u7684\u65b9\u6cd5\u3002","sidebar":"docs"},"legacy/local-library-setup":{"id":"legacy/local-library-setup","title":"Local libraries setup","description":"A local library is a library containing views or modules that\'s local to your app and not published to a registry. This is different from the traditional setup for view and modules in the sense that a local library is decoupled from your app\'s native code.","sidebar":"docs"},"legacy/native-components-android":{"id":"legacy/native-components-android","title":"Android \u539f\u751fUI\u7ec4\u4ef6","description":"\u5728\u5982\u4eca\u7684 App \u4e2d\uff0c\u5df2\u7ecf\u6709\u6210\u5343\u4e0a\u4e07\u7684\u539f\u751f UI \u90e8\u4ef6\u4e86\u2014\u2014\u5176\u4e2d\u7684\u4e00\u4e9b\u662f\u5e73\u53f0\u7684\u4e00\u90e8\u5206\uff0c\u53e6\u4e00\u4e9b\u53ef\u80fd\u6765\u81ea\u4e8e\u4e00\u4e9b\u7b2c\u4e09\u65b9\u5e93\uff0c\u800c\u4e14\u53ef\u80fd\u4f60\u81ea\u5df1\u8fd8\u6536\u85cf\u4e86\u5f88\u591a\u3002React Native \u5df2\u7ecf\u5c01\u88c5\u4e86\u5927\u90e8\u5206\u6700\u5e38\u89c1\u7684\u7ec4\u4ef6\uff0c\u8b6c\u5982ScrollView\u548cTextInput\uff0c\u4f46\u4e0d\u53ef\u80fd\u5c01\u88c5\u5168\u90e8\u7ec4\u4ef6\u3002\u800c\u4e14\uff0c\u8bf4\u4e0d\u5b9a\u4f60\u66fe\u7ecf\u4e3a\u81ea\u5df1\u4ee5\u524d\u7684 App \u8fd8\u5c01\u88c5\u8fc7\u4e00\u4e9b\u7ec4\u4ef6\uff0cReact Native \u80af\u5b9a\u6ca1\u6cd5\u5305\u542b\u5b83\u4eec\u3002\u5e78\u8fd0\u7684\u662f\uff0c\u5728 React Naitve \u5e94\u7528\u7a0b\u5e8f\u4e2d\u5c01\u88c5\u548c\u690d\u5165\u5df2\u6709\u7684\u7ec4\u4ef6\u975e\u5e38\u7b80\u5355\u3002","sidebar":"docs"},"legacy/native-components-ios":{"id":"legacy/native-components-ios","title":"iOS \u539f\u751fUI\u7ec4\u4ef6","description":"\u5728\u5982\u4eca\u7684 App \u4e2d\uff0c\u5df2\u7ecf\u6709\u6210\u5343\u4e0a\u4e07\u7684\u539f\u751f UI \u90e8\u4ef6\u4e86\u2014\u2014\u5176\u4e2d\u7684\u4e00\u4e9b\u662f\u5e73\u53f0\u7684\u4e00\u90e8\u5206\uff0c\u53e6\u4e00\u4e9b\u53ef\u80fd\u6765\u81ea\u4e8e\u4e00\u4e9b\u7b2c\u4e09\u65b9\u5e93\uff0c\u800c\u4e14\u53ef\u80fd\u4f60\u81ea\u5df1\u8fd8\u6536\u85cf\u4e86\u5f88\u591a\u3002React Native \u5df2\u7ecf\u5c01\u88c5\u4e86\u5927\u90e8\u5206\u6700\u5e38\u89c1\u7684\u7ec4\u4ef6\uff0c\u8b6c\u5982ScrollView\u548cTextInput\uff0c\u4f46\u4e0d\u53ef\u80fd\u5c01\u88c5\u5168\u90e8\u7ec4\u4ef6\u3002\u800c\u4e14\uff0c\u8bf4\u4e0d\u5b9a\u4f60\u66fe\u7ecf\u4e3a\u81ea\u5df1\u4ee5\u524d\u7684 App \u8fd8\u5c01\u88c5\u8fc7\u4e00\u4e9b\u7ec4\u4ef6\uff0cReact Native \u80af\u5b9a\u6ca1\u6cd5\u5305\u542b\u5b83\u4eec\u3002\u5e78\u8fd0\u7684\u662f\uff0c\u5728 React Naitve \u5e94\u7528\u7a0b\u5e8f\u4e2d\u5c01\u88c5\u548c\u690d\u5165\u5df2\u6709\u7684\u7ec4\u4ef6\u975e\u5e38\u7b80\u5355\u3002","sidebar":"docs"},"legacy/native-modules-android":{"id":"legacy/native-modules-android","title":"Android \u539f\u751f\u6a21\u5757","description":"\u6b22\u8fce\u6765\u5230 Android \u7684\u539f\u751f\u6a21\u5757\u3002\u8bf7\u5148\u9605\u8bfb \u539f\u751f\u6a21\u5757\u7b80\u4ecb \u4ee5\u4e86\u89e3\u539f\u751f\u6a21\u5757\u7684\u57fa\u672c\u6982\u5ff5\u3002","sidebar":"docs"},"legacy/native-modules-intro":{"id":"legacy/native-modules-intro","title":"\u539f\u751f\u6a21\u5757\u7b80\u4ecb","description":"\u6709\u65f6\u5019 App \u9700\u8981\u8bbf\u95ee\u5e73\u53f0 API\uff0c\u4f46 React Native \u53ef\u80fd\u8fd8\u6ca1\u6709\u76f8\u5e94\u7684\u6a21\u5757\u5305\u88c5\uff1b\u6216\u8005\u4f60\u9700\u8981\u590d\u7528\u4e00\u4e9b Java \u4ee3\u7801\uff0c\u800c\u4e0d\u662f\u7528 Javascript \u91cd\u65b0\u5b9e\u73b0\u4e00\u904d\uff1b\u53c8\u6216\u8005\u4f60\u9700\u8981\u5b9e\u73b0\u67d0\u4e9b\u9ad8\u6027\u80fd\u7684\u3001\u591a\u7ebf\u7a0b\u7684\u4ee3\u7801\uff0c\u8b6c\u5982\u56fe\u7247\u5904\u7406\u3001\u6570\u636e\u5e93\u3001\u6216\u8005\u5404\u79cd\u9ad8\u7ea7\u6269\u5c55\u7b49\u7b49\u3002","sidebar":"docs"},"legacy/native-modules-ios":{"id":"legacy/native-modules-ios","title":"iOS \u539f\u751f\u6a21\u5757","description":"\u6709\u65f6\u5019 App \u9700\u8981\u8bbf\u95ee\u5e73\u53f0 API\uff0c\u4f46 React Native \u53ef\u80fd\u8fd8\u6ca1\u6709\u76f8\u5e94\u7684\u6a21\u5757\u5c01\u88c5\uff1b\u6216\u8005\u4f60\u9700\u8981\u590d\u7528 Objective-C\u3001Swift \u6216 C++\u4ee3\u7801\uff0c\u800c\u4e0d\u662f\u7528 JavaScript \u91cd\u65b0\u5b9e\u73b0\u4e00\u904d\uff1b\u53c8\u6216\u8005\u4f60\u9700\u8981\u5b9e\u73b0\u67d0\u4e9b\u9ad8\u6027\u80fd\u3001\u591a\u7ebf\u7a0b\u7684\u4ee3\u7801\uff0c\u8b6c\u5982\u56fe\u7247\u5904\u7406\u3001\u6570\u636e\u5e93\u3001\u6216\u8005\u5404\u79cd\u9ad8\u7ea7\u6269\u5c55\u7b49\u7b49\u3002","sidebar":"docs"},"legacy/native-modules-setup":{"id":"legacy/native-modules-setup","title":"Native Modules NPM Package Setup","description":"Native modules are usually distributed as npm packages, except that on top of the usual JavaScript they will include some native code per platform. To understand more about npm packages you may find this guide useful.","sidebar":"docs"},"libraries":{"id":"libraries","title":"\u4f7f\u7528\u7b2c\u4e09\u65b9\u5e93","description":"This guide introduces React Native developers to finding, installing, and using third-party libraries in their apps.","sidebar":"docs"},"linking":{"id":"linking","title":"Linking","description":"Linking\u63d0\u4f9b\u4e86\u4e00\u4e2a\u901a\u7528\u7684\u63a5\u53e3\u6765\u4e0e\u4f20\u5165\u548c\u4f20\u51fa\u7684 App \u94fe\u63a5\u8fdb\u884c\u4ea4\u4e92\u3002","sidebar":"api"},"linking-libraries-ios":{"id":"linking-libraries-ios","title":"\u94fe\u63a5\u539f\u751f\u5e93","description":"\u5e76\u4e0d\u662f\u6240\u6709\u7684 APP \u90fd\u9700\u8981\u4f7f\u7528\u5168\u90e8\u7684\u539f\u751f\u529f\u80fd\uff0c\u5305\u542b\u652f\u6301\u5168\u90e8\u7279\u6027\u7684\u4ee3\u7801\u4f1a\u589e\u5927\u5e94\u7528\u7684\u4f53\u79ef\u3002\u4f46\u6211\u4eec\u4ecd\u7136\u5e0c\u671b\u80fd\u8ba9\u4f60\u7b80\u5355\u5730\u6839\u636e\u81ea\u5df1\u7684\u9700\u6c42\u6dfb\u52a0\u9700\u8981\u7684\u7279\u6027\u3002","sidebar":"docs"},"metro":{"id":"metro","title":"Metro","description":"React Native \u4f7f\u7528Metro\u6784\u5efa JavaScript \u4ee3\u7801\u548c\u8d44\u6e90\u3002","sidebar":"docs"},"modal":{"id":"modal","title":"Modal","description":"Modal \u7ec4\u4ef6\u662f\u4e00\u79cd\u7b80\u5355\u7684\u8986\u76d6\u5728\u5176\u4ed6\u89c6\u56fe\u4e4b\u4e0a\u663e\u793a\u5185\u5bb9\u7684\u65b9\u5f0f\u3002","sidebar":"\u7ec4\u4ef6"},"more-resources":{"id":"more-resources","title":"\u5176\u4ed6\u53c2\u8003\u8d44\u6e90","description":"\u5982\u679c\u4f60\u8010\u5fc3\u7684\u8bfb\u5b8c\u5e76\u7406\u89e3\u4e86\u672c\u7f51\u7ad9\u4e0a\u7684\u6240\u6709\u6587\u6863\uff0c\u90a3\u4e48\u4f60\u5e94\u8be5\u5df2\u7ecf\u53ef\u4ee5\u7f16\u5199\u4e00\u4e2a\u50cf\u6837\u7684 React Native \u5e94\u7528\u4e86\u3002\u4f46\u662f React Native \u5e76\u4e0d\u5168\u662f\u67d0\u4e00\u5bb6\u516c\u53f8\u7684\u4f5c\u54c1\u2014\u2014\u5b83\u6c47\u805a\u4e86\u6210\u5343\u4e0a\u4e07\u5f00\u6e90\u793e\u533a\u5f00\u53d1\u8005\u7684\u667a\u6167\u7ed3\u6676\u3002\u5982\u679c\u4f60\u60f3\u6df1\u5165\u7814\u7a76 React Native\uff0c\u90a3\u4e48\u5efa\u8bae\u4e0d\u8981\u9519\u8fc7\u4e0b\u9762\u8fd9\u4e9b\u53c2\u8003\u8d44\u6e90\u3002","sidebar":"docs"},"native-platform":{"id":"native-platform","title":"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b","description":"\u4f60\u7684\u5e94\u7528\u53ef\u80fd\u9700\u8981\u8bbf\u95ee React Native \u6216\u793e\u533a\u7ef4\u62a4\u7684\u6570\u767e\u4e2a \u7b2c\u4e09\u65b9\u5e93 \u4e2d\u672a\u76f4\u63a5\u63d0\u4f9b\u7684\u5e73\u53f0\u529f\u80fd\u3002\u4e5f\u8bb8\u4f60\u60f3\u8981\u91cd\u7528\u4e00\u4e9b\u73b0\u6709\u7684 Objective-C\u3001Swift\u3001Java\u3001Kotlin \u6216 C++ \u4ee3\u7801\u3002\u65e0\u8bba\u4f60\u7684\u539f\u56e0\u662f\u4ec0\u4e48\uff0cReact Native \u90fd\u63d0\u4f9b\u4e86\u4e00\u7ec4\u5f3a\u5927\u7684 API \u6765\u8fde\u63a5\u4f60\u7684\u539f\u751f\u4ee3\u7801\u548c JavaScript \u5e94\u7528\u4ee3\u7801\u3002","sidebar":"docs"},"navigation":{"id":"navigation","title":"\u4f7f\u7528\u5bfc\u822a\u5668\u8df3\u8f6c\u9875\u9762","description":"\u79fb\u52a8\u5e94\u7528\u57fa\u672c\u4e0d\u4f1a\u53ea\u7531\u4e00\u4e2a\u9875\u9762\u7ec4\u6210\u3002\u7ba1\u7406\u591a\u4e2a\u9875\u9762\u7684\u5448\u73b0\u3001\u8df3\u8f6c\u7684\u7ec4\u4ef6\u5c31\u662f\u6211\u4eec\u901a\u5e38\u6240\u8bf4\u7684\u5bfc\u822a\u5668\uff08navigator\uff09\u3002","sidebar":"docs"},"netinfo":{"id":"netinfo","title":"NetInfo","description":"\u5df2\u8fc7\u65f6\u3002 Use react-native-community/react-native-netinfo instead."},"network":{"id":"network","title":"\u8bbf\u95ee\u7f51\u7edc","description":"\u5f88\u591a\u79fb\u52a8\u5e94\u7528\u90fd\u9700\u8981\u4ece\u8fdc\u7a0b\u5730\u5740\u4e2d\u83b7\u53d6\u6570\u636e\u6216\u8d44\u6e90\u3002\u4f60\u53ef\u80fd\u9700\u8981\u7ed9\u67d0\u4e2a REST API \u53d1\u8d77 POST \u8bf7\u6c42\u4ee5\u63d0\u4ea4\u7528\u6237\u6570\u636e\uff0c\u53c8\u6216\u8005\u53ef\u80fd\u4ec5\u4ec5\u9700\u8981\u4ece\u67d0\u4e2a\u670d\u52a1\u5668\u4e0a\u83b7\u53d6\u4e00\u4e9b\u9759\u6001\u5185\u5bb9\u2014\u2014\u4ee5\u4e0b\u5c31\u662f\u4f60\u4f1a\u7528\u5230\u7684\u4e1c\u897f\u3002\u65b0\u624b\u53ef\u4ee5\u5bf9\u7167\u8fd9\u4e2a\u7b80\u77ed\u7684\u89c6\u9891\u6559\u7a0b\u52a0\u6df1\u7406\u89e3\u3002","sidebar":"docs"},"new-architecture-app-intro":{"id":"new-architecture-app-intro","title":"\u5728\u5e94\u7528\u4e2d\u542f\u7528\u7684\u9884\u5907\u5de5\u4f5c","description":"\u5728\u542f\u7528\u65b0\u67b6\u6784\u4e4b\u524d\uff0c\u5e94\u5148\u6ee1\u8db3\u4e00\u4e9b\u5148\u51b3\u6761\u4ef6\u3002"},"new-architecture-app-modules-ios":{"id":"new-architecture-app-modules-ios","title":"\u5728 iOS \u4e0a\u542f\u7528 TurboModule","description":"Make sure your application meets all the prerequisites."},"new-architecture-app-renderer-android":{"id":"new-architecture-app-renderer-android","title":"\u5728 Android \u4e0a\u542f\u7528 Fabric","description":"Make sure your application meets all the prerequisites."},"new-architecture-app-renderer-ios":{"id":"new-architecture-app-renderer-ios","title":"\u5728 iOS \u4e0a\u542f\u7528 Fabric","description":"This section will go over how to enable the new renderer in your app. Make sure your application meets all the prerequisites."},"new-architecture-intro":{"id":"new-architecture-intro","title":"\u8fc1\u79fb\u5230\u65b0\u67b6\u6784","description":"\u6b64\u8fc1\u79fb\u6307\u5357\u65e8\u5728\u4e3aReact Native\u7684\u5e93\u4f5c\u8005\u548c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u8005\u63d0\u4f9b\u3002\u5b83\u6982\u8ff0\u4e86\u60a8\u9700\u8981\u9075\u5faa\u7684\u6b65\u9aa4\uff0c\u4ee5\u5728\u60a8\u7684Android\u548ciOS\u5e93\u548c\u5e94\u7528\u4e2d\u4f7f\u7528\u7531\u65b0\u7684NativeModule\u7cfb\u7edf\uff08TurboModule\uff09\u548c\u65b0\u7684\u6e32\u67d3\u5668\uff08Fabric\uff09\u7ec4\u6210\u7684\u65b0\u67b6\u6784\u3002"},"new-architecture-library-android":{"id":"new-architecture-library-android","title":"\u5728 Android \u5e93\u4e2d\u542f\u7528","description":"\u4e00\u65e6\u60a8\u5728\u5148\u51b3\u6761\u4ef6\u4e2d\u5b9a\u4e49\u4e86\u672c\u673a\u6a21\u5757\u7684 JavaScript \u89c4\u8303\uff0c\u8bbe\u7f6e\u4e86 CodeGen \u914d\u7f6e\uff0c\u5e76\u9075\u5faa\u4e86 Android/Gradle \u8bbe\u7f6e\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u5c06\u60a8\u7684\u5e93\u8fc1\u79fb\u5230\u65b0\u67b6\u6784\u3002\u4ee5\u4e0b\u662f\u8fc1\u79fb\u6240\u9700\u7684\u6b65\u9aa4\u3002"},"new-architecture-library-intro":{"id":"new-architecture-library-intro","title":"\u5728\u5e93\u4e2d\u542f\u7528\u7684\u9884\u5907\u5de5\u4f5c","description":"The following steps will help ensure your modules and components are ready for the New Architecture."},"new-architecture-library-ios":{"id":"new-architecture-library-ios","title":"\u5728 iOS \u5e93\u4e2d\u542f\u7528","description":"You have defined the JavaScript specs for your native modules as part of the prerequisites, and you are now ready to migrate your library to the New Architecture. Here are the steps you can follow to accomplish this."},"new-architecture-troubleshooting":{"id":"new-architecture-troubleshooting","title":"\u5e38\u89c1\u95ee\u9898","description":"\u672c\u9875\u9762\u4f1a\u8bb0\u5f55\u4e00\u4e9b\u8fc1\u79fb\u5230\u65b0\u67b6\u6784\u65f6\u53ef\u80fd\u9047\u5230\u7684\u5e38\u89c1\u95ee\u9898\u7684\u89e3\u51b3\u65b9\u6848\u3002"},"new-architecture-turbo-modules":{"id":"new-architecture-turbo-modules","title":"\u65b0\u67b6\u6784\u7684\u539f\u751f\u6a21\u5757\uff08Turbo Module\uff09","description":"If you\'ve worked with React Native, you may be familiar with the concept of Native Modules, which allow JavaScript and platform-native code to communicate over the React Native \\"bridge\\", which handles cross-platform serialization via JSON."},"optimizing-flatlist-configuration":{"id":"optimizing-flatlist-configuration","title":"\u5217\u8868\u914d\u7f6e\u4f18\u5316","description":"\u672f\u8bed\u5b9a\u4e49","sidebar":"docs"},"optimizing-javascript-loading":{"id":"optimizing-javascript-loading","title":"Optimizing JavaScript loading","description":"\u89e3\u6790\u548c\u8fd0\u884c JavaScript \u4ee3\u7801\u9700\u8981\u5185\u5b58\u548c\u65f6\u95f4\u3002\u56e0\u6b64\uff0c\u968f\u7740\u4f60\u7684\u5e94\u7528\u7a0b\u5e8f\u589e\u957f\uff0c\u901a\u5e38\u5c06\u4ee3\u7801\u52a0\u8f7d\u5ef6\u8fdf\u5230\u9996\u6b21\u9700\u8981\u65f6\u662f\u6709\u7528\u7684\u3002React Native \u81ea\u5e26\u4e00\u4e9b\u9ed8\u8ba4\u5f00\u542f\u7684\u6807\u51c6\u4f18\u5316\uff0c\u5e76\u4e14\u4f60\u53ef\u4ee5\u5728\u81ea\u5df1\u7684\u4ee3\u7801\u4e2d\u91c7\u7528\u4e00\u4e9b\u6280\u672f\u6765\u5e2e\u52a9 React \u66f4\u6709\u6548\u5730\u52a0\u8f7d\u4f60\u7684\u5e94\u7528\u7a0b\u5e8f\u3002\u8fd8\u6709\u4e00\u4e9b\u9002\u5408\u975e\u5e38\u5927\u5e94\u7528\u7a0b\u5e8f\u7684\u9ad8\u7ea7\u81ea\u52a8\u4f18\u5316\uff08\u5b83\u4eec\u4e5f\u6709\u81ea\u5df1\u7684\u6743\u8861\uff09\u3002","sidebar":"docs"},"other-debugging-methods":{"id":"other-debugging-methods","title":"\u5176\u4ed6\u8c03\u8bd5\u65b9\u6cd5","description":"\u6b64\u9875\u9762\u4ecb\u7ecd\u4e86\u9664 \u6253\u5f00\u8c03\u8bd5\u5668 \u4e2d\u63cf\u8ff0\u7684\u65b9\u6cd5\u4e4b\u5916\u7684\u5176\u4ed6 JavaScript \u8c03\u8bd5\u65b9\u6cd5\u3002\u5982\u679c\u4f60\u6b63\u5728\u4f7f\u7528\u65b0\u521b\u5efa\u7684 React Native \u6216 Expo \u5e94\u7528\uff0c\u6211\u4eec\u5efa\u8bae\u4ece\u90a3\u91cc\u5f00\u59cb\u3002","sidebar":"docs"},"out-of-tree-platforms":{"id":"out-of-tree-platforms","title":"\u591a\u5e73\u53f0\u652f\u6301","description":"React Native\u4e0d\u4ec5\u9002\u7528\u4e8e Android \u548c iOS - \u8fd8\u6709\u793e\u533a\u652f\u6301\u7684\u9879\u76ee\u5c06\u5176\u5e94\u7528\u4e8e\u5176\u4ed6\u5e73\u53f0\uff0c\u4f8b\u5982\uff1a","sidebar":"docs"},"panresponder":{"id":"panresponder","title":"PanResponder","description":"PanResponder\u7c7b\u53ef\u4ee5\u5c06\u591a\u70b9\u89e6\u6478\u64cd\u4f5c\u534f\u8c03\u6210\u4e00\u4e2a\u624b\u52bf\u3002\u5b83\u4f7f\u5f97\u4e00\u4e2a\u5355\u70b9\u89e6\u6478\u53ef\u4ee5\u63a5\u53d7\u66f4\u591a\u7684\u89e6\u6478\u64cd\u4f5c\uff0c\u4e5f\u53ef\u4ee5\u7528\u4e8e\u8bc6\u522b\u7b80\u5355\u7684\u591a\u70b9\u89e6\u6478\u624b\u52bf\u3002","sidebar":"api"},"performance":{"id":"performance","title":"\u6027\u80fd\u7efc\u8ff0","description":"\u4f7f\u7528 React Native \u66ff\u4ee3\u57fa\u4e8e WebView \u7684\u6846\u67b6\u6765\u5f00\u53d1 App \u7684\u4e00\u4e2a\u5f3a\u6709\u529b\u7684\u7406\u7531\uff0c\u5c31\u662f\u4e3a\u4e86\u4f7f App \u53ef\u4ee5\u8fbe\u5230\u6bcf\u79d2 60 \u5e27\uff08\u8db3\u591f\u6d41\u7545\uff09\uff0c\u5e76\u4e14\u80fd\u6709\u7c7b\u4f3c\u539f\u751f App \u7684\u5916\u89c2\u548c\u624b\u611f\u3002\u56e0\u6b64\u6211\u4eec\u4e5f\u5c3d\u53ef\u80fd\u5730\u4f18\u5316 React Native \u53bb\u5b9e\u73b0\u8fd9\u4e00\u76ee\u6807\uff0c\u4f7f\u5f00\u53d1\u8005\u80fd\u96c6\u4e2d\u7cbe\u529b\u5904\u7406 App \u7684\u4e1a\u52a1\u903b\u8f91\uff0c\u800c\u4e0d\u7528\u8d39\u5fc3\u8003\u8651\u6027\u80fd\u3002\u4f46\u662f\uff0c\u603b\u8fd8\u662f\u6709\u4e00\u4e9b\u5730\u65b9\u6709\u6240\u6b20\u7f3a\uff0c\u4ee5\u53ca\u5728\u67d0\u4e9b\u573a\u5408 React Native \u8fd8\u4e0d\u80fd\u591f\u66ff\u4f60\u51b3\u5b9a\u5982\u4f55\u8fdb\u884c\u4f18\u5316\uff08\u7528\u539f\u751f\u4ee3\u7801\u5199\u4e5f\u65e0\u6cd5\u907f\u514d\uff09\uff0c\u56e0\u6b64\u4eba\u5de5\u7684\u5e72\u9884\u4f9d\u7136\u662f\u5fc5\u8981\u7684\u3002","sidebar":"docs"},"permissionsandroid":{"id":"permissionsandroid","title":"PermissionsAndroid","description":"\u4ec5\u9002\u7528\u4e8e\u975e\u6c99\u76d2\u9879\u76ee","sidebar":"api"},"pixelratio":{"id":"pixelratio","title":"PixelRatio","description":"PixelRatio \u53ef\u4ee5\u83b7\u53d6\u5230\u8bbe\u5907\u7684\u50cf\u7d20\u5bc6\u5ea6\u548c\u5b57\u4f53\u7f29\u653e\u6bd4\u3002","sidebar":"api"},"platform":{"id":"platform","title":"Platform","description":"Example","sidebar":"api"},"platform-specific-code":{"id":"platform-specific-code","title":"\u7279\u5b9a\u5e73\u53f0\u4ee3\u7801","description":"\u5728\u7f16\u5199\u8de8\u5e73\u53f0\u7684\u5e94\u7528\u65f6\uff0c\u6211\u4eec\u80af\u5b9a\u5e0c\u671b\u5c3d\u53ef\u80fd\u591a\u5730\u590d\u7528\u4ee3\u7801\u3002\u4f46\u662f\u603b\u6709\u4e9b\u65f6\u5019\u6211\u4eec\u4f1a\u78b0\u5230\u9488\u5bf9\u4e0d\u540c\u5e73\u53f0\u7f16\u5199\u4e0d\u540c\u4ee3\u7801\u7684\u9700\u6c42\u3002","sidebar":"docs"},"platformcolor":{"id":"platformcolor","title":"PlatformColor","description":"You can use the PlatformColor function to access native colors on the target platform by supplying the native color\u2019s corresponding string value. You pass a string to the PlatformColor function and, provided it exists on that platform, it will return the corresponding native color, which you can apply in any part of your application.","sidebar":"api"},"pressable":{"id":"pressable","title":"Pressable","description":"Pressable \u662f\u4e00\u4e2a\u6838\u5fc3\u7ec4\u4ef6\u7684\u5c01\u88c5\uff0c\u5b83\u53ef\u4ee5\u68c0\u6d4b\u5230\u4efb\u610f\u5b50\u7ec4\u4ef6\u7684\u4e0d\u540c\u9636\u6bb5\u7684\u6309\u538b\u4ea4\u4e92\u60c5\u51b5\u3002","sidebar":"\u7ec4\u4ef6"},"pressevent":{"id":"pressevent","title":"\u70b9\u51fb\u4e8b\u4ef6\u5bf9\u8c61","description":"\u70b9\u51fb\u4e8b\u4ef6\u5bf9\u8c61\u4f5c\u4e3a\u7528\u6237\u6309\u538b\u4ea4\u4e92\u7684\u7ed3\u679c\u5728\u56de\u8c03\u4e2d\u8fd4\u56de\uff0c\u4f8b\u5982 Button \u7ec4\u4ef6\u4e2d\u7684 onPress\u3002","sidebar":"\u7ec4\u4ef6"},"profile-hermes":{"id":"profile-hermes","title":"\u5728 Hermes \u4e2d\u8fdb\u884c\u6027\u80fd\u5206\u6790","description":"\u4f60\u53ef\u4ee5\u4f7f\u7528Hermes\u5728 React Native \u5e94\u7528\u4e2d\u53ef\u89c6\u5316 JavaScript \u7684\u6027\u80fd\u3002Hermes \u662f\u4e00\u4e2a\u5c0f\u578b\u4e14\u8f7b\u91cf\u7684 JavaScript \u5f15\u64ce\uff08\u4f60\u53ef\u4ee5\u5728\u8fd9\u91cc\u9605\u8bfb\u66f4\u591a\u6709\u5173\u5728 React Native \u4e2d\u4f7f\u7528\u5b83\u7684\u4fe1\u606f\uff09\u3002Hermes \u6709\u52a9\u4e8e\u63d0\u9ad8\u5e94\u7528\u6027\u80fd\uff0c\u5e76\u4e14\u8fd8\u63d0\u4f9b\u4e86\u5206\u6790\u5176\u8fd0\u884c\u7684 JavaScript \u6027\u80fd\u7684\u65b9\u5f0f\u3002"},"profiling":{"id":"profiling","title":"Profiling","description":"\u4f7f\u7528\u5185\u7f6e\u7684\u6027\u80fd\u5206\u6790\u5668\u83b7\u53d6 JavaScript \u7ebf\u7a0b\u548c\u4e3b\u7ebf\u7a0b\u5e76\u6392\u7684\u8be6\u7ec6\u5de5\u4f5c\u4fe1\u606f\u3002\u4ece\u8c03\u8bd5\u83dc\u5355\u4e2d\u9009\u62e9 Perf Monitor \u5373\u53ef\u8bbf\u95ee\u5b83\u3002","sidebar":"docs"},"progressbarandroid":{"id":"progressbarandroid","title":"\ud83d\udea7 ProgressBarAndroid","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/progress-bar-android instead."},"progressviewios":{"id":"progressviewios","title":"\ud83d\udea7 ProgressViewIOS","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/progress-view instead."},"props":{"id":"props","title":"Props\uff08\u5c5e\u6027\uff09","description":"\u5927\u591a\u6570\u7ec4\u4ef6\u5728\u521b\u5efa\u65f6\u5c31\u53ef\u4ee5\u4f7f\u7528\u5404\u79cd\u53c2\u6570\u6765\u8fdb\u884c\u5b9a\u5236\u3002\u7528\u4e8e\u5b9a\u5236\u7684\u8fd9\u4e9b\u53c2\u6570\u5c31\u79f0\u4e3aprops\uff08\u5c5e\u6027\uff09\u3002"},"publishing-to-app-store":{"id":"publishing-to-app-store","title":"\u4e0a\u67b6 App Store","description":"\u4e0a\u67b6\u5e94\u7528\u7684\u8fc7\u7a0b\u548c\u4efb\u4f55\u5176\u5b83\u539f\u751f iOS \u5e94\u7528\u4e00\u6837\uff0c\u4f46\u6709\u4e00\u4e9b\u989d\u5916\u7684\u6ce8\u610f\u4e8b\u9879\u8981\u8003\u8651\u3002","sidebar":"docs"},"pushnotificationios":{"id":"pushnotificationios","title":"\ud83d\udea7 PushNotificationIOS","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/push-notification-ios instead."},"ram-bundles-inline-requires":{"id":"ram-bundles-inline-requires","title":"RAM Bundles \u548c\u5185\u8054\u5f15\u7528\u4f18\u5316","description":"\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u8f83\u4e3a\u5e9e\u5927\u7684\u5e94\u7528\u7a0b\u5e8f\uff0c\u4f60\u53ef\u80fd\u8981\u8003\u8651\u4f7f\u7528RAM(Random Access Modules\uff0c\u968f\u673a\u5b58\u53d6\u6a21\u5757\uff09\u683c\u5f0f\u7684 bundle \u548c\u5185\u8054\u5f15\u7528\u3002\u8fd9\u5bf9\u4e8e\u5177\u6709\u5927\u91cf\u9875\u9762\u7684\u5e94\u7528\u7a0b\u5e8f\u662f\u975e\u5e38\u6709\u7528\u7684\uff0c\u8fd9\u4e9b\u9875\u9762\u5728\u5e94\u7528\u7a0b\u5e8f\u7684\u5178\u578b\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u53ef\u80fd\u4e0d\u4f1a\u88ab\u6253\u5f00\u3002\u901a\u5e38\u5bf9\u4e8e\u542f\u52a8\u540e\u4e00\u6bb5\u65f6\u95f4\u5185\u4e0d\u9700\u8981\u5927\u91cf\u4ee3\u7801\u7684\u5e94\u7528\u7a0b\u5e8f\u6765\u8bf4\u662f\u975e\u5e38\u6709\u7528\u7684\u3002\u4f8b\u5982\u5e94\u7528\u7a0b\u5e8f\u5305\u542b\u590d\u6742\u7684\u914d\u7f6e\u6587\u4ef6\u5c4f\u5e55\u6216\u8f83\u5c11\u4f7f\u7528\u7684\u529f\u80fd\uff0c\u4f46\u5927\u591a\u6570\u4f1a\u8bdd\u53ea\u6d89\u53ca\u8bbf\u95ee\u5e94\u7528\u7a0b\u5e8f\u7684\u4e3b\u5c4f\u5e55\u66f4\u65b0\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528RAM\u683c\u5f0f\u6765\u4f18\u5316bundle\u7684\u52a0\u8f7d\uff0c\u5e76\u4e14\u5185\u8054\u5f15\u7528\u8fd9\u4e9b\u529f\u80fd\u548c\u9875\u9762\uff08\u5f53\u5b83\u4eec\u88ab\u5b9e\u9645\u4f7f\u7528\u65f6\uff09\u3002"},"react-18-and-react-native":{"id":"react-18-and-react-native","title":"React 18 \u4e0e React Native","description":"\u8fd9\u4e2a\u9875\u9762\u63cf\u8ff0\u4e86\u5982\u4f55\u5728 React Native \u7684\u65b0\u67b6\u6784\u4e2d\u542f\u7528 React 18 \u7248\u672c\u3002"},"react-native-devtools":{"id":"react-native-devtools","title":"React Native \u5f00\u53d1\u8005\u5de5\u5177","description":"React Native DevTools \u662f\u6211\u4eec\u65b0\u7684\u8c03\u8bd5\u4f53\u9a8c\uff0c\u5b83\u5bf9\u6211\u4eec\u7684\u8c03\u8bd5\u5806\u6808\u8fdb\u884c\u4e86\u7aef\u5230\u7aef\u7684\u91cd\u65b0\u7f16\u5199\u3002\u5b83\u65e8\u5728\u6bd4\u4ee5\u524d\u7684\u8c03\u8bd5\u65b9\u6cd5\u66f4\u6df1\u5165\u5730\u96c6\u6210\uff0c\u5e76\u4e14\u4ece\u6839\u672c\u4e0a\u66f4\u53ef\u9760\u3002","sidebar":"docs"},"react-native-gradle-plugin":{"id":"react-native-gradle-plugin","title":"React Native Gradle Plugin","description":"\u672c\u6307\u5357\u63cf\u8ff0\u4e86\u5982\u4f55\u914d\u7f6e React Native Gradle Plugin\uff08\u901a\u5e38\u79f0\u4e3a RNGP\uff09\u6765\u4e3a Android \u6784\u5efa React Native \u5e94\u7528\u3002","sidebar":"docs"},"react-node":{"id":"react-node","title":"React \u8282\u70b9\u5bf9\u8c61","description":"React \u8282\u70b9\u5bf9\u8c61\u6709\u4ee5\u4e0b\u8fd9\u4e9b\u7c7b\u578b\uff1a","sidebar":"\u7ec4\u4ef6"},"rect":{"id":"rect","title":"\u77e9\u5f62\u533a\u57df\u5bf9\u8c61","description":"Rect \u63a5\u53d7\u6570\u503c\u50cf\u7d20\u503c\u6765\u63cf\u8ff0\u5982\u4f55\u6269\u5c55\u77e9\u5f62\u533a\u57df\u3002\u8fd9\u4e9b\u503c\u4f1a\u88ab\u6dfb\u52a0\u5230\u539f\u59cb\u533a\u57df\u7684\u5927\u5c0f\u4e0a\u4ee5\u6269\u5c55\u5b83\u3002","sidebar":"\u7ec4\u4ef6"},"rectorsize":{"id":"rectorsize","title":"RectOrSize Object Type","description":"RectOrSize\u63a5\u53d7\u6570\u5b57\u50cf\u7d20\u503c\u6765\u63cf\u8ff0\u5982\u4f55\u6269\u5c55\u77e9\u5f62\u533a\u57df\u3002\u8fd9\u4e9b\u503c\u4f1a\u88ab\u6dfb\u52a0\u5230\u539f\u59cb\u533a\u57df\u7684\u5927\u5c0f\u4e0a\u4ee5\u6269\u5c55\u5b83\u3002"},"refreshcontrol":{"id":"refreshcontrol","title":"RefreshControl","description":"\u8fd9\u4e00\u7ec4\u4ef6\u53ef\u4ee5\u7528\u5728 ScrollView \u6216 FlatList \u5185\u90e8\uff0c\u4e3a\u5176\u6dfb\u52a0\u4e0b\u62c9\u5237\u65b0\u7684\u529f\u80fd\u3002\u5f53 ScrollView \u5904\u4e8e\u7ad6\u76f4\u65b9\u5411\u7684\u8d77\u70b9\u4f4d\u7f6e\uff08scrollY: 0\uff09\uff0c\u6b64\u65f6\u4e0b\u62c9\u4f1a\u89e6\u53d1\u4e00\u4e2aonRefresh\u4e8b\u4ef6\u3002","sidebar":"\u7ec4\u4ef6"},"removing-default-permissions":{"id":"removing-default-permissions","title":"\u79fb\u9664\u4e0d\u9700\u8981\u7684\u6743\u9650","description":"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u6211\u4eec\u4f1a\u7ed9\u6700\u7ec8\u6253\u5305\u7684 APK \u52a0\u5165\u4e00\u4e9b\u6743\u9650\u7533\u8bf7\uff0c\u5177\u4f53\u5982\u4e0b\uff1a"},"render-pipeline":{"id":"render-pipeline","title":"\u6e32\u67d3\uff0c\u63d0\u4ea4\u4e0e\u6302\u8f7d\uff08\u6e32\u67d3\u6d41\u6c34\u7ebf\uff09","description":"\u6587\u6863\u4ecb\u7ecd\u4e86\u5373\u5c06\u53d1\u5e03\u7684\u65b0\u6e32\u67d3\u5668 Fabric \u7684\u67b6\u6784\u3002"},"roottag":{"id":"roottag","title":"RootTag","description":"RootTag \u662f\u7528\u4e8e\u6807\u8bb0 React Native \u539f\u751f\u6839\u89c6\u56fe\u5c42\u7684\u4e0d\u900f\u660e\u6807\u8bc6\u7b26\uff08opaque identifier\uff09\u3002\u5177\u4f53\u6765\u8bf4\u5c31\u662f ReactRootView(android) \u6216\u662f RCTRootView(iOS) \u7684\u5b9e\u4f8b ID.","sidebar":"api"},"running-on-device":{"id":"running-on-device","title":"\u5728\u8bbe\u5907\u4e0a\u8fd0\u884c","description":"\u5728\u771f\u673a\u4e0a\u4ed4\u7ec6\u6d4b\u8bd5 app \u540e\u518d\u53d1\u5e03\u7ed9\u7528\u6237\u603b\u662f\u4e0d\u4f1a\u9519\u7684\u3002\u672c\u6587\u6863\u5c06\u6307\u5bfc\u4f60\u901a\u8fc7\u5fc5\u987b\u7684\u6b65\u9aa4\u5728\u8bbe\u5907\u4e0a\u8fd0\u884c React Native app\uff0c\u4e3a\u751f\u4ea7\u505a\u51c6\u5907\u3002","sidebar":"docs"},"running-on-simulator-ios":{"id":"running-on-simulator-ios","title":"\u5728iOS\u6a21\u62df\u5668\u4e0a\u8fd0\u884c","description":"\u542f\u52a8\u6a21\u62df\u5668","sidebar":"docs"},"safeareaview":{"id":"safeareaview","title":"SafeAreaView","description":"SafeAreaView\u7684\u76ee\u7684\u662f\u5728\u4e00\u4e2a\u201c\u5b89\u5168\u201d\u7684\u53ef\u89c6\u533a\u57df\u5185\u6e32\u67d3\u5185\u5bb9\u3002\u5177\u4f53\u6765\u8bf4\u5c31\u662f\u56e0\u4e3a\u76ee\u524d\u6709 iPhone X \u8fd9\u6837\u7684\u5e26\u6709\u201c\u5218\u6d77\u201d\u7684\u5168\u9762\u5c4f\u8bbe\u5907\uff0c\u6240\u4ee5\u9700\u8981\u907f\u514d\u5185\u5bb9\u6e32\u67d3\u5230\u4e0d\u53ef\u89c1\u7684\u201c\u5218\u6d77\u201d\u8303\u56f4\u5185\u3002\u672c\u7ec4\u4ef6\u76ee\u524d\u4ec5\u652f\u6301 iOS \u8bbe\u5907\u4ee5\u53ca iOS 11 \u6216\u66f4\u9ad8\u7248\u672c\u3002","sidebar":"\u7ec4\u4ef6"},"sample-application-movies":{"id":"sample-application-movies","title":"\u793a\u4f8b\u6559\u7a0b\uff1a\u7535\u5f71\u5217\u8868","description":"\u7b80\u4ecb"},"scrollview":{"id":"scrollview","title":"ScrollView","description":"\u4e00\u4e2a\u5c01\u88c5\u4e86\u5e73\u53f0\u7684 ScrollView\uff08\u6eda\u52a8\u89c6\u56fe\uff09\u7684\u7ec4\u4ef6\uff0c\u540c\u65f6\u8fd8\u96c6\u6210\u4e86\u89e6\u6478\u9501\u5b9a\u7684\u201c\u54cd\u5e94\u8005\u201d\u7cfb\u7edf\u3002","sidebar":"\u7ec4\u4ef6"},"sectionlist":{"id":"sectionlist","title":"SectionList","description":"\u9ad8\u6027\u80fd\u7684\u5206\u7ec4(section)\u5217\u8868\u7ec4\u4ef6\uff0c\u652f\u6301\u4e0b\u9762\u8fd9\u4e9b\u5e38\u7528\u7684\u529f\u80fd\uff1a","sidebar":"\u7ec4\u4ef6"},"security":{"id":"security","title":"\u7f51\u7edc\u5b89\u5168\u7b56\u7565","description":"\u5f00\u53d1\u5e94\u7528\u65f6\u5b89\u5168\u5e38\u5e38\u662f\u4e00\u4e2a\u88ab\u5ffd\u89c6\u7684\u8bdd\u9898\u3002\u7684\u786e\uff0c\u642d\u5efa\u4e00\u4e2a\u5b8c\u5168\u65e0\u61c8\u53ef\u51fb\u7684\u8f6f\u4ef6\u662f\u4e0d\u53ef\u80fd\u7684\u2014\u2014\u6211\u4eec\u8fd8\u6ca1\u6709\u53d1\u660e\u4e00\u4e2a\u5b8c\u5168\u575a\u4e0d\u53ef\u6467\u7684\u9501\uff08\u6bd5\u7adf\uff0c\u94f6\u884c\u91d1\u5e93\u5df2\u7ecf\u8db3\u591f\u575a\u56fa\u4f46\u4ecd\u7136\u4f1a\u88ab\u95ef\u5165\uff09\u3002\u7136\u800c\uff0c\u906d\u53d7\u6076\u610f\u653b\u51fb\u6216\u66b4\u9732\u5b89\u5168\u6f0f\u6d1e\u7684\u53ef\u80fd\u6027\u4e0e\u60a8\u613f\u610f\u6295\u5165\u4fdd\u62a4\u5e94\u7528\u7a0b\u5e8f\u514d\u53d7\u6b64\u7c7b\u4e8b\u4ef6\u7684\u52aa\u529b\u6210\u53cd\u6bd4\u3002\u5c3d\u7ba1\u666e\u901a\u7684\u6302\u9501\u53ef\u4ee5\u88ab\u64ac\u5f00\uff0c\u4f46\u5b83\u4ecd\u7136\u6bd4\u6a71\u67dc\u6302\u94a9\u66f4\u96be\u653b\u7834\uff01","sidebar":"docs"},"segmentedcontrolios":{"id":"segmentedcontrolios","title":"\ud83d\udea7 SegmentedControlIOS","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/segmented-control instead."},"settings":{"id":"settings","title":"Settings","description":"Settings\u662f\u5bf9NSUserDefaults\u7684\u5c01\u88c5\u3002\u5b83\u662fiOS\u5e73\u53f0\u4e0a\u7684\u4e00\u79cd\u6301\u4e45\u7684\u952e\u503c\u5bf9\u5b58\u50a8\u3002","sidebar":"api"},"shadow-props":{"id":"shadow-props","title":"\u9634\u5f71\u6837\u5f0f\u5c5e\u6027","description":"These properties are iOS only - for similar functionality on Android, use the elevation property.","sidebar":"\u7ec4\u4ef6"},"share":{"id":"share","title":"Share","description":"\u793a\u4f8b","sidebar":"api"},"signed-apk-android":{"id":"signed-apk-android","title":"\u6253\u5305\u53d1\u5e03","description":"Android \u8981\u6c42\u6240\u6709\u5e94\u7528\u90fd\u6709\u4e00\u4e2a\u6570\u5b57\u7b7e\u540d\u624d\u4f1a\u88ab\u5141\u8bb8\u5b89\u88c5\u5728\u7528\u6237\u624b\u673a\u4e0a\uff0c\u6240\u4ee5\u5728\u628a\u5e94\u7528\u53d1\u5e03\u5230\u5e94\u7528\u5e02\u573a\u4e4b\u524d\uff0c\u4f60\u9700\u8981\u5148\u751f\u6210\u4e00\u4e2a\u7b7e\u540d\u7684 AAB \u6216 APK \u5305\uff08Google Play \u73b0\u5728\u8981\u6c42 AAB \u683c\u5f0f\uff0c\u800c\u56fd\u5185\u7684\u5e94\u7528\u5e02\u573a\u76ee\u524d\u4ec5\u652f\u6301 APK \u683c\u5f0f\u3002\u4f46\u65e0\u8bba\u54ea\u79cd\u683c\u5f0f\uff0c\u4e0b\u9762\u7684\u7b7e\u540d\u6b65\u9aa4\u662f\u4e00\u6837\u7684\uff09\u3002Android \u5f00\u53d1\u8005\u5b98\u7f51\u4e0a\u7684\u5982\u4f55\u7ed9\u4f60\u7684\u5e94\u7528\u7b7e\u540d\u6587\u6863\u63cf\u8ff0\u4e86\u7b7e\u540d\u7684\u7ec6\u8282\u3002\u672c\u6307\u5357\u65e8\u5728\u63d0\u4f9b\u4e00\u4e2a\u7b80\u5316\u7684\u7b7e\u540d\u548c\u6253\u5305\u7684\u64cd\u4f5c\u6b65\u9aa4\uff0c\u4e0d\u4f1a\u6d89\u53ca\u592a\u591a\u7406\u8bba\u3002","sidebar":"docs"},"slider":{"id":"slider","title":"\ud83d\udea7 Slider","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/slider instead."},"speeding-ci-builds":{"id":"speeding-ci-builds","title":"\u4f18\u5316 CI \u6784\u5efa","description":"You or your company may have set up a Continuous Integration (CI) environment to test your React Native application."},"state":{"id":"state","title":"State\uff08\u72b6\u6001\uff09","description":"\u6211\u4eec\u4f7f\u7528\u4e24\u79cd\u6570\u636e\u6765\u63a7\u5236\u4e00\u4e2a\u7ec4\u4ef6\uff1aprops\u548cstate\u3002props\u662f\u5728\u7236\u7ec4\u4ef6\u4e2d\u6307\u5b9a\uff0c\u800c\u4e14\u4e00\u7ecf\u6307\u5b9a\uff0c\u5728\u88ab\u6307\u5b9a\u7684\u7ec4\u4ef6\u7684\u751f\u547d\u5468\u671f\u4e2d\u5219\u4e0d\u518d\u6539\u53d8\u3002\u5bf9\u4e8e\u9700\u8981\u6539\u53d8\u7684\u6570\u636e\uff0c\u6211\u4eec\u9700\u8981\u4f7f\u7528state\u3002"},"statusbar":{"id":"statusbar","title":"StatusBar","description":"\u63a7\u5236\u5e94\u7528\u72b6\u6001\u680f\u7684\u7ec4\u4ef6\u3002","sidebar":"\u7ec4\u4ef6"},"style":{"id":"style","title":"\u6837\u5f0f","description":"\u5728 React Native \u4e2d\uff0c\u4f60\u5e76\u4e0d\u9700\u8981\u5b66\u4e60\u4ec0\u4e48\u7279\u6b8a\u7684\u8bed\u6cd5\u6765\u5b9a\u4e49\u6837\u5f0f\u3002\u6211\u4eec\u4ecd\u7136\u662f\u4f7f\u7528 JavaScript \u6765\u5199\u6837\u5f0f\u3002\u6240\u6709\u7684\u6838\u5fc3\u7ec4\u4ef6\u90fd\u63a5\u53d7\u540d\u4e3astyle\u7684\u5c5e\u6027\u3002\u8fd9\u4e9b\u6837\u5f0f\u540d\u57fa\u672c\u4e0a\u662f\u9075\u5faa\u4e86 web \u4e0a\u7684 CSS \u7684\u547d\u540d\uff0c\u53ea\u662f\u6309\u7167 JS \u7684\u8bed\u6cd5\u8981\u6c42\u4f7f\u7528\u4e86\u9a7c\u5cf0\u547d\u540d\u6cd5\uff0c\u4f8b\u5982\u5c06background-color\u6539\u4e3abackgroundColor\u3002","sidebar":"docs"},"stylesheet":{"id":"stylesheet","title":"StyleSheet","description":"StyleSheet \u63d0\u4f9b\u4e86\u4e00\u79cd\u7c7b\u4f3c CSS \u6837\u5f0f\u8868\u7684\u62bd\u8c61\u3002","sidebar":"api"},"switch":{"id":"switch","title":"Switch","description":"\u8de8\u5e73\u53f0\u901a\u7528\u7684\u201c\u5f00\u5173\u201d\u7ec4\u4ef6\u3002","sidebar":"\u7ec4\u4ef6"},"symbolication":{"id":"symbolication","title":"Symbolicating a stack trace","description":"If a React Native app throws an unhandled exception in a release build, the output may be obfuscated and hard to read:"},"systrace":{"id":"systrace","title":"Systrace","description":"Systrace is a standard Android marker-based profiling tool (and is installed when you install the Android platform-tools package). Profiled code blocks are surrounded by start/end markers which are then visualized in a colorful chart format. Both the Android SDK and React Native framework provide standard markers that you can visualize.","sidebar":"api"},"testing-overview":{"id":"testing-overview","title":"Testing","description":"This guide introduces React Native developers to the key concepts behind testing, how to write good tests, and what kinds of tests you can incorporate into your workflow.","sidebar":"docs"},"text":{"id":"text","title":"Text","description":"\u4e00\u4e2a\u7528\u4e8e\u663e\u793a\u6587\u672c\u7684 React \u7ec4\u4ef6\uff0c\u5e76\u4e14\u5b83\u4e5f\u652f\u6301\u5d4c\u5957\u3001\u6837\u5f0f\uff0c\u4ee5\u53ca\u89e6\u6478\u5904\u7406\u3002","sidebar":"\u7ec4\u4ef6"},"text-style-props":{"id":"text-style-props","title":"Text \u6837\u5f0f\u5c5e\u6027","description":"\u793a\u4f8b","sidebar":"\u7ec4\u4ef6"},"textinput":{"id":"textinput","title":"TextInput","description":"TextInput \u662f\u4e00\u4e2a\u5141\u8bb8\u7528\u6237\u5728\u5e94\u7528\u4e2d\u901a\u8fc7\u952e\u76d8\u8f93\u5165\u6587\u672c\u7684\u57fa\u672c\u7ec4\u4ef6\u3002\u672c\u7ec4\u4ef6\u7684\u5c5e\u6027\u63d0\u4f9b\u4e86\u591a\u79cd\u7279\u6027\u7684\u914d\u7f6e\uff0c\u8b6c\u5982\u81ea\u52a8\u5b8c\u6210\u3001\u81ea\u52a8\u5927\u5c0f\u5199\u3001\u5360\u4f4d\u6587\u5b57\uff0c\u4ee5\u53ca\u591a\u79cd\u4e0d\u540c\u7684\u952e\u76d8\u7c7b\u578b\uff08\u5982\u7eaf\u6570\u5b57\u952e\u76d8\uff09\u7b49\u7b49\u3002","sidebar":"\u7ec4\u4ef6"},"the-new-architecture/backward-compatibility":{"id":"the-new-architecture/backward-compatibility","title":"\u5411\u540e\u517c\u5bb9\u7684\u610f\u4e49","description":"\u521b\u5efa\u4e00\u4e2a\u5411\u540e\u517c\u5bb9\u7684\u6a21\u5757\u5f88\u91cd\u8981\uff0c\u8fd9\u6837\u53ef\u4ee5\u5b9e\u73b0\u5728\u65e7\u67b6\u6784\u548c\u65b0\u67b6\u6784\u4e2d\u90fd\u80fd\u5de5\u4f5c\u7684\u5e93\u3002\u5e76\u4e0d\u662f\u6240\u6709\u7528\u6237\u90fd\u4f1a\u7acb\u523b\u8f6c\u5230\u65b0\u67b6\u6784\uff0c\u6700\u597d\u5728\u4ed6\u4eec\u4f7f\u7528\u65e7\u67b6\u6784\u65f6\u4ecd\u7136\u4fdd\u6301\u517c\u5bb9\u3002"},"the-new-architecture/backward-compatibility-fabric-components":{"id":"the-new-architecture/backward-compatibility-fabric-components","title":"\u4f7f Fabric \u7ec4\u4ef6\u4e0e\u4f20\u7edf\u539f\u751f\u7ec4\u4ef6\u517c\u5bb9","description":"\u521b\u5efa\u5411\u540e\u517c\u5bb9\u7684 Fabric \u539f\u751f\u7ec4\u4ef6\u9700\u8981\u4e86\u89e3\u5982\u4f55\u521b\u5efa\u4f20\u7edf\u7684\u539f\u751f\u7ec4\u4ef6\u3002\u8981\u56de\u5fc6\u8fd9\u4e9b\u6982\u5ff5\uff0c\u8bf7\u67e5\u770b\u6b64\u6307\u5357\u3002"},"the-new-architecture/backward-compatibility-turbomodules":{"id":"the-new-architecture/backward-compatibility-turbomodules","title":"\u4f7f Turbo \u6a21\u5757\u4e0e\u4f20\u7edf\u539f\u751f\u6a21\u5757\u517c\u5bb9","description":"\u521b\u5efa\u5411\u540e\u517c\u5bb9\u7684 Turbo \u539f\u751f\u6a21\u5757\u9700\u8981\u4e86\u89e3\u5982\u4f55\u521b\u5efa\u4f20\u7edf\u7684\u539f\u751f\u6a21\u5757\u3002\u8981\u56de\u5fc6\u8fd9\u4e9b\u6982\u5ff5\uff0c\u8bf7\u67e5\u770b\u6b64\u6307\u5357\u3002"},"the-new-architecture/codegen-cli":{"id":"the-new-architecture/codegen-cli","title":"Codegen \u547d\u4ee4\u884c\u5de5\u5177","description":"\u8c03\u7528 Gradle \u6216\u624b\u52a8\u8c03\u7528\u811a\u672c\u53ef\u80fd\u5f88\u96be\u8bb0\u4f4f\uff0c\u5e76\u4e14\u9700\u8981\u5f88\u591a\u6b65\u9aa4\u3002","sidebar":"docs"},"the-new-architecture/create-module-library":{"id":"the-new-architecture/create-module-library","title":"\u521b\u5efa\u6a21\u5757\u5e93","description":"React Native \u6709\u4e00\u4e2a\u4e30\u5bcc\u7684\u751f\u6001\u7cfb\u7edf\u5e93\u6765\u89e3\u51b3\u5e38\u89c1\u95ee\u9898\u3002\u6211\u4eec\u5728 reactnative.directory \u7f51\u7ad9\u4e0a\u6536\u96c6 React Native \u5e93\uff0c\u8fd9\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u8d44\u6e90\uff0c\u503c\u5f97\u6bcf\u4e2a React Native \u5f00\u53d1\u8005\u6536\u85cf\u3002","sidebar":"docs"},"the-new-architecture/custom-cxx-types":{"id":"the-new-architecture/custom-cxx-types","title":"\u9ad8\u7ea7\uff1a\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b","description":"\u672c\u6307\u5357\u5047\u8bbe\u4f60\u719f\u6089 \u7eaf C++ Turbo Native \u6a21\u5757 \u6307\u5357\u3002\u5b83\u5c06\u5728\u6b64\u57fa\u7840\u4e0a\u8fdb\u884c\u6784\u5efa\u3002","sidebar":"docs"},"the-new-architecture/cxx-custom-types":{"id":"the-new-architecture/cxx-custom-types","title":"\u652f\u6301\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b","description":"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cC++ Turbo Native \u6a21\u5757\u652f\u6301\u5927\u591a\u6570 std:: \u6807\u51c6\u7c7b\u578b\u7684\u6865\u63a5\u529f\u80fd\u3002"},"the-new-architecture/cxx-cxxturbomodules":{"id":"the-new-architecture/cxx-cxxturbomodules","title":"C++ Turbo \u539f\u751f\u6a21\u5757","description":"\u672c\u6307\u5357\u5c06\u5411\u60a8\u5c55\u793a\u5982\u4f55\u4ec5\u4f7f\u7528 C++ \u5b9e\u73b0 Turbo \u539f\u751f\u6a21\u5757\uff0c\u4ee5\u4fbf\u4e0e\u4efb\u4f55\u652f\u6301\u7684\u5e73\u53f0\uff08Android\u3001iOS\u3001macOS \u6216 Windows\uff09\u5171\u4eab\u76f8\u540c\u7684\u5b9e\u73b0\u3002"},"the-new-architecture/landing-page":{"id":"the-new-architecture/landing-page","title":"\u65b0\u67b6\u6784\u4ecb\u7ecd","description":"\u4ece 0.68 \u7248\u672c\u5f00\u59cb\uff0cReact Native \u63d0\u4f9b\u4e86\u65b0\u67b6\u6784\uff0c\u5b83\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u4e86\u6784\u5efa\u9ad8\u6027\u80fd\u548c\u54cd\u5e94\u5f0f\u5e94\u7528\u7684\u65b0\u529f\u80fd\u3002\u8bf7\u8bbf\u95ee\\"\u4e3a\u4f55\u8981\u8bbe\u8ba1\u65b0\u67b6\u6784\\"\u6765\u4e86\u89e3\u66f4\u591a\u5173\u4e8e\u4fc3\u4f7f\u6211\u4eec\u51b3\u5b9a\u91cd\u65b0\u67b6\u6784\u7684\u539f\u56e0\uff0c\u4ee5\u53ca\u5b83\u63d0\u4f9b\u7684\u597d\u5904\u3002"},"the-new-architecture/pillars":{"id":"the-new-architecture/pillars","title":"\u65b0\u67b6\u6784\u7684\u4e24\u5927\u652f\u67f1","description":"\u65b0\u67b6\u6784\u4e3b\u8981\u7531\u4e24\u5927\u652f\u67f1\u7ec4\u6210\uff1a"},"the-new-architecture/pillars-codegen":{"id":"the-new-architecture/pillars-codegen","title":"Codegen","description":"Codegen \u4e0d\u7b97\u662f\u65b0\u67b6\u6784\u7684\u4e3b\u8981\u7ec4\u6210\u90e8\u5206\uff0c\u5b83\u662f\u4e00\u4e2a\u5e2e\u52a9\u6211\u4eec\u907f\u514d\u7f16\u5199\u91cd\u590d\u4ee3\u7801\u7684\u5de5\u5177\u3002Codegen \u5e76\u975e\u5fc5\u9009\u9879\uff0c\u60a8\u4ecd\u7136\u53ef\u4ee5\u624b\u5199\u5b83\u6240\u751f\u6210\u7684\u4ee3\u7801\uff0c\u4f46\u662f\u4f7f\u7528\u5b83\u6765\u751f\u6210\u811a\u624b\u67b6\u4ee3\u7801\u53ef\u4ee5\u5e2e\u60a8\u8282\u7701\u4e0d\u5c11\u65f6\u95f4\u3002"},"the-new-architecture/pillars-fabric-components":{"id":"the-new-architecture/pillars-fabric-components","title":"Fabric \u7ec4\u4ef6","description":"Fabric \u7ec4\u4ef6\u662f\u4e00\u79cd\u4f7f\u7528 Fabric \u6e32\u67d3\u5668\u6e32\u67d3\u5e76\u5c55\u793a\u5728\u5c4f\u5e55\u4e0a\u7684 UI \u7ec4\u4ef6\u3002\u5728\u65b0\u67b6\u6784\u4e2d\uff0c\u4f7f\u7528 Fabric \u7ec4\u4ef6\u66ff\u4ee3\u539f\u751f\u7ec4\u4ef6\u5177\u6709\u4ee5\u4e0b\u4f18\u52bf\uff1a"},"the-new-architecture/pillars-turbomodules":{"id":"the-new-architecture/pillars-turbomodules","title":"TurboModules","description":"\u5982\u679c\u60a8\u4f7f\u7528\u8fc7 React Native\uff0c\u60a8\u53ef\u80fd\u4e86\u89e3\u8fc7 Native Modules \u8fd9\u4e2a\u6982\u5ff5\u3002\u5b83\u53ef\u4ee5\u901a\u8fc7 React Native \u7684\u300cBridge\u300d\u5e2e\u52a9 JavaScript \u548c\u539f\u751f\u4ee3\u7801\u8fdb\u884c\u4ea4\u4e92\uff0c\u5e76\u4f7f\u7528\u8de8\u5e73\u53f0\u7684\u6570\u636e\u683c\u5f0f JSON \u8fdb\u884c\u901a\u8baf\u3002"},"the-new-architecture/pure-cxx-modules":{"id":"the-new-architecture/pure-cxx-modules","title":"\u7eaf C++ Turbo \u539f\u751f\u6a21\u5757","description":"\u7f16\u5199 C++ \u6a21\u5757\u662f\u8de8 Android \u548c iOS \u5171\u4eab\u5e73\u53f0\u65e0\u5173\u4ee3\u7801\u7684\u6700\u4f73\u65b9\u5f0f\u3002\u4f7f\u7528\u7eaf C++ \u6a21\u5757\uff0c\u60a8\u53ea\u9700\u7f16\u5199\u4e00\u6b21\u903b\u8f91\uff0c\u5373\u53ef\u5728\u6240\u6709\u5e73\u53f0\u4e0a\u91cd\u7528\u5b83\uff0c\u800c\u65e0\u9700\u7f16\u5199\u5e73\u53f0\u7279\u5b9a\u7684\u4ee3\u7801\u3002","sidebar":"docs"},"the-new-architecture/use-app-template":{"id":"the-new-architecture/use-app-template","title":"\u521b\u5efa\u542f\u7528\u65b0\u67b6\u6784\u7684\u5e94\u7528","description":"\u672c\u6587\u6863\u5c06\u5e2e\u52a9\u4f60\u4ece\u5934\u521b\u5efa\u4e00\u4e2a\u542f\u7528\u4e86\u65b0\u67b6\u6784\u7684 React Native \u5e94\u7528\u3002"},"the-new-architecture/using-codegen":{"id":"the-new-architecture/using-codegen","title":"\u4f7f\u7528 Codegen","description":"\u672c\u6307\u5357\u5c06\u6559\u4f60\u5982\u4f55\uff1a","sidebar":"docs"},"the-new-architecture/what-is-codegen":{"id":"the-new-architecture/what-is-codegen","title":"\u4ec0\u4e48\u662f Codegen\uff1f","description":"Codegen \u662f\u4e00\u4e2a\u907f\u514d\u7f16\u5199\u5927\u91cf\u91cd\u590d\u4ee3\u7801\u7684\u5de5\u5177\u3002\u4f7f\u7528 Codegen \u5e76\u4e0d\u662f\u5fc5\u987b\u7684\uff1a\u60a8\u53ef\u4ee5\u624b\u52a8\u7f16\u5199\u6240\u6709\u751f\u6210\u7684\u4ee3\u7801\u3002\u7136\u800c\uff0cCodegen \u751f\u6210\u7684\u811a\u624b\u67b6\u4ee3\u7801\u53ef\u4ee5\u8282\u7701\u60a8\u5f88\u591a\u65f6\u95f4\u3002","sidebar":"docs"},"the-new-architecture/why":{"id":"the-new-architecture/why","title":"\u4e3a\u4f55\u8981\u8bbe\u8ba1\u65b0\u67b6\u6784","description":"\u65b0\u67b6\u6784\u7684\u76ee\u6807\u662f\u89e3\u51b3\u56f0\u6270\u65e7\u67b6\u6784\u5728\u6027\u80fd\u548c\u7075\u6d3b\u6027\u65b9\u9762\u7684\u4e00\u4e9b\u95ee\u9898\u3002\u672c\u8282\u63d0\u4f9b\u4e86\u57fa\u672c\u7684\u80cc\u666f\uff0c\u4ee5\u4e86\u89e3\u65e7\u67b6\u6784\u7684\u5c40\u9650\u6027\uff0c\u4ee5\u53ca\u5982\u4f55\u901a\u8fc7\u65b0\u67b6\u6784\u6765\u514b\u670d\u8fd9\u4e9b\u5c40\u9650\u6027\u3002"},"threading-model":{"id":"threading-model","title":"\u7ebf\u7a0b\u6a21\u578b","description":"\u6587\u6863\u4ecb\u7ecd\u4e86\u5373\u5c06\u53d1\u5e03\u7684\u65b0\u6e32\u67d3\u5668 Fabric \u7684\u67b6\u6784\u3002"},"timepickerandroid":{"id":"timepickerandroid","title":"\ud83d\udea7 TimePickerAndroid","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/datetimepicker instead."},"timers":{"id":"timers","title":"\u5b9a\u65f6\u5668","description":"\u5b9a\u65f6\u5668\u662f\u4e00\u4e2a\u5e94\u7528\u4e2d\u975e\u5e38\u91cd\u8981\u7684\u90e8\u5206\u3002React Native \u5b9e\u73b0\u4e86\u548c\u6d4f\u89c8\u5668\u4e00\u81f4\u7684\u5b9a\u65f6\u5668 Timer\u3002","sidebar":"docs"},"toastandroid":{"id":"toastandroid","title":"ToastAndroid","description":"\u672c\u6a21\u5757\u5c06\u539f\u751f\u7684 ToastAndroid \u6a21\u5757\u5bfc\u51fa\u4e3a\u4e00\u4e2a JS \u6a21\u5757\uff0c\u7528\u4e8e\u5728 Android \u8bbe\u5907\u4e0a\u663e\u793a\u4e00\u4e2a\u60ac\u6d6e\u7684\u63d0\u793a\u4fe1\u606f\u3002\u672c\u6a21\u5757\u5305\u542b\u4e00\u4e2ashow\u65b9\u6cd5\u63a5\u53d7\u4ee5\u4e0b\u7684\u53c2\u6570\uff1a","sidebar":"api"},"touchablehighlight":{"id":"touchablehighlight","title":"TouchableHighlight","description":"\u6211\u4eec\u5efa\u8bae\u4f7f\u7528Pressable\u7ec4\u4ef6\uff0c\u5b83\u66f4\u5177\u6269\u5c55\u6027\u4e14\u4f1a\u662f\u5b98\u65b9\u672a\u6765\u529b\u63a8\u7684\u4e3b\u6d41\u3002","sidebar":"\u7ec4\u4ef6"},"touchablenativefeedback":{"id":"touchablenativefeedback","title":"TouchableNativeFeedback","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"\u7ec4\u4ef6"},"touchableopacity":{"id":"touchableopacity","title":"TouchableOpacity","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"\u7ec4\u4ef6"},"touchablewithoutfeedback":{"id":"touchablewithoutfeedback","title":"TouchableWithoutFeedback","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"\u7ec4\u4ef6"},"transforms":{"id":"transforms","title":"\u53d8\u6362\uff08Transform\uff09","description":"\u53d8\u6362\uff08Transform\uff09\u662f\u6837\u5f0f\u5c5e\u6027\uff0c\u53ef\u5e2e\u52a9\u60a8\u4f7f\u7528 2D \u6216 3D \u53d8\u6362\u4fee\u6539\u7ec4\u4ef6\u7684\u5916\u89c2\u548c\u4f4d\u7f6e\u3002\u7136\u800c\uff0c\u5373\u4fbf\u4f7f\u7528\u4e86\u53d8\u6362\uff0c\u4f7f\u7528\u53d8\u6362\u7684\u7ec4\u4ef6\u7684\u5e03\u5c40\u5e76\u4e0d\u4f1a\u53d8\u5316\uff0c\u56e0\u6b64\u53ef\u80fd\u4f1a\u4e0e\u9644\u8fd1\u7684\u7ec4\u4ef6\u91cd\u53e0\u3002\u60a8\u53ef\u4ee5\u5bf9\u53d8\u6362\u7684\u7ec4\u4ef6\u3001\u9644\u8fd1\u7684\u7ec4\u4ef6\u5e94\u7528\u8fb9\u8ddd\uff0c\u6216\u5bf9\u5bb9\u5668\u5e94\u7528\u586b\u5145\uff0c\u4ee5\u9632\u6b62\u8fd9\u79cd\u91cd\u53e0\u3002","sidebar":"api"},"troubleshooting":{"id":"troubleshooting","title":"Troubleshooting","description":"These are some common issues you may run into while setting up React Native. If you encounter something that is not listed here, try searching for the issue in GitHub."},"turbo-native-modules-android":{"id":"turbo-native-modules-android","title":"Turbo \u539f\u751f\u6a21\u5757\uff1aAndroid","description":"\u73b0\u5728\u6211\u4eec\u6765\u7f16\u5199\u4e00\u4e9b Android \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u786e\u4fdd localStorage \u5728\u5e94\u7528\u5173\u95ed\u540e\u4ecd\u7136\u53ef\u4ee5\u6301\u4e45\u4fdd\u5b58\u6570\u636e\u3002"},"turbo-native-modules-introduction":{"id":"turbo-native-modules-introduction","title":"Turbo \u539f\u751f\u6a21\u5757\u4ecb\u7ecd","description":"\u4f60\u7684 React Native \u5e94\u7528\u4ee3\u7801\u53ef\u80fd\u9700\u8981\u4e0e React Native \u6216\u73b0\u6709\u5e93\u672a\u63d0\u4f9b\u7684\u539f\u751f\u5e73\u53f0 API \u8fdb\u884c\u4ea4\u4e92\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528 Turbo \u539f\u751f\u6a21\u5757 \u81ea\u5df1\u7f16\u5199\u96c6\u6210\u4ee3\u7801\u3002\u672c\u6307\u5357\u5c06\u5411\u4f60\u5c55\u793a\u5982\u4f55\u7f16\u5199\u4e00\u4e2a\u3002","sidebar":"docs"},"turbo-native-modules-ios":{"id":"turbo-native-modules-ios","title":"Turbo \u539f\u751f\u6a21\u5757\uff1aiOS","description":"\u73b0\u5728\u6211\u4eec\u6765\u7f16\u5199\u4e00\u4e9b iOS \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u786e\u4fdd localStorage \u5728\u5e94\u7528\u5173\u95ed\u540e\u4ecd\u7136\u53ef\u4ee5\u6301\u4e45\u4fdd\u5b58\u6570\u636e\u3002"},"tutorial":{"id":"tutorial","title":"\u793a\u4f8b\u6559\u7a0b\uff1aHello World","description":"React Native \u770b\u8d77\u6765\u5f88\u50cf React\uff0c\u53ea\u4e0d\u8fc7\u5176\u57fa\u7840\u7ec4\u4ef6\u662f\u539f\u751f\u7ec4\u4ef6\u800c\u975e web \u7ec4\u4ef6\u3002\u8981\u7406\u89e3 React Native \u5e94\u7528\u7684\u57fa\u672c\u7ed3\u6784\uff0c\u9996\u5148\u9700\u8981\u4e86\u89e3\u4e00\u4e9b\u57fa\u672c\u7684 React \u7684\u6982\u5ff5\uff0c\u6bd4\u5982 JSX \u8bed\u6cd5\u3001\u7ec4\u4ef6\u3001state\u72b6\u6001\u4ee5\u53caprops\u5c5e\u6027\u3002\u5982\u679c\u4f60\u5df2\u7ecf\u4e86\u89e3\u4e86 React\uff0c\u90a3\u4e48\u8fd8\u9700\u8981\u638c\u63e1\u4e00\u4e9b React Native \u7279\u6709\u7684\u77e5\u8bc6\uff0c\u6bd4\u5982\u539f\u751f\u7ec4\u4ef6\u7684\u4f7f\u7528\u3002\u8fd9\u7bc7\u6559\u7a0b\u53ef\u4ee5\u4f9b\u4efb\u4f55\u57fa\u7840\u7684\u8bfb\u8005\u5b66\u4e60\uff0c\u4e0d\u7ba1\u4f60\u662f\u5426\u6709 React \u65b9\u9762\u7684\u7ecf\u9a8c\u3002"},"typescript":{"id":"typescript","title":"\u4f7f\u7528 TypeScript","description":"TypeScript \u662f\u4e00\u79cd\u901a\u8fc7\u6dfb\u52a0\u7c7b\u578b\u5b9a\u4e49\u6765\u6269\u5c55 JavaScript \u7684\u8bed\u8a00\u3002\u65b0\u7684 React Native \u9879\u76ee\u9ed8\u8ba4\u4ee5 TypeScript \u4e3a\u76ee\u6807\uff0c\u540c\u65f6\u4e5f\u652f\u6301 JavaScript \u548c Flow\u3002","sidebar":"docs"},"upgrading":{"id":"upgrading","title":"\u66f4\u65b0","description":"\u65f6\u523b\u5c06 React Native \u66f4\u65b0\u5230\u6700\u65b0\u7684\u7248\u672c\uff0c\u53ef\u4ee5\u83b7\u5f97\u66f4\u591a API\u3001\u89c6\u56fe\u3001\u5f00\u53d1\u8005\u5de5\u5177\u4ee5\u53ca\u5176\u4ed6\u4e00\u4e9b\u597d\u4e1c\u897f\uff08\u8bd1\u6ce8\uff1a\u5b98\u65b9\u5f00\u53d1\u4efb\u52a1\u7e41\u91cd\uff0c\u4eba\u624b\u7d27\u7f3a\uff0c\u51e0\u4e4e\u4e0d\u4f1a\u5bf9\u65e7\u7248\u672c\u63d0\u4f9b\u7ef4\u62a4\u652f\u6301\uff0c\u6240\u4ee5\u5373\u4fbf\u66f4\u65b0\u53ef\u80fd\u5e26\u6765\u4e00\u4e9b\u517c\u5bb9\u4e0a\u7684\u53d8\u66f4\uff0c\u4f46\u5efa\u8bae\u5f00\u53d1\u8005\u8fd8\u662f\u5c3d\u4e00\u5207\u53ef\u80fd\u7b2c\u4e00\u65f6\u95f4\u66f4\u65b0\uff09\u3002\u7531\u4e8e\u4e00\u4e2a\u5b8c\u6574\u7684 React Native \u9879\u76ee\u662f\u7531 Android \u9879\u76ee\u3001iOS \u9879\u76ee\u548c JavaScript \u9879\u76ee\u7ec4\u6210\u7684\uff0c\u4e14\u90fd\u6253\u5305\u5728\u4e00\u4e2a npm \u5305\u4e2d\uff0c\u6240\u4ee5\u5347\u7ea7\u53ef\u80fd\u4f1a\u6709\u4e00\u4e9b\u9ebb\u70e6\u3002\u6211\u4eec\u4f1a\u5c3d\u91cf\u7b80\u5316\u8fd9\u4e00\u6d41\u7a0b\u3002\u4f60\u53ef\u4ee5\u5728\u9879\u76ee\u76ee\u5f55\u4e0b\u4f7f\u7528npx react-native info\u547d\u4ee4\u67e5\u770b\u5f53\u524d\u7684\u7248\u672c\u3002","sidebar":"docs"},"usecolorscheme":{"id":"usecolorscheme","title":"useColorScheme","description":"useColorScheme \u8fd9\u4e2aReact hook \u63d0\u4f9b\u5e76\u8ba2\u9605\u6765\u81eaAppearance\u6a21\u5757\u7684\u989c\u8272\u65b9\u6848\u66f4\u65b0\u3002\u8fd4\u56de\u503c\u8868\u793a\u5f53\u524d\u7528\u6237\u9996\u9009\u7684\u989c\u8272\u65b9\u6848\u3002\u8be5\u503c\u53ef\u4ee5\u7a0d\u540e\u901a\u8fc7\u76f4\u63a5\u7528\u6237\u52a8\u4f5c\uff08\u4f8b\u5982\uff0c\u8bbe\u5907\u8bbe\u7f6e\u4e2d\u7684\u4e3b\u9898\u9009\u62e9\uff09\u6216\u6839\u636e\u65f6\u95f4\u8868\uff08\u4f8b\u5982\uff0c\u9075\u5faa\u767d\u5929/\u591c\u665a\u5468\u671f\u7684\u4eae\u4e3b\u9898\u548c\u6697\u4e3b\u9898\uff09\u6765\u66f4\u65b0\u3002","sidebar":"api"},"usewindowdimensions":{"id":"usewindowdimensions","title":"useWindowDimensions","description":"useWindowDimensions\u4f1a\u5728\u5c4f\u5e55\u5c3a\u5bf8\u53d8\u5316\u65f6\u81ea\u52a8\u66f4\u65b0\u83b7\u53d6\u5230\u7684\u8bbe\u5907width\u548cheight\u503c\u3002\u4f7f\u7528\u65b9\u6cd5\u5982\u4e0b\uff1a","sidebar":"api"},"using-a-listview":{"id":"using-a-listview","title":"\u4f7f\u7528\u957f\u5217\u8868","description":"React Native \u63d0\u4f9b\u4e86\u51e0\u4e2a\u9002\u7528\u4e8e\u5c55\u793a\u957f\u5217\u8868\u6570\u636e\u7684\u7ec4\u4ef6\uff0c\u4e00\u822c\u800c\u8a00\u6211\u4eec\u4f1a\u9009\u7528FlatList\u6216\u662fSectionList\u3002","sidebar":"docs"},"using-a-scrollview":{"id":"using-a-scrollview","title":"\u4f7f\u7528\u6eda\u52a8\u89c6\u56fe","description":"ScrollView\u662f\u4e00\u4e2a\u901a\u7528\u7684\u53ef\u6eda\u52a8\u7684\u5bb9\u5668\uff0c\u4f60\u53ef\u4ee5\u5728\u5176\u4e2d\u653e\u5165\u591a\u4e2a\u7ec4\u4ef6\u548c\u89c6\u56fe\uff0c\u800c\u4e14\u8fd9\u4e9b\u7ec4\u4ef6\u5e76\u4e0d\u9700\u8981\u662f\u540c\u7c7b\u578b\u7684\u3002ScrollView \u4e0d\u4ec5\u53ef\u4ee5\u5782\u76f4\u6eda\u52a8\uff0c\u8fd8\u80fd\u6c34\u5e73\u6eda\u52a8\uff08\u901a\u8fc7horizontal\u5c5e\u6027\u6765\u8bbe\u7f6e\uff09\u3002","sidebar":"docs"},"vibration":{"id":"vibration","title":"Vibration","description":"\u4f7f\u8bbe\u5907\u632f\u52a8\u3002","sidebar":"api"},"view":{"id":"view","title":"View","description":"\u4f5c\u4e3a\u521b\u5efa UI \u65f6\u6700\u57fa\u7840\u7684\u7ec4\u4ef6\uff0cView \u662f\u4e00\u4e2a\u652f\u6301 Flexbox \u5e03\u5c40\u3001\u6837\u5f0f\u3001\u89e6\u6478\u54cd\u5e94\u3001\u548c\u4e00\u4e9b\u65e0\u969c\u788d\u529f\u80fd\u7684\u5bb9\u5668\u3002\u4e0d\u8bba\u5728\u4ec0\u4e48\u5e73\u53f0\u4e0a\uff0cView \u90fd\u76f4\u63a5\u5bf9\u5e94\u5f53\u524d\u5e73\u53f0\u7684\u539f\u751f\u89c6\u56fe\uff0c\u65e0\u8bba\u5b83\u662f UIView\u3001div \u8fd8\u662f android.view.View\u3002","sidebar":"\u7ec4\u4ef6"},"view-flattening":{"id":"view-flattening","title":"\u89c6\u56fe\u62cd\u5e73","description":"This document refers to the architecture of the new renderer, Fabric, that is in active roll-out."},"view-style-props":{"id":"view-style-props","title":"View \u6837\u5f0f\u5c5e\u6027","description":"\u793a\u4f8b","sidebar":"\u7ec4\u4ef6"},"viewpagerandroid":{"id":"viewpagerandroid","title":"\ud83d\udea7 ViewPagerAndroid","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/viewpager instead."},"viewtoken":{"id":"viewtoken","title":"ViewToken \u5bf9\u8c61","description":"ViewToken object is returned as one of properties in the onViewableItemsChanged callback, for example in FlatList component. It is exported by ViewabilityHelper.js.","sidebar":"\u7ec4\u4ef6"},"virtualizedlist":{"id":"virtualizedlist","title":"VirtualizedList","description":"FlatList\u548cSectionList\u7684\u5e95\u5c42\u5b9e\u73b0\u3002FlatList \u548c SectionList \u4f7f\u7528\u8d77\u6765\u66f4\u65b9\u4fbf\uff0c\u540c\u65f6\u4e5f\u6709\u76f8\u5bf9\u66f4\u8be6\u7ec6\u7684\u6587\u6863\u3002\u4e00\u822c\u6765\u8bf4\uff0c\u4ec5\u5f53\u60f3\u83b7\u5f97\u6bd4 FlatList \u66f4\u9ad8\u7684\u7075\u6d3b\u6027\uff08\u6bd4\u5982\u8bf4\u5728\u4f7f\u7528 immutable data \u800c\u4e0d\u662f \u666e\u901a\u6570\u7ec4\uff09\u7684\u65f6\u5019\uff0c\u4f60\u624d\u5e94\u8be5\u8003\u8651\u4f7f\u7528 VirtualizedList\u3002","sidebar":"\u7ec4\u4ef6"},"xplat-implementation":{"id":"xplat-implementation","title":"\u8de8\u5e73\u53f0\u7684\u5b9e\u73b0","description":"This document refers to the architecture of the new renderer, Fabric, that is in active roll-out."}}}}')}}]); \ No newline at end of file diff --git a/assets/js/2003fdf9.d93a0f43.js b/assets/js/2003fdf9.5e2724b0.js similarity index 66% rename from assets/js/2003fdf9.d93a0f43.js rename to assets/js/2003fdf9.5e2724b0.js index 69272dfea00..7dcc9395041 100644 --- a/assets/js/2003fdf9.d93a0f43.js +++ b/assets/js/2003fdf9.5e2724b0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[32243,84827,86464],{78154:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>m,frontMatter:()=>s,metadata:()=>l,toc:()=>u});var i=t(62540),a=t(43023),r=t(44067),o=t(49646),c=t(64034);const s={id:"fabric-native-components-android",title:"Fabric Native Modules: Android"},d=void 0,l={id:"fabric-native-components-android",title:"Fabric Native Modules: Android",description:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b Android \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a",source:"@site/../cndocs/fabric-native-components-android.md",sourceDirName:".",slug:"/fabric-native-components-android",permalink:"/docs/next/fabric-native-components-android",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/fabric-native-components-android.md",tags:[],version:"current",frontMatter:{id:"fabric-native-components-android",title:"Fabric Native Modules: Android"}},p={},u=[{value:"1. \u4f7f\u7528 Gradle \u8fd0\u884c Codegen",id:"1-\u4f7f\u7528-gradle-\u8fd0\u884c-codegen",level:3},{value:"2. \u7f16\u5199 ReactWebView",id:"2-\u7f16\u5199-reactwebview",level:3},{value:"3. Write the WebViewManager",id:"3-write-the-webviewmanager",level:3},{value:"4. Write the ReactWebViewPackage",id:"4-write-the-reactwebviewpackage",level:3},{value:"5. Register the ReactWebViewPackage in the application",id:"5-register-the-reactwebviewpackage-in-the-application",level:3}];function h(e){const n={code:"code",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b Android \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u8fd0\u884c Codegen"}),"\n",(0,i.jsxs)(n.li,{children:["\u7f16\u5199 ",(0,i.jsx)(n.code,{children:"ReactWebView"})," \u7684\u4ee3\u7801"]}),"\n",(0,i.jsxs)(n.li,{children:["\u7f16\u5199 ",(0,i.jsx)(n.code,{children:"ReactWebViewManager"})," \u7684\u4ee3\u7801"]}),"\n",(0,i.jsxs)(n.li,{children:["\u7f16\u5199 ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," \u7684\u4ee3\u7801"]}),"\n",(0,i.jsxs)(n.li,{children:["\u5728\u5e94\u7528\u4e2d\u6ce8\u518c ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"1-\u4f7f\u7528-gradle-\u8fd0\u884c-codegen",children:"1. \u4f7f\u7528 Gradle \u8fd0\u884c Codegen"}),"\n",(0,i.jsx)(n.p,{children:"\u8fd0\u884c\u4e00\u6b21\u4ee5\u751f\u6210\u4f60\u7684 IDE \u53ef\u4ee5\u4f7f\u7528\u7684\u6837\u677f\u4ee3\u7801\u3002"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",metastring:'title="Demo/"',children:"cd android\n./gradlew generateCodegenArtifactsFromSchema\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Codegen \u5c06\u751f\u6210\u4f60\u9700\u8981\u5b9e\u73b0 ",(0,i.jsx)(n.code,{children:"ViewManager"})," \u63a5\u53e3\u548c ",(0,i.jsx)(n.code,{children:"ViewManager"})," \u59d4\u6258\u7684 web \u89c6\u56fe\u3002"]}),"\n",(0,i.jsxs)(n.h3,{id:"2-\u7f16\u5199-reactwebview",children:["2. \u7f16\u5199 ",(0,i.jsx)(n.code,{children:"ReactWebView"})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ReactWebView"})," \u662f\u5305\u88c5 Android \u539f\u751f\u89c6\u56fe\u7684\u7ec4\u4ef6\uff0cReact Native \u5c06\u5728\u4f7f\u7528\u81ea\u5b9a\u4e49\u7ec4\u4ef6\u65f6\u6e32\u67d3\u5b83\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u5728 ",(0,i.jsx)(n.code,{children:"android/src/main/java/com/webview"})," \u6587\u4ef6\u5939\u4e2d\u521b\u5efa\u4e00\u4e2a ",(0,i.jsx)(n.code,{children:"ReactWebView.java"})," \u6216 ",(0,i.jsx)(n.code,{children:"ReactWebView.kt"})," \u6587\u4ef6\uff0c\u5e76\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\uff1a"]}),"\n",(0,i.jsxs)(r.A,{groupId:"android-language",queryString:!0,defaultValue:c.A.defaultAndroidLanguage,values:c.A.androidLanguages,children:[(0,i.jsx)(o.A,{value:"java",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebView.java"',children:'package com.webview;\n\nimport android.content.Context;\nimport android.util.AttributeSet;\nimport android.webkit.WebView;\nimport android.webkit.WebViewClient;\n\nimport com.facebook.react.bridge.Arguments;\nimport com.facebook.react.bridge.WritableMap;\nimport com.facebook.react.bridge.ReactContext;\nimport com.facebook.react.uimanager.UIManagerHelper;\nimport com.facebook.react.uimanager.events.Event;\n\npublic class ReactWebView extends WebView {\n public ReactWebView(Context context) {\n super(context);\n configureComponent();\n }\n\n public ReactWebView(Context context, AttributeSet attrs) {\n super(context, attrs);\n configureComponent();\n }\n\n public ReactWebView(Context context, AttributeSet attrs, int defStyleAttr) {\n super(context, attrs, defStyleAttr);\n configureComponent();\n }\n\n private void configureComponent() {\n this.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));\n this.setWebViewClient(new WebViewClient() {\n @Override\n public void onPageFinished(WebView view, String url) {\n emitOnScriptLoaded(OnScriptLoadedEventResult.success);\n }\n });\n }\n\n public void emitOnScriptLoaded(OnScriptLoadedEventResult result) {\n ReactContext reactContext = (ReactContext) context;\n int surfaceId = UIManagerHelper.getSurfaceId(reactContext);\n EventDispatcher eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, getId());\n WritableMap payload = Arguments.createMap();\n payload.putString("result", result.name());\n\n OnScriptLoadedEvent event = new OnScriptLoadedEvent(surfaceId, getId(), payload);\n if (eventDispatcher != null) {\n eventDispatcher.dispatchEvent(event);\n }\n }\n\n public enum OnScriptLoadedEventResult {\n success,\n error\n }\n\n private class OnScriptLoadedEvent extends Event {\n private final WritableMap payload;\n\n OnScriptLoadedEvent(int surfaceId, int viewId, WritableMap payload) {\n super(surfaceId, viewId);\n this.payload = payload;\n }\n\n @Override\n public String getEventName() {\n return "onScriptLoaded";\n }\n\n @Override\n public WritableMap getEventData() {\n return payload;\n }\n }\n}\n'})})}),(0,i.jsx)(o.A,{value:"kotlin",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-kotlin",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebView.kt"',children:'package com.webview\n\nimport android.content.Context\nimport android.util.AttributeSet\nimport android.webkit.WebView\nimport android.webkit.WebViewClient\nimport com.facebook.react.bridge.Arguments\nimport com.facebook.react.bridge.WritableMap\nimport com.facebook.react.bridge.ReactContext\nimport com.facebook.react.uimanager.UIManagerHelper\nimport com.facebook.react.uimanager.events.Event\n\nclass ReactWebView: WebView {\n constructor(context: Context) : super(context) {\n configureComponent()\n }\n\n constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {\n configureComponent()\n }\n\n constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {\n configureComponent()\n }\n\n private fun configureComponent() {\n this.layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)\n this.webViewClient = object : WebViewClient() {\n override fun onPageFinished(view: WebView, url: String) {\n emitOnScriptLoaded(OnScriptLoadedEventResult.success)\n }\n }\n }\n\n fun emitOnScriptLoaded(result: OnScriptLoadedEventResult) {\n val reactContext = context as ReactContext\n val surfaceId = UIManagerHelper.getSurfaceId(reactContext)\n val eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, id)\n val payload =\n Arguments.createMap().apply {\n putString("result", result.name)\n }\n val event = OnScriptLoadedEvent(surfaceId, id, payload)\n\n eventDispatcher?.dispatchEvent(event)\n }\n\n enum class OnScriptLoadedEventResult() {\n success(),\n error()\n }\n\n inner class OnScriptLoadedEvent(\n surfaceId: Int,\n viewId: Int,\n private val payload: WritableMap\n ) : Event(surfaceId, viewId) {\n override fun getEventName() = "onScriptLoaded"\n\n override fun getEventData() = payload\n }\n}\n'})})})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ReactWebView"})," \u6269\u5c55\u4e86 Android ",(0,i.jsx)(n.code,{children:"WebView"}),"\uff0c\u56e0\u6b64\u4f60\u53ef\u4ee5\u8f7b\u677e\u5730\u91cd\u7528\u5e73\u53f0\u5df2\u7ecf\u5b9a\u4e49\u7684\u6240\u6709\u5c5e\u6027\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u8be5\u7c7b\u5b9a\u4e49\u4e86\u4e09\u4e2a Android \u6784\u9020\u51fd\u6570\uff0c\u4f46\u5c06\u5b83\u4eec\u7684\u5b9e\u9645\u5b9e\u73b0\u63a8\u8fdf\u5230\u79c1\u6709 ",(0,i.jsx)(n.code,{children:"configureComponent"})," \u51fd\u6570\u3002\u6b64\u51fd\u6570\u8d1f\u8d23\u521d\u59cb\u5316\u6240\u6709\u7ec4\u4ef6\u7684\u7279\u5b9a\u5c5e\u6027\uff1a\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u4f60\u6b63\u5728\u8bbe\u7f6e ",(0,i.jsx)(n.code,{children:"WebView"})," \u7684\u5e03\u5c40\uff0c\u5e76\u5b9a\u4e49\u4f60\u7528\u4e8e\u81ea\u5b9a\u4e49 ",(0,i.jsx)(n.code,{children:"WebView"})," \u884c\u4e3a\u7684 ",(0,i.jsx)(n.code,{children:"WebClient"}),"\u3002\u5728\u6b64\u4ee3\u7801\u4e2d\uff0c",(0,i.jsx)(n.code,{children:"ReactWebView"})," \u5728\u9875\u9762\u52a0\u8f7d\u5b8c\u6210\u540e\u901a\u8fc7\u5b9e\u73b0 ",(0,i.jsx)(n.code,{children:"WebClient"})," \u7684 ",(0,i.jsx)(n.code,{children:"onPageFinished"})," \u65b9\u6cd5\u6765\u53d1\u51fa\u4e8b\u4ef6\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u7136\u540e\uff0c\u4ee3\u7801\u5b9a\u4e49\u4e86\u4e00\u4e2a\u5b9e\u9645\u53d1\u51fa\u4e8b\u4ef6\u7684\u5e2e\u52a9\u51fd\u6570\u3002\u8981\u53d1\u51fa\u4e8b\u4ef6\uff0c\u4f60\u5fc5\u987b\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\u83b7\u53d6 ",(0,i.jsx)(n.code,{children:"ReactContext"})," \u7684\u5f15\u7528\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:["retrieve the ",(0,i.jsx)(n.code,{children:"surfaceId"})," of the view that you are presenting;"]}),"\n",(0,i.jsxs)(n.li,{children:["grab a reference to the ",(0,i.jsx)(n.code,{children:"eventDispatcher"})," associated with the view;"]}),"\n",(0,i.jsxs)(n.li,{children:["build the payload for the event using a ",(0,i.jsx)(n.code,{children:"WritableMap"})," object;"]}),"\n",(0,i.jsx)(n.li,{children:"create the event object that you need to send to JavaScript;"}),"\n",(0,i.jsxs)(n.li,{children:["call the ",(0,i.jsx)(n.code,{children:"eventDispatcher.dispatchEvent"})," to send the event."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"The last part of the file contains the definition of the data types you need to send the event:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The ",(0,i.jsx)(n.code,{children:"OnScriptLoadedEventResult"}),", with the possible outcomes of the ",(0,i.jsx)(n.code,{children:"OnScriptLoaded"})," event."]}),"\n",(0,i.jsxs)(n.li,{children:["The actual ``OnScriptLoadedEvent",(0,i.jsx)(n.code,{children:"that needs to extend the React Native's"}),"Event` class."]}),"\n"]}),"\n",(0,i.jsxs)(n.h3,{id:"3-write-the-webviewmanager",children:["3. Write the ",(0,i.jsx)(n.code,{children:"WebViewManager"})]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"WebViewManager"})," is the class that connects the React Native runtime with the native view."]}),"\n",(0,i.jsx)(n.p,{children:"When React receives the instruction from the app to render a specific component, React uses the registered view manager to create the view and to pass all the required properties."}),"\n",(0,i.jsxs)(n.p,{children:["This is the code of the ",(0,i.jsx)(n.code,{children:"ReactWebViewManager"}),"."]}),"\n",(0,i.jsxs)(r.A,{groupId:"android-language",queryString:!0,defaultValue:c.A.defaultAndroidLanguage,values:c.A.androidLanguages,children:[(0,i.jsx)(o.A,{value:"java",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebViewManager.java"',children:'package com.webview;\n\nimport com.facebook.react.bridge.ReactApplicationContext;\nimport com.facebook.react.module.annotations.ReactModule;\nimport com.facebook.react.uimanager.SimpleViewManager;\nimport com.facebook.react.uimanager.ThemedReactContext;\nimport com.facebook.react.uimanager.ViewManagerDelegate;\nimport com.facebook.react.uimanager.annotations.ReactProp;\nimport com.facebook.react.viewmanagers.CustomWebViewManagerInterface;\nimport com.facebook.react.viewmanagers.CustomWebViewManagerDelegate;\n\nimport java.util.HashMap;\nimport java.util.Map;\n\n@ReactModule(name = ReactWebViewManager.REACT_CLASS)\nclass ReactWebViewManager extends SimpleViewManager implements CustomWebViewManagerInterface {\n private final CustomWebViewManagerDelegate delegate =\n new CustomWebViewManagerDelegate<>(this);\n\n @Override\n public ViewManagerDelegate getDelegate() {\n return delegate;\n }\n\n @Override\n public String getName() {\n return REACT_CLASS;\n }\n\n @Override\n public ReactWebView createViewInstance(ThemedReactContext context) {\n return new ReactWebView(context);\n }\n\n @ReactProp(name = "sourceUrl")\n @Override\n public void setSourceURL(ReactWebView view, String sourceURL) {\n if (sourceURL == null) {\n view.emitOnScriptLoaded(ReactWebView.OnScriptLoadedEventResult.error);\n return;\n }\n view.loadUrl(sourceURL, new HashMap<>());\n }\n\n public static final String REACT_CLASS = "CustomWebView";\n\n @Override\n public Map getExportedCustomBubblingEventTypeConstants() {\n Map map = new HashMap<>();\n Map bubblingMap = new HashMap<>();\n bubblingMap.put("phasedRegistrationNames", new HashMap() {{\n put("bubbled", "onScriptLoaded");\n put("captured", "onScriptLoadedCapture");\n }});\n map.put("onScriptLoaded", bubblingMap);\n return map;\n }\n}\n'})})}),(0,i.jsx)(o.A,{value:"kotlin",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-kotlin",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebViewManager.kt"',children:'package com.webview\n\nimport com.facebook.react.bridge.ReactApplicationContext;\nimport com.facebook.react.module.annotations.ReactModule;\nimport com.facebook.react.uimanager.SimpleViewManager;\nimport com.facebook.react.uimanager.ThemedReactContext;\nimport com.facebook.react.uimanager.ViewManagerDelegate;\nimport com.facebook.react.uimanager.annotations.ReactProp;\nimport com.facebook.react.viewmanagers.CustomWebViewManagerInterface;\nimport com.facebook.react.viewmanagers.CustomWebViewManagerDelegate;\n\n@ReactModule(name = ReactWebViewManager.REACT_CLASS)\nclass ReactWebViewManager(context: ReactApplicationContext) : SimpleViewManager(), CustomWebViewManagerInterface {\n private val delegate: CustomWebViewManagerDelegate =\n CustomWebViewManagerDelegate(this)\n\n override fun getDelegate(): ViewManagerDelegate = delegate\n\n override fun getName(): String = REACT_CLASS\n\n override fun createViewInstance(context: ThemedReactContext): ReactWebView = ReactWebView(context)\n\n @ReactProp(name = "sourceUrl")\n override fun setSourceURL(view: ReactWebView, sourceURL: String?) {\n if (sourceURL == null) {\n view.emitOnScriptLoaded(ReactWebView.OnScriptLoadedEventResult.error)\n return;\n }\n view.loadUrl(sourceURL, emptyMap())\n }\n\n companion object {\n const val REACT_CLASS = "CustomWebView"\n }\n\n override fun getExportedCustomBubblingEventTypeConstants(): Map =\n mapOf(\n "onScriptLoaded" to\n mapOf(\n "phasedRegistrationNames" to\n mapOf(\n "bubbled" to "onScriptLoaded",\n "captured" to "onScriptLoadedCapture"\n )))\n}\n'})})})]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"ReactWebViewManager"})," extends the ",(0,i.jsx)(n.code,{children:"SimpleViewManager"})," class from React and implements the ",(0,i.jsx)(n.code,{children:"CustomWebViewManagerInterface"}),", generated by Codegen."]}),"\n",(0,i.jsxs)(n.p,{children:["It holds a reference of the ",(0,i.jsx)(n.code,{children:"CustomWebViewManagerDelegate"}),", another element generated by Codegen."]}),"\n",(0,i.jsxs)(n.p,{children:["It then overrides the ",(0,i.jsx)(n.code,{children:"getName"})," function, which must return the same name used in the spec's ",(0,i.jsx)(n.code,{children:"codegenNativeComponent"})," function call."]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"createViewInstance"})," function is responsible to instantiate a new ",(0,i.jsx)(n.code,{children:"ReactWebView"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Then, the ViewManager needs to define how all the React's compnoents props will update the native view. In the example, you need to decide how to handle the ",(0,i.jsx)(n.code,{children:"sourceURL"})," property that React will set on the ",(0,i.jsx)(n.code,{children:"WebView"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Finally, if the component can emit an event, you need to map the event name by overriding the ",(0,i.jsx)(n.code,{children:"getExportedCustomBubblingEventTypeConstants"})," for bubbling events, or the ",(0,i.jsx)(n.code,{children:"getExportedCustomDirectEventTypeConstants"})," for direct events."]}),"\n",(0,i.jsxs)(n.h3,{id:"4-write-the-reactwebviewpackage",children:["4. Write the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})]}),"\n",(0,i.jsxs)(n.p,{children:["As you do with Native Modules, Native Components also need to implement the ",(0,i.jsx)(n.code,{children:"ReactPackage"})," class. This is an object that you can use to register the component in the React Native runtime."]}),"\n",(0,i.jsxs)(n.p,{children:["This is the code for the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"}),":"]}),"\n",(0,i.jsxs)(r.A,{groupId:"android-language",queryString:!0,defaultValue:c.A.defaultAndroidLanguage,values:c.A.androidLanguages,children:[(0,i.jsx)(o.A,{value:"java",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebViewPackage.java"',children:"package com.webview;\n\nimport com.facebook.react.TurboReactPackage;\nimport com.facebook.react.bridge.NativeModule;\nimport com.facebook.react.bridge.ReactApplicationContext;\nimport com.facebook.react.module.model.ReactModuleInfo;\nimport com.facebook.react.module.model.ReactModuleInfoProvider;\nimport com.facebook.react.uimanager.ViewManager;\n\nimport java.util.Collections;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class ReactWebViewPackage extends TurboReactPackage {\n @Override\n public List> createViewManagers(ReactApplicationContext reactContext) {\n return Collections.singletonList(new ReactWebViewManager(reactContext));\n }\n\n @Override\n public NativeModule getModule(String s, ReactApplicationContext reactApplicationContext) {\n if (ReactWebViewManager.REACT_CLASS.equals(s)) {\n return new ReactWebViewManager(reactApplicationContext);\n }\n return null;\n }\n\n @Override\n public ReactModuleInfoProvider getReactModuleInfoProvider() {\n return new ReactModuleInfoProvider() {\n @Override\n public Map get() {\n Map map = new HashMap<>();\n map.put(ReactWebViewManager.REACT_CLASS, new ReactModuleInfo(\n ReactWebViewManager.REACT_CLASS, // name\n ReactWebViewManager.REACT_CLASS, // className\n false, // canOverrideExistingModule\n false, // needsEagerInit\n false, // isCxxModule\n true // isTurboModule\n ));\n return map;\n }\n };\n }\n}\n"})})}),(0,i.jsx)(o.A,{value:"kotlin",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-kotlin",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebView.kt"',children:"package com.webview\n\nimport com.facebook.react.TurboReactPackage\nimport com.facebook.react.bridge.NativeModule\nimport com.facebook.react.bridge.ReactApplicationContext\nimport com.facebook.react.module.model.ReactModuleInfo\nimport com.facebook.react.module.model.ReactModuleInfoProvider\nimport com.facebook.react.uimanager.ViewManager\n\nclass ReactWebViewPackage : TurboReactPackage() {\n override fun createViewManagers(reactContext: ReactApplicationContext): List> {\n return listOf(ReactWebViewManager(reactContext))\n }\n\n override fun getModule(s: String, reactApplicationContext: ReactApplicationContext): NativeModule? {\n when (s) {\n ReactWebViewManager.REACT_CLASS -> ReactWebViewManager(reactApplicationContext)\n }\n return null\n }\n\n override fun getReactModuleInfoProvider(): ReactModuleInfoProvider = ReactModuleInfoProvider {\n mapOf(ReactWebViewManager.REACT_CLASS to ReactModuleInfo(\n _name = ReactWebViewManager.REACT_CLASS,\n _className = ReactWebViewManager.REACT_CLASS,\n _canOverrideExistingModule = false,\n _needsEagerInit = false,\n isCxxModule = false,\n isTurboModule = true,\n )\n )\n }\n}\n"})})})]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," extends the ",(0,i.jsx)(n.code,{children:"TurboReactPackage"})," and implements all the methods required to properly register our component."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"createViewManagers"})," method is the factory method that creates the ",(0,i.jsx)(n.code,{children:"ViewManager"})," that manage the custom views."]}),"\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"getModule"})," method returns the proper ViewManager depending on the View that React Native needs to render."]}),"\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"getReactModuleInfoProvider"})," provides all the information required when registering the module in the runtime,"]}),"\n"]}),"\n",(0,i.jsxs)(n.h3,{id:"5-register-the-reactwebviewpackage-in-the-application",children:["5. Register the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," in the application"]}),"\n",(0,i.jsxs)(n.p,{children:["Finally, you need to register the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," in the application. We do that by modifying the ",(0,i.jsx)(n.code,{children:"MainApplication"})," file by adding the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," to the list of packages returned by the ",(0,i.jsx)(n.code,{children:"getPackages"})," function."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-kotlin",metastring:'title="Demo/app/src/main/java/com/demo/MainApplication.kt"',children:'package com.demo\n\nimport android.app.Application\nimport com.facebook.react.PackageList\nimport com.facebook.react.ReactApplication\nimport com.facebook.react.ReactHost\nimport com.facebook.react.ReactNativeHost\nimport com.facebook.react.ReactPackage\nimport com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load\nimport com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\nimport com.facebook.react.defaults.DefaultReactNativeHost\nimport com.facebook.react.soloader.OpenSourceMergedSoMapping\nimport com.facebook.soloader.SoLoader\n// highlight-next-line\nimport com.webview.ReactWebViewPackage\n\nclass MainApplication : Application(), ReactApplication {\n\n override val reactNativeHost: ReactNativeHost =\n object : DefaultReactNativeHost(this) {\n override fun getPackages(): List =\n PackageList(this).packages.apply {\n // highlight-next-line\n add(ReactWebViewPackage())\n }\n\n override fun getJSMainModuleName(): String = "index"\n\n override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG\n\n override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED\n override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED\n }\n\n override val reactHost: ReactHost\n get() = getDefaultReactHost(applicationContext, reactNativeHost)\n\n override fun onCreate() {\n super.onCreate()\n SoLoader.init(this, OpenSourceMergedSoMapping)\n if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n load()\n }\n }\n}\n\n'})})]})}function m(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},31828:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var i=t(62540),a=t(43023);t(44067),t(49646),t(64034);const r={id:"fabric-native-components-ios",title:"Fabric Native Components: iOS"},o=void 0,c={id:"fabric-native-components-ios",title:"Fabric Native Components: iOS",description:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b iOS \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a",source:"@site/../cndocs/fabric-native-components-ios.md",sourceDirName:".",slug:"/fabric-native-components-ios",permalink:"/docs/next/fabric-native-components-ios",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/fabric-native-components-ios.md",tags:[],version:"current",frontMatter:{id:"fabric-native-components-ios",title:"Fabric Native Components: iOS"}},s={},d=[{value:"1. \u8fd0\u884c Codegen",id:"1-\u8fd0\u884c-codegen",level:3},{value:"3. \u7f16\u5199 RCTWebView",id:"3-\u7f16\u5199-rctwebview",level:3},{value:"AppDelegate.mm",id:"appdelegatemm",level:4}];function l(e){const n={a:"a",admonition:"admonition",code:"code",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b iOS \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u8fd0\u884c Codegen\u3002"}),"\n",(0,i.jsxs)(n.li,{children:["\u7f16\u5199 ",(0,i.jsx)(n.code,{children:"RCTWebView"})," \u7684\u4ee3\u7801"]}),"\n",(0,i.jsxs)(n.li,{children:["\u5728\u5e94\u7528\u4e2d\u6ce8\u518c ",(0,i.jsx)(n.code,{children:"RCTWebView"})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"1-\u8fd0\u884c-codegen",children:"1. \u8fd0\u884c Codegen"}),"\n",(0,i.jsxs)(n.p,{children:["\u4f60\u53ef\u4ee5",(0,i.jsx)(n.a,{href:"the-new-architecture/codegen-cli",children:"\u624b\u52a8\u8fd0\u884c"})," Codegen\uff0c\u5f53\u7136\u76f4\u63a5\u4f7f\u7528\u4f60\u5c06\u8981\u6f14\u793a\u7ec4\u4ef6\u7684\u5e94\u7528\u6765\u5b8c\u6210\u6b64\u64cd\u4f5c\u4f1a\u66f4\u7b80\u5355\u3002"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"cd ios\nbundle install\nbundle exec pod install\n"})}),"\n",(0,i.jsx)(n.p,{children:"\u91cd\u8981\u7684\u662f\u4f60\u4f1a\u770b\u5230 Codegen \u7684\u65e5\u5fd7\u8f93\u51fa\uff0c\u6211\u4eec\u5c06\u5728 Xcode \u4e2d\u4f7f\u7528\u5b83\u6765\u6784\u5efa WebView \u539f\u751f\u7ec4\u4ef6\u3002"}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["\u6ce8\u610f\u4e0d\u8981\u5c06\u751f\u6210\u7684\u4ee3\u7801\u63d0\u4ea4\u5230\u4f60\u7684\u4ed3\u5e93\u4e2d\u3002\u751f\u6210\u7684\u4ee3\u7801\u4e0e React Native \u7684\u7248\u672c\u76f8\u5173\u3002\u4f7f\u7528 npm ",(0,i.jsx)(n.a,{href:"https://nodejs.org/en/blog/npm/peer-dependencies",children:"peerDependencies"})," \u6765\u7ea6\u675f\u4e0e React Native \u7248\u672c\u7684\u517c\u5bb9\u6027\u3002"]})}),"\n",(0,i.jsxs)(n.h3,{id:"3-\u7f16\u5199-rctwebview",children:["3. \u7f16\u5199 ",(0,i.jsx)(n.code,{children:"RCTWebView"})]}),"\n",(0,i.jsxs)(n.p,{children:["\u6211\u4eec\u9700\u8981\u4f7f\u7528 Xcode \u5b8c\u6210\u4ee5\u4e0b ",(0,i.jsx)(n.strong,{children:"5 \u6b65"}),"\uff1a"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"\u6253\u5f00 CocoPods \u751f\u6210\u7684 Xcode workspace \u6587\u4ef6\uff1a"}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"cd ios\nopen Demo.xcworkspace\n"})}),"\n",(0,i.jsx)("img",{class:"half-size",alt:"Open Xcode Workspace",src:"/docs/assets/fabric-native-components/1.webp"}),"\n",(0,i.jsxs)(n.ol,{start:"2",children:["\n",(0,i.jsxs)(n.li,{children:["\u53f3\u952e\u70b9\u51fb\u5e94\u7528\uff0c\u9009\u62e9 ",(0,i.jsx)("code",{children:"New Group"}),"\uff0c\u5c06\u65b0\u7ec4\u547d\u540d\u4e3a ",(0,i.jsx)(n.code,{children:"WebView"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)("img",{class:"half-size",alt:"Right click on app and select New Group",src:"/docs/assets/fabric-native-components/2.webp"}),"\n",(0,i.jsxs)(n.ol,{start:"3",children:["\n",(0,i.jsxs)(n.li,{children:["\u5728 ",(0,i.jsx)(n.code,{children:"WebView"})," \u7ec4\u4e2d\uff0c\u521b\u5efa ",(0,i.jsx)("code",{children:"New"}),"\u2192",(0,i.jsx)("code",{children:"File from Template"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)("img",{class:"half-size",alt:"Create a new file using the Cocoa Touch Classs template",src:"/docs/assets/fabric-native-components/3.webp"}),"\n",(0,i.jsxs)(n.ol,{start:"4",children:["\n",(0,i.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,i.jsx)("code",{children:"Objective-C File"})," \u6a21\u677f\uff0c\u5e76\u547d\u540d\u4e3a ",(0,i.jsx)("code",{children:"RCTWebView"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)("img",{class:"half-size",alt:"Create an Objective-C RCTWebView class",src:"/docs/assets/fabric-native-components/4.webp"}),"\n",(0,i.jsxs)(n.ol,{start:"5",children:["\n",(0,i.jsxs)(n.li,{children:["\u5c06 ",(0,i.jsx)("code",{children:"RCTWebView.m"})," \u91cd\u547d\u540d\u4e3a ",(0,i.jsx)("code",{children:"RCTWebView.mm"}),"\uff0c\u4f7f\u5176\u6210\u4e3a Objective-C++ \u6587\u4ef6\u3002"]}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",metastring:'title="Demo/ios"',children:"Podfile\n...\nDemo\n\u251c\u2500\u2500 AppDelegate.h\n\u251c\u2500\u2500 AppDelegate.mm\n...\n// highlight-start\n\u251c\u2500\u2500 RCTWebView.h\n\u251c\u2500\u2500 RCTWebView.mm\n// highlight-end\n\u2514\u2500\u2500 main.m\n"})}),"\n",(0,i.jsx)(n.p,{children:"\u521b\u5efa\u5934\u6587\u4ef6\u548c\u5b9e\u73b0\u6587\u4ef6\u540e\uff0c\u53ef\u4ee5\u5f00\u59cb\u5b9e\u73b0\u5b83\u4eec\u3002"}),"\n",(0,i.jsxs)(n.p,{children:["\u4ee5\u4e0b\u662f ",(0,i.jsx)(n.code,{children:"RCTWebView.h"})," \u6587\u4ef6\u7684\u4ee3\u7801\uff0c\u58f0\u660e\u4e86\u7ec4\u4ef6\u63a5\u53e3\u3002"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-objc",metastring:'title="Demo/RCTWebView/RTNWebView.h"',children:"#import \n#import \n\nNS_ASSUME_NONNULL_BEGIN\n\n@interface RCTWebView : RCTViewComponentView\n\n// \u4f60\u53ef\u4ee5\u5728\u89c6\u56fe\u4e2d\u58f0\u660e\u4f60\u60f3\u8981\u8bbf\u95ee\u7684\u539f\u751f\u65b9\u6cd5\n\n@end\n\nNS_ASSUME_NONNULL_END\n"})}),"\n",(0,i.jsxs)(n.p,{children:["\u8fd9\u4e2a\u7c7b\u5b9a\u4e49\u4e86\u4e00\u4e2a ",(0,i.jsx)(n.code,{children:"RCTWebView"}),"\uff0c\u5b83\u6269\u5c55\u4e86 ",(0,i.jsx)(n.code,{children:"RCTViewComponentView"})," \u7c7b\u3002\u8fd9\u662f\u6240\u6709\u539f\u751f\u7ec4\u4ef6\u7684\u57fa\u7840\u7c7b\uff0c\u7531 React Native \u63d0\u4f9b\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u4ee5\u4e0b\u662f\u5b9e\u73b0\u6587\u4ef6 (",(0,i.jsx)(n.code,{children:"RCTWebView.mm"}),") \u7684\u4ee3\u7801\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-objc",metastring:'title="Demo/RCTWebView/RCTWebView.mm"',children:'#import "RCTWebView.h"\n\n#import \n#import \n#import \n#import \n// highlight-next-line\n#import \n\nusing namespace facebook::react;\n\n@interface RCTWebView () \n@end\n\n@implementation RCTWebView {\n NSURL * _sourceURL;\n WKWebView * _webView;\n}\n\n-(instancetype)init\n{\n if(self = [super init]) {\n // highlight-start\n _webView = [WKWebView new];\n _webView.navigationDelegate = self;\n [self addSubview:_webView];\n // highlight-end\n }\n return self;\n}\n\n- (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &)oldProps\n{\n const auto &oldViewProps = *std::static_pointer_cast(_props);\n const auto &newViewProps = *std::static_pointer_cast(props);\n\n // Handle your props here\n if (oldViewProps.sourceURL != newViewProps.sourceURL) {\n NSString *urlString = [NSString stringWithCString:newViewProps.sourceURL.c_str() encoding:NSUTF8StringEncoding];\n _sourceURL = [NSURL URLWithString:urlString];\n // highlight-start\n if ([self urlIsValid:newViewProps.sourceURL]) {\n [_webView loadRequest:[NSURLRequest requestWithURL:_sourceURL]];\n }\n // highlight-end\n }\n\n [super updateProps:props oldProps:oldProps];\n}\n\n-(void)layoutSubviews\n{\n [super layoutSubviews];\n _webView.frame = self.bounds;\n\n}\n\n#pragma mark - WKNavigationDelegate\n\n// highlight-start\n-(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation\n{\n CustomWebViewEventEmitter::OnScriptLoaded result = CustomWebViewEventEmitter::OnScriptLoaded{CustomWebViewEventEmitter::OnScriptLoadedResult::Success};\n self.eventEmitter.onScriptLoaded(result);\n}\n\n- (BOOL)urlIsValid:(std::string)propString\n{\n if (propString.length() > 0 && !_sourceURL) {\n CustomWebViewEventEmitter::OnScriptLoaded result = CustomWebViewEventEmitter::OnScriptLoaded{CustomWebViewEventEmitter::OnScriptLoadedResult::Error};\n\n self.eventEmitter.onScriptLoaded(result);\n return NO;\n }\n return YES;\n}\n\n// Event emitter convenience method\n- (const CustomWebViewEventEmitter &)eventEmitter\n{\n return static_cast(*_eventEmitter);\n}\n// highlight-end\n\n+ (ComponentDescriptorProvider)componentDescriptorProvider\n{\n return concreteComponentDescriptorProvider();\n}\n\nClass WebViewCls(void)\n{\n return RCTWebView.class;\n}\n\n@end\n'})}),"\n",(0,i.jsx)(n.p,{children:"\u8fd9\u6bb5\u4ee3\u7801\u662f\u7528 Objective-C++ \u7f16\u5199\u7684\uff0c\u5305\u542b\u4ee5\u4e0b\u7ec6\u8282\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"@interface"})," \u5b9e\u73b0\u4e86\u4e24\u4e2a\u534f\u8bae\uff1a","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"RCTCustomWebViewViewProtocol"}),", generated by Codegen;"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"WKNavigationDelegate"}),", \u7531 WebKit \u6846\u67b6\u63d0\u4f9b\uff0c\u7528\u4e8e\u5904\u7406 web \u89c6\u56fe\u5bfc\u822a\u4e8b\u4ef6\uff1b"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"init"})," \u65b9\u6cd5\u5b9e\u4f8b\u5316 ",(0,i.jsx)(n.code,{children:"WKWebView"}),"\uff0c\u5c06\u5176\u6dfb\u52a0\u5230\u5b50\u89c6\u56fe\uff0c\u5e76\u8bbe\u7f6e ",(0,i.jsx)(n.code,{children:"navigationDelegate"}),"\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"updateProps"})," \u65b9\u6cd5\uff0c\u7531 React Native \u5728\u7ec4\u4ef6\u7684\u5c5e\u6027\u53d8\u5316\u65f6\u8c03\u7528\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"layoutSubviews"})," \u65b9\u6cd5\uff0c\u63cf\u8ff0\u4e86\u81ea\u5b9a\u4e49\u89c6\u56fe\u9700\u8981\u5982\u4f55\u5e03\u5c40\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"webView:didFinishNavigation:"})," \u65b9\u6cd5\uff0c\u7528\u4e8e\u5904\u7406 ",(0,i.jsx)(n.code,{children:"WKWebView"})," \u5b8c\u6210\u52a0\u8f7d\u9875\u9762\u65f6\u9700\u8981\u6267\u884c\u7684\u64cd\u4f5c\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"urlIsValid:(std::string)propString"})," \u65b9\u6cd5\u68c0\u67e5\u63a5\u6536\u5230\u7684 URL \u5c5e\u6027\u662f\u5426\u6709\u6548\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"eventEmitter"})," \u65b9\u6cd5\uff0c\u7528\u4e8e\u68c0\u7d22\u5f3a\u7c7b\u578b\u7684 ",(0,i.jsx)(n.code,{children:"eventEmitter"})," \u5b9e\u4f8b\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"componentDescriptorProvider"})," \u65b9\u6cd5\uff0c\u8fd4\u56de\u7531 Codegen \u751f\u6210\u7684 ",(0,i.jsx)(n.code,{children:"ComponentDescriptor"}),"\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"WebViewCls"})," \u65b9\u6cd5\uff0c\u7528\u4e8e\u5728\u5e94\u7528\u4e2d\u6ce8\u518c ",(0,i.jsx)(n.code,{children:"RCTWebView"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"appdelegatemm",children:"AppDelegate.mm"}),"\n",(0,i.jsxs)(n.p,{children:["\u6700\u540e\uff0c\u53ef\u4ee5\u5728\u5e94\u7528\u4e2d\u6ce8\u518c\u7ec4\u4ef6\u3002\u66f4\u65b0 ",(0,i.jsx)(n.code,{children:"AppDelegate.mm"})," \u6587\u4ef6\uff0c\u4f7f\u5e94\u7528\u610f\u8bc6\u5230\u81ea\u5b9a\u4e49\u7684 WebView \u7ec4\u4ef6\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-objc",metastring:'title="Demo/ios/Demo/AppDelegate.mm"',children:'#import "AppDelegate.h"\n\n#import \n// highlight-start\n#import \n#import "RCTWebView.h"\n// highlight-end\n@implementation AppDelegate\n// ...\n// highlight-start\n- (NSDictionary> *)thirdPartyFabricComponents\n{\n NSMutableDictionary * dictionary = [super thirdPartyFabricComponents].mutableCopy;\n dictionary[@"CustomWebView"] = [RCTWebView class];\n return dictionary;\n}\n// highlight-end\n\n@end\n'})}),"\n",(0,i.jsxs)(n.p,{children:["\u8fd9\u6bb5\u4ee3\u7801\u901a\u8fc7\u83b7\u53d6\u6765\u81ea\u5176\u4ed6\u6765\u6e90\uff08\u5982\u7b2c\u4e09\u65b9\u5e93\uff09\u7684\u7b2c\u4e09\u65b9\u7ec4\u4ef6\u5b57\u5178\u7684\u53ef\u53d8\u526f\u672c\uff0c\u91cd\u5199\u4e86 ",(0,i.jsx)(n.code,{children:"thirdPartyFabricComponents"})," \u65b9\u6cd5\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u7136\u540e\uff0c\u5411\u5b57\u5178\u4e2d\u6dfb\u52a0\u4e00\u4e2a\u6761\u76ee\uff0c\u6761\u76ee\u540d\u79f0\u4e0e Codegen \u89c4\u8303\u6587\u4ef6\u4e2d\u4f7f\u7528\u7684\u540d\u79f0\u76f8\u540c\u3002\u8fd9\u6837\uff0c\u5f53 React \u9700\u8981\u52a0\u8f7d\u540d\u79f0 ",(0,i.jsx)(n.code,{children:"CustomWebView"})," \u7684\u7ec4\u4ef6\u65f6\uff0cReact Native \u5c06\u5b9e\u4f8b\u5316 ",(0,i.jsx)(n.code,{children:"RCTWebView"}),"\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u6700\u540e\uff0c\u8fd4\u56de\u65b0\u7684\u5b57\u5178\u3002"}),"\n",(0,i.jsxs)(n.admonition,{type:"warning",children:[(0,i.jsx)(n.p,{children:"\u6211\u4eec\u610f\u8bc6\u5230 iOS \u5b58\u5728\u4e00\u4e9b\u95ee\u9898\uff0c\u5f53\u4f7f\u7528\u81ea\u5b9a\u4e49 iOS \u7ec4\u4ef6\u6784\u5efa\u5e94\u7528\u65f6\u4f1a\u51fa\u73b0\u95ee\u9898\u3002"}),(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\u7ec4\u4ef6\u9700\u8981\u8bbf\u95ee ",(0,i.jsx)(n.code,{children:"yoga/style/Style.h"})," \u5934\u6587\u4ef6\uff0c\u4f46\u5f53\u524d\u5e94\u7528\u65e0\u6cd5\u8bbf\u95ee\u3002\u4e3a\u6b64\uff0c\u5c06 ",(0,i.jsx)(n.code,{children:"$(PODS_ROOT)/Headers/Private/Yoga"})," \u8def\u5f84\u6dfb\u52a0\u5230\u5e94\u7528\u7684\u5934\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u6784\u5efa\u8bbe\u7f6e\u4e2d\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:["Codegen \u5728 ",(0,i.jsx)(n.code,{children:"RCTThirdPartyFabricComponentsProvider"})," \u4e2d\u751f\u6210\u4e86\u4e00\u884c\u4e0d\u9700\u8981\u751f\u6210\u7684\u4ee3\u7801\u3002\u5220\u9664 ",(0,i.jsx)(n.code,{children:"RCTThirdPartyFabricComponentsProvider.h"})," \u548c ",(0,i.jsx)(n.code,{children:"RCTThirdPartyFabricComponentsProvider.mm"})," \u6587\u4ef6\u4e2d\u5e26\u6709 ",(0,i.jsx)(n.code,{children:"WebViewCls"})," \u7b26\u53f7\u7684\u884c\u3002"]}),"\n"]}),(0,i.jsx)(n.p,{children:"\u6211\u4eec\u5df2\u7ecf\u4fee\u590d\u4e86\u8fd9\u4e9b\u95ee\u9898\uff0c\u5b83\u4eec\u5c06\u5728 React Native 0.76.1 \u4e2d\u53d1\u5e03\u3002"})]})]})}function p(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},80773:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>g,contentTitle:()=>h,default:()=>x,frontMatter:()=>u,metadata:()=>m,toc:()=>b});var i=t(62540),a=t(43023),r=t(44067),o=t(49646),c=t(64034),s=t(31828),d=t(78154);function l(){return(0,i.jsx)(s.default,{})}function p(){return(0,i.jsx)(d.default,{})}const u={id:"fabric-native-components-introduction",title:"Fabric Native Components Introduction"},h="\u539f\u751f\u7ec4\u4ef6",m={id:"fabric-native-components-introduction",title:"Fabric Native Components Introduction",description:"\u5982\u679c\u4f60\u60f3\u6784\u5efa\u4e00\u4e2a \u65b0\u67b6\u6784 \u7684 React Native \u7ec4\u4ef6\uff0c\u8be5\u7ec4\u4ef6\u53ef\u4ee5\u5305\u88c5\u4e00\u4e2a Host Component\uff0c\u4f8b\u5982 Android \u4e0a\u7684 CheckBox\uff0c\u6216\u8005 iOS \u4e0a\u7684 UIButton\uff0c\u4f60\u5e94\u8be5\u4f7f\u7528 Fabric \u539f\u751f\u7ec4\u4ef6\u3002",source:"@site/../cndocs/fabric-native-components.md",sourceDirName:".",slug:"/fabric-native-components-introduction",permalink:"/docs/next/fabric-native-components-introduction",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/fabric-native-components.md",tags:[],version:"current",frontMatter:{id:"fabric-native-components-introduction",title:"Fabric Native Components Introduction"},sidebar:"docs",previous:{title:"\u9ad8\u7ea7\uff1a\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b",permalink:"/docs/next/the-new-architecture/custom-cxx-types"},next:{title:"appendix",permalink:"/docs/next/appendix"}},g={},b=[{value:"\u521b\u5efa\u4e00\u4e2a WebView \u7ec4\u4ef6",id:"\u521b\u5efa\u4e00\u4e2a-webview-\u7ec4\u4ef6",level:2},{value:"1. \u5b9a\u4e49 Codegen \u89c4\u8303",id:"1-\u5b9a\u4e49-codegen-\u89c4\u8303",level:2},{value:"2. \u914d\u7f6e Codegen \u8fd0\u884c",id:"2-\u914d\u7f6e-codegen-\u8fd0\u884c",level:2},{value:"2. \u6784\u5efa\u539f\u751f\u4ee3\u7801",id:"2-\u6784\u5efa\u539f\u751f\u4ee3\u7801",level:2},{value:"3. \u4f7f\u7528\u4f60\u7684\u539f\u751f\u7ec4\u4ef6",id:"3-\u4f7f\u7528\u4f60\u7684\u539f\u751f\u7ec4\u4ef6",level:2},{value:"5. \u8fd0\u884c\u5e94\u7528\u4f7f\u7528 WebView \u7ec4\u4ef6",id:"5-\u8fd0\u884c\u5e94\u7528\u4f7f\u7528-webview-\u7ec4\u4ef6",level:2}];function v(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"\u539f\u751f\u7ec4\u4ef6",children:"\u539f\u751f\u7ec4\u4ef6"})}),"\n",(0,i.jsxs)(n.p,{children:["\u5982\u679c\u4f60\u60f3\u6784\u5efa\u4e00\u4e2a ",(0,i.jsx)(n.em,{children:"\u65b0\u67b6\u6784"})," \u7684 React Native \u7ec4\u4ef6\uff0c\u8be5\u7ec4\u4ef6\u53ef\u4ee5\u5305\u88c5\u4e00\u4e2a ",(0,i.jsx)(n.a,{href:"https://reactnative.dev/architecture/glossary#host-view-tree-and-host-view",children:"Host Component"}),"\uff0c\u4f8b\u5982 Android \u4e0a\u7684 ",(0,i.jsx)(n.a,{href:"https://developer.android.com/reference/androidx/appcompat/widget/AppCompatCheckBox",children:"CheckBox"}),"\uff0c\u6216\u8005 iOS \u4e0a\u7684 ",(0,i.jsx)(n.a,{href:"https://developer.apple.com/documentation/uikit/uibutton?language=objc",children:"UIButton"}),"\uff0c\u4f60\u5e94\u8be5\u4f7f\u7528 Fabric \u539f\u751f\u7ec4\u4ef6\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u672c\u6307\u5357\u5c06\u4ee5\u5b9e\u73b0\u4e00\u4e2a web \u89c6\u56fe\u7ec4\u4ef6\u4e3a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u6784\u5efa Fabric \u539f\u751f\u7ec4\u4ef6\u3002\u6b65\u9aa4\u5982\u4e0b\uff1a"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"\u4f7f\u7528 Flow \u6216 TypeScript \u5b9a\u4e49\u4e00\u4e2a JavaScript \u89c4\u8303\u3002"}),"\n",(0,i.jsx)(n.li,{children:"\u914d\u7f6e\u4f9d\u8d56\u7ba1\u7406\u7cfb\u7edf\u7684\u4ee3\u7801\u751f\u6210\u529f\u80fd\uff0c\u5e76\u81ea\u52a8\u94fe\u63a5\u3002"}),"\n",(0,i.jsx)(n.li,{children:"\u5b9e\u73b0\u539f\u751f\u4ee3\u7801\u3002"}),"\n",(0,i.jsx)(n.li,{children:"\u5728\u5e94\u7528\u4e2d\u4f7f\u7528\u8be5\u7ec4\u4ef6\u3002"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"\u4f60\u9700\u8981\u4e00\u4e2a\u666e\u901a\u7684\u6a21\u677f\u751f\u6210\u5e94\u7528\u6765\u4f7f\u7528\u8be5\u7ec4\u4ef6\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npx @react-native-community/cli@latest init Demo --install-pods false\n"})}),"\n",(0,i.jsx)(n.h2,{id:"\u521b\u5efa\u4e00\u4e2a-webview-\u7ec4\u4ef6",children:"\u521b\u5efa\u4e00\u4e2a WebView \u7ec4\u4ef6"}),"\n",(0,i.jsxs)(n.p,{children:["\u672c\u6307\u5357\u5c06\u5c55\u793a\u5982\u4f55\u521b\u5efa\u4e00\u4e2a Web View \u7ec4\u4ef6\u3002\u6211\u4eec\u5c06\u4f7f\u7528 Android \u7684 ",(0,i.jsx)(n.a,{href:"https://developer.android.com/reference/android/webkit/WebView",children:(0,i.jsx)(n.code,{children:"WebView"})})," \u7ec4\u4ef6\u548c iOS \u7684 ",(0,i.jsx)(n.a,{href:"https://developer.apple.com/documentation/webkit/wkwebview?language=objc",children:(0,i.jsx)(n.code,{children:"WKWebView"})})," \u7ec4\u4ef6\u6765\u521b\u5efa\u8be5\u7ec4\u4ef6\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u9996\u5148\uff0c\u521b\u5efa\u4e00\u4e2a\u6587\u4ef6\u5939\u7ed3\u6784\u6765\u5b58\u653e\u7ec4\u4ef6\u7684\u4ee3\u7801\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"mkdir -p Demo/{specs,android/app/src/main/java/com/webview}\n"})}),"\n",(0,i.jsx)(n.p,{children:"\u8fd9\u5c06\u521b\u5efa\u4ee5\u4e0b\u5e03\u5c40\uff0c\u4f60\u5c06\u5728\u5176\u4e2d\u5de5\u4f5c\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"Demo\n\u251c\u2500\u2500 android/app/src/main/java/com/webview\n\u2514\u2500\u2500 ios\n\u2514\u2500\u2500 spec\n"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"android/app/src/main/java/com/webview"})," \u6587\u4ef6\u5939\u662f\u5b58\u653e Android \u4ee3\u7801\u7684\u6587\u4ef6\u5939\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"ios"})," \u6587\u4ef6\u5939\u662f\u5b58\u653e iOS \u4ee3\u7801\u7684\u6587\u4ef6\u5939\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"spec"})," \u6587\u4ef6\u5939\u662f\u5b58\u653e Codegen \u89c4\u8303\u6587\u4ef6\u7684\u6587\u4ef6\u5939\u3002"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"1-\u5b9a\u4e49-codegen-\u89c4\u8303",children:"1. \u5b9a\u4e49 Codegen \u89c4\u8303"}),"\n",(0,i.jsxs)(n.p,{children:["\u4f60\u7684\u89c4\u8303\u5fc5\u987b\u4f7f\u7528 ",(0,i.jsx)(n.a,{href:"https://www.typescriptlang.org/",children:"TypeScript"})," \u6216 ",(0,i.jsx)(n.a,{href:"https://flow.org/",children:"Flow"})," \u5b9a\u4e49\uff08\u66f4\u591a\u8be6\u60c5\u8bf7\u53c2\u9605 ",(0,i.jsx)(n.a,{href:"the-new-architecture/what-is-codegen",children:"Codegen"})," \u6587\u6863\uff09\u3002\u8fd9\u662f\u7531 Codegen \u751f\u6210 C++\u3001Objective-C++ \u548c Java \u4ee3\u7801\uff0c\u4ee5\u8fde\u63a5\u4f60\u7684\u5e73\u53f0\u4ee3\u7801\u5230 React \u8fd0\u884c\u7684 JavaScript \u8fd0\u884c\u65f6\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u89c4\u8303\u6587\u4ef6\u5fc5\u987b\u547d\u540d\u4e3a ",(0,i.jsx)(n.code,{children:"NativeComponent.{ts|js}"})," \u624d\u80fd\u88ab Codegen \u8bc6\u522b\u3002",(0,i.jsx)(n.code,{children:"NativeComponent"})," \u540e\u7f00\u4e0d\u4ec5\u662f\u4e00\u4e2a\u7ea6\u5b9a\uff0c\u5b9e\u9645\u4e0a\u662f\u7531 Codegen \u7528\u4e8e\u68c0\u6d4b\u89c4\u8303\u6587\u4ef6\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u4f7f\u7528\u4ee5\u4e0b\u89c4\u8303\u6587\u4ef6\u6765\u521b\u5efa WebView \u7ec4\u4ef6\uff1a"}),"\n",(0,i.jsxs)(r.A,{groupId:"language",queryString:!0,defaultValue:c.A.defaultJavaScriptSpecLanguage,values:c.A.javaScriptSpecLanguages,children:[(0,i.jsx)(o.A,{value:"typescript",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:'title="Demo/specs/WebViewNativeComponent.ts"',children:"import type {HostComponent, ViewProps} from 'react-native';\nimport type {BubblingEventHandler} from 'react-native/Libraries/Types/CodegenTypes';\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\n\ntype WebViewScriptLoadedEvent = {\n result: 'success' | 'error';\n};\n\nexport interface NativeProps extends ViewProps {\n sourceURL?: string;\n onScriptLoaded?: BubblingEventHandler | null;\n}\n\nexport default codegenNativeComponent(\n 'CustomWebView',\n) as HostComponent;\n"})})}),(0,i.jsx)(o.A,{value:"flow",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",metastring:'title="Demo/RCTWebView/js/RCTWebViewNativeComponent.js":',children:"// @flow strict-local\n\nimport type {HostComponent, ViewProps} from 'react-native';\nimport type {BubblingEventHandler} from 'react-native/Libraries/Types/CodegenTypes';\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\n\ntype WebViewScriptLoadedEvent = $ReadOnly<{|\n result: \"success\" | \"error\",\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n sourceURL?: string;\n onScriptLoaded?: BubblingEventHandler?;\n|}>;\n\nexport default (codegenNativeComponent(\n 'CustomWebView',\n): HostComponent);\n\n"})})})]}),"\n",(0,i.jsx)(n.p,{children:"\u8be5\u89c4\u8303\u6587\u4ef6\u7531\u4e09\u90e8\u5206\u7ec4\u6210\uff0c\u4e0d\u5305\u62ec\u5bfc\u5165\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"WebViewScriptLoadedEvent"})," \u662f\u4e00\u4e2a\u652f\u6301\u7684\u6570\u636e\u7c7b\u578b\uff0c\u7528\u4e8e\u5c06\u6570\u636e\u4ece\u539f\u751f\u4ee3\u7801\u4f20\u9012\u5230 JavaScript\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"NativeProps"})," \u662f\u5b9a\u4e49\u53ef\u4ee5\u5728\u7ec4\u4ef6\u4e0a\u8bbe\u7f6e\u7684\u5c5e\u6027\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"codegenNativeComponent"})," \u8bed\u53e5\u5141\u8bb8\u6211\u4eec\u4e3a\u81ea\u5b9a\u4e49\u7ec4\u4ef6\u751f\u6210\u4ee3\u7801\uff0c\u5e76\u5b9a\u4e49\u7528\u4e8e\u5339\u914d\u539f\u751f\u5b9e\u73b0\u7684\u540d\u79f0\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["\u4e0e\u539f\u751f\u6a21\u5757\u4e00\u6837\uff0c\u4f60\u53ef\u4ee5\u5728 ",(0,i.jsx)(n.code,{children:"specs/"})," \u76ee\u5f55\u4e2d\u62e5\u6709\u591a\u4e2a\u89c4\u8303\u6587\u4ef6\u3002\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u9605 ",(0,i.jsx)(n.a,{href:"/docs/next/appendix#codegen-typings",children:"\u9644\u5f55"}),"\u3002"]}),"\n",(0,i.jsx)(n.h2,{id:"2-\u914d\u7f6e-codegen-\u8fd0\u884c",children:"2. \u914d\u7f6e Codegen \u8fd0\u884c"}),"\n",(0,i.jsxs)(n.p,{children:["\u8be5\u89c4\u8303\u6587\u4ef6\u7528\u4e8e React Native \u7684 Codegen \u5de5\u5177\u751f\u6210\u5e73\u53f0\u7279\u5b9a\u7684\u63a5\u53e3\u548c\u6837\u677f\u4ee3\u7801\u3002\u4e3a\u6b64\uff0cCodegen \u9700\u8981\u77e5\u9053\u5728\u54ea\u91cc\u627e\u5230\u6211\u4eec\u7684\u89c4\u8303\u6587\u4ef6\u4ee5\u53ca\u5982\u4f55\u5904\u7406\u5b83\u3002\u66f4\u65b0\u4f60\u7684 ",(0,i.jsx)(n.code,{children:"package.json"})," \u6587\u4ef6\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",metastring:"package.json",children:' "start": "react-native start",\n "test": "jest"\n },\n // highlight-start\n "codegenConfig": {\n "name": "AppSpec",\n "type": "components",\n "jsSrcsDir": "specs",\n "android": {\n "javaPackageName": "com.webview"\n }\n },\n // highlight-end\n "dependencies": {\n'})}),"\n",(0,i.jsx)(n.p,{children:"\u914d\u7f6e\u597d Codegen \u540e\uff0c\u6211\u4eec\u9700\u8981\u51c6\u5907\u539f\u751f\u4ee3\u7801\u4ee5\u8fde\u63a5\u5230\u751f\u6210\u7684\u4ee3\u7801\u3002"}),"\n",(0,i.jsx)(n.h2,{id:"2-\u6784\u5efa\u539f\u751f\u4ee3\u7801",children:"2. \u6784\u5efa\u539f\u751f\u4ee3\u7801"}),"\n",(0,i.jsx)(n.p,{children:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u539f\u751f\u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u5f53 React \u9700\u8981\u6e32\u67d3\u89c6\u56fe\u65f6\uff0c\u5e73\u53f0\u53ef\u4ee5\u521b\u5efa\u6b63\u786e\u7684\u539f\u751f\u89c6\u56fe\u5e76\u5728\u5c4f\u5e55\u4e0a\u6e32\u67d3\u5b83\u3002"}),"\n",(0,i.jsx)(n.p,{children:"\u4f60\u5e94\u8be5\u5206\u522b\u5728 Android \u548c iOS \u5e73\u53f0\u4e0a\u5de5\u4f5c\u3002"}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["\u672c\u6307\u5357\u5c55\u793a\u4e86\u5982\u4f55\u521b\u5efa\u4e00\u4e2a\u4ec5\u9002\u7528\u4e8e\u65b0\u67b6\u6784\u7684\u539f\u751f\u7ec4\u4ef6\u3002\u5982\u679c\u4f60\u9700\u8981\u540c\u65f6\u652f\u6301\u65b0\u67b6\u6784\u548c\u65e7\u67b6\u6784\uff0c\u8bf7\u53c2\u9605\u6211\u4eec\u7684",(0,i.jsx)(n.a,{href:"https://github.com/reactwg/react-native-new-architecture/blob/main/docs/backwards-compat.md",children:"\u5411\u540e\u517c\u5bb9\u6307\u5357"}),"\u3002"]})}),"\n",(0,i.jsxs)(r.A,{groupId:"platforms",queryString:!0,defaultValue:c.A.defaultPlatform,children:[(0,i.jsx)(o.A,{value:"android",label:"Android",children:(0,i.jsx)(p,{})}),(0,i.jsx)(o.A,{value:"ios",label:"iOS",children:(0,i.jsx)(l,{})})]}),"\n",(0,i.jsx)(n.h2,{id:"3-\u4f7f\u7528\u4f60\u7684\u539f\u751f\u7ec4\u4ef6",children:"3. \u4f7f\u7528\u4f60\u7684\u539f\u751f\u7ec4\u4ef6"}),"\n",(0,i.jsxs)(n.p,{children:["\u6700\u540e\uff0c\u4f60\u53ef\u4ee5\u5728\u5e94\u7528\u4e2d\u4f7f\u7528\u8be5\u7ec4\u4ef6\u3002\u66f4\u65b0\u4f60\u7684\u751f\u6210 ",(0,i.jsx)(n.code,{children:"App.tsx"})," \u6587\u4ef6\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-javascript",metastring:'title="Demo/App.tsx"',children:"import React from 'react';\nimport {Alert, StyleSheet, View} from 'react-native';\nimport WebView from './specs/WebViewNativeComponent';\n\nfunction App(): React.JSX.Element {\n return (\n \n {\n Alert.alert('Page Loaded');\n }}\n />\n \n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'center',\n alignContent: 'center',\n },\n webview: {\n width: '100%',\n height: '100%',\n },\n});\n\nexport default App;\n"})}),"\n",(0,i.jsxs)(n.p,{children:["\u8be5\u4ee3\u7801\u521b\u5efa\u4e86\u4e00\u4e2a\u4f7f\u7528\u6211\u4eec\u521b\u5efa\u7684 ",(0,i.jsx)(n.code,{children:"WebView"})," \u7ec4\u4ef6\u6765\u52a0\u8f7d ",(0,i.jsx)(n.code,{children:"react.dev"})," \u7f51\u7ad9\u7684\u5e94\u7528\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u8be5\u5e94\u7528\u8fd8\u663e\u793a\u4e86\u4e00\u4e2a\u5f53\u7f51\u9875\u52a0\u8f7d\u5b8c\u6210\u65f6\u5f39\u51fa\u7684\u8b66\u544a\u3002"}),"\n",(0,i.jsx)(n.h2,{id:"5-\u8fd0\u884c\u5e94\u7528\u4f7f\u7528-webview-\u7ec4\u4ef6",children:"5. \u8fd0\u884c\u5e94\u7528\u4f7f\u7528 WebView \u7ec4\u4ef6"}),"\n",(0,i.jsxs)(r.A,{groupId:"platforms",queryString:!0,defaultValue:c.A.defaultPlatform,children:[(0,i.jsx)(o.A,{value:"android",label:"Android",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn run android\n"})})}),(0,i.jsx)(o.A,{value:"ios",label:"iOS",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn run ios\n"})})})]}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"Android"}),(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"iOS"})]})}),(0,i.jsx)(n.tbody,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:(0,i.jsx)("img",{style:{"max-height":"600px"},src:"/docs/assets/webview-android.webp"})}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:(0,i.jsx)("img",{style:{"max-height":"600px"},src:"/docs/assets/webview-ios.webp"})})]})})]})]})}function x(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(v,{...e})}):v(e)}},64034:(e,n,t)=>{t.d(n,{A:()=>o});var i=t(1448);const a=!!i.A.canUseDOM&&navigator.platform.startsWith("Mac"),r=!!i.A.canUseDOM&&navigator.platform.startsWith("Win"),o={defaultGuide:"native",defaultJsDebugger:"flipper",defaultOs:a?"macos":r?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:a?"ios":"android",defaultSyntax:"functional",defaultAndroidLanguage:"java",defaultAppleLanguage:"objc",defaultJavaScriptSpecLanguages:"typescript",getDevNotesTabs:(e=["android","ios","web","windows"])=>[e.includes("android")?{label:"Android",value:"android"}:void 0,e.includes("ios")?{label:"iOS",value:"ios"}:void 0,e.includes("web")?{label:"Web",value:"web"}:void 0,e.includes("windows")?{label:"Windows",value:"windows"}:void 0].filter(Boolean),guides:[{label:"\u5b8c\u6574\u539f\u751f\u73af\u5883",value:"native"},{label:"\u7b80\u6613\u6c99\u76d2\u73af\u5883",value:"quickstart"}],oses:[{label:"macOS",value:"macos"},{label:"Windows",value:"windows"},{label:"Linux",value:"linux"}],packageManagers:[{label:"npm",value:"npm"},{label:"Yarn",value:"yarn"}],platforms:[{label:"Android",value:"android"},{label:"iOS",value:"ios"}],syntax:[{label:"\u51fd\u6570\u5f0f\u7ec4\u4ef6",value:"functional"},{label:"Class \u7ec4\u4ef6",value:"classical"}],androidLanguages:[{label:"Java",value:"java"},{label:"Kotlin",value:"kotlin"}],appleLanguages:[{label:"ObjectiveC",value:"objc"},{label:"Swift",value:"swift"}],javaScriptSpecLanguages:[{label:"TypeScript",value:"typescript"},{label:"Flow",value:"flow"}],jsDebuggers:[{label:"Hermes Debugger / Expo",value:"hermes"},{label:"Flipper",value:"flipper"},{label:"New Debugger (Experimental)",value:"new-debugger"}],snackLanguages:[{label:"TypeScript",value:"typescript"},{label:"JavaScript",value:"javascript"}],defaultSnackLanguage:"typescript"}},49646:(e,n,t)=>{t.d(n,{A:()=>o});var i=t(62540),a=t(11750);const r={tabItem:"tabItem_wHwb"};function o({children:e,hidden:n,className:t}){return(0,i.jsx)("div",{role:"tabpanel",className:(0,a.A)(r.tabItem,t),hidden:n,children:e})}},44067:(e,n,t)=>{t.d(n,{A:()=>C});var i=t(62540),a=t(63696),r=t(11750),o=t(3101),c=t(49519),s=t(21750),d=t(87718),l=t(38807),p=t(17819);function u(e){return a.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??function(e){return u(e).map((({props:{value:e,label:n,attributes:t,default:i}})=>({value:e,label:n,attributes:t,default:i})))}(t);return function(e){const n=(0,l.XI)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function m({value:e,tabValues:n}){return n.some((n=>n.value===e))}function g({queryString:e=!1,groupId:n}){const t=(0,c.W6)(),i=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,d.aZ)(i),(0,a.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(t.location.search);n.set(i,e),t.replace({...t.location,search:n.toString()})}),[i,t])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:i}=e,r=h(e),[o,c]=(0,a.useState)((()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!m({value:e,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const t=n.find((e=>e.default))??n[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:r}))),[d,l]=g({queryString:t,groupId:i}),[u,b]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[t,i]=(0,p.Dv)(n);return[t,(0,a.useCallback)((e=>{n&&i.set(e)}),[n,i])]}({groupId:i}),v=(()=>{const e=d??u;return m({value:e,tabValues:r})?e:null})();(0,s.A)((()=>{v&&c(v)}),[v]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);c(e),l(e),b(e)}),[l,b,r]),tabValues:r}}var v=t(64062);const x={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};function w({className:e,block:n,selectedValue:t,selectValue:a,tabValues:c}){const s=[],{blockElementScrollPositionUntilNextRender:d}=(0,o.a_)(),l=e=>{const n=e.currentTarget,i=s.indexOf(n),r=c[i].value;r!==t&&(d(n),a(r))},p=e=>{let n=null;switch(e.key){case"Enter":l(e);break;case"ArrowRight":{const t=s.indexOf(e.currentTarget)+1;n=s[t]??s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;n=s[t]??s[s.length-1];break}}n?.focus()};return(0,i.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":n},e),children:c.map((({value:e,label:n,attributes:a})=>(0,i.jsx)("li",{role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>s.push(e),onKeyDown:p,onClick:l,...a,className:(0,r.A)("tabs__item",x.tabItem,a?.className,{"tabs__item--active":t===e}),children:n??e},e)))})}function j({lazy:e,children:n,selectedValue:t}){const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=o.find((e=>e.props.value===t));return e?(0,a.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,i.jsx)("div",{className:"margin-top--md",children:o.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==t})))})}function f(e){const n=b(e);return(0,i.jsxs)("div",{className:(0,r.A)("tabs-container",x.tabList),children:[(0,i.jsx)(w,{...n,...e}),(0,i.jsx)(j,{...n,...e})]})}function C(e){const n=(0,v.A)();return(0,i.jsx)(f,{...e,children:u(e.children)},String(n))}},43023:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>c});var i=t(63696);const a={},r=i.createContext(a);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[32243,84827,86464],{78154:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>m,frontMatter:()=>s,metadata:()=>l,toc:()=>u});var i=t(62540),a=t(43023),r=t(44067),o=t(49646),c=t(64034);const s={id:"fabric-native-components-android",title:"Fabric Native Modules: Android"},d=void 0,l={id:"fabric-native-components-android",title:"Fabric Native Modules: Android",description:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b Android \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a",source:"@site/../cndocs/fabric-native-components-android.md",sourceDirName:".",slug:"/fabric-native-components-android",permalink:"/docs/next/fabric-native-components-android",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/fabric-native-components-android.md",tags:[],version:"current",frontMatter:{id:"fabric-native-components-android",title:"Fabric Native Modules: Android"}},p={},u=[{value:"1. \u4f7f\u7528 Gradle \u8fd0\u884c Codegen",id:"1-\u4f7f\u7528-gradle-\u8fd0\u884c-codegen",level:3},{value:"2. \u7f16\u5199 ReactWebView",id:"2-\u7f16\u5199-reactwebview",level:3},{value:"3. Write the WebViewManager",id:"3-write-the-webviewmanager",level:3},{value:"4. Write the ReactWebViewPackage",id:"4-write-the-reactwebviewpackage",level:3},{value:"5. Register the ReactWebViewPackage in the application",id:"5-register-the-reactwebviewpackage-in-the-application",level:3}];function h(e){const n={code:"code",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b Android \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u8fd0\u884c Codegen"}),"\n",(0,i.jsxs)(n.li,{children:["\u7f16\u5199 ",(0,i.jsx)(n.code,{children:"ReactWebView"})," \u7684\u4ee3\u7801"]}),"\n",(0,i.jsxs)(n.li,{children:["\u7f16\u5199 ",(0,i.jsx)(n.code,{children:"ReactWebViewManager"})," \u7684\u4ee3\u7801"]}),"\n",(0,i.jsxs)(n.li,{children:["\u7f16\u5199 ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," \u7684\u4ee3\u7801"]}),"\n",(0,i.jsxs)(n.li,{children:["\u5728\u5e94\u7528\u4e2d\u6ce8\u518c ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"1-\u4f7f\u7528-gradle-\u8fd0\u884c-codegen",children:"1. \u4f7f\u7528 Gradle \u8fd0\u884c Codegen"}),"\n",(0,i.jsx)(n.p,{children:"\u8fd0\u884c\u4e00\u6b21\u4ee5\u751f\u6210\u4f60\u7684 IDE \u53ef\u4ee5\u4f7f\u7528\u7684\u6837\u677f\u4ee3\u7801\u3002"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",metastring:'title="Demo/"',children:"cd android\n./gradlew generateCodegenArtifactsFromSchema\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Codegen \u5c06\u751f\u6210\u4f60\u9700\u8981\u5b9e\u73b0 ",(0,i.jsx)(n.code,{children:"ViewManager"})," \u63a5\u53e3\u548c ",(0,i.jsx)(n.code,{children:"ViewManager"})," \u59d4\u6258\u7684 web \u89c6\u56fe\u3002"]}),"\n",(0,i.jsxs)(n.h3,{id:"2-\u7f16\u5199-reactwebview",children:["2. \u7f16\u5199 ",(0,i.jsx)(n.code,{children:"ReactWebView"})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ReactWebView"})," \u662f\u5305\u88c5 Android \u539f\u751f\u89c6\u56fe\u7684\u7ec4\u4ef6\uff0cReact Native \u5c06\u5728\u4f7f\u7528\u81ea\u5b9a\u4e49\u7ec4\u4ef6\u65f6\u6e32\u67d3\u5b83\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u5728 ",(0,i.jsx)(n.code,{children:"android/src/main/java/com/webview"})," \u6587\u4ef6\u5939\u4e2d\u521b\u5efa\u4e00\u4e2a ",(0,i.jsx)(n.code,{children:"ReactWebView.java"})," \u6216 ",(0,i.jsx)(n.code,{children:"ReactWebView.kt"})," \u6587\u4ef6\uff0c\u5e76\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\uff1a"]}),"\n",(0,i.jsxs)(r.A,{groupId:"android-language",queryString:!0,defaultValue:c.A.defaultAndroidLanguage,values:c.A.androidLanguages,children:[(0,i.jsx)(o.A,{value:"java",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebView.java"',children:'package com.webview;\n\nimport android.content.Context;\nimport android.util.AttributeSet;\nimport android.webkit.WebView;\nimport android.webkit.WebViewClient;\n\nimport com.facebook.react.bridge.Arguments;\nimport com.facebook.react.bridge.WritableMap;\nimport com.facebook.react.bridge.ReactContext;\nimport com.facebook.react.uimanager.UIManagerHelper;\nimport com.facebook.react.uimanager.events.Event;\n\npublic class ReactWebView extends WebView {\n public ReactWebView(Context context) {\n super(context);\n configureComponent();\n }\n\n public ReactWebView(Context context, AttributeSet attrs) {\n super(context, attrs);\n configureComponent();\n }\n\n public ReactWebView(Context context, AttributeSet attrs, int defStyleAttr) {\n super(context, attrs, defStyleAttr);\n configureComponent();\n }\n\n private void configureComponent() {\n this.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));\n this.setWebViewClient(new WebViewClient() {\n @Override\n public void onPageFinished(WebView view, String url) {\n emitOnScriptLoaded(OnScriptLoadedEventResult.success);\n }\n });\n }\n\n public void emitOnScriptLoaded(OnScriptLoadedEventResult result) {\n ReactContext reactContext = (ReactContext) context;\n int surfaceId = UIManagerHelper.getSurfaceId(reactContext);\n EventDispatcher eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, getId());\n WritableMap payload = Arguments.createMap();\n payload.putString("result", result.name());\n\n OnScriptLoadedEvent event = new OnScriptLoadedEvent(surfaceId, getId(), payload);\n if (eventDispatcher != null) {\n eventDispatcher.dispatchEvent(event);\n }\n }\n\n public enum OnScriptLoadedEventResult {\n success,\n error\n }\n\n private class OnScriptLoadedEvent extends Event {\n private final WritableMap payload;\n\n OnScriptLoadedEvent(int surfaceId, int viewId, WritableMap payload) {\n super(surfaceId, viewId);\n this.payload = payload;\n }\n\n @Override\n public String getEventName() {\n return "onScriptLoaded";\n }\n\n @Override\n public WritableMap getEventData() {\n return payload;\n }\n }\n}\n'})})}),(0,i.jsx)(o.A,{value:"kotlin",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-kotlin",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebView.kt"',children:'package com.webview\n\nimport android.content.Context\nimport android.util.AttributeSet\nimport android.webkit.WebView\nimport android.webkit.WebViewClient\nimport com.facebook.react.bridge.Arguments\nimport com.facebook.react.bridge.WritableMap\nimport com.facebook.react.bridge.ReactContext\nimport com.facebook.react.uimanager.UIManagerHelper\nimport com.facebook.react.uimanager.events.Event\n\nclass ReactWebView: WebView {\n constructor(context: Context) : super(context) {\n configureComponent()\n }\n\n constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {\n configureComponent()\n }\n\n constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {\n configureComponent()\n }\n\n private fun configureComponent() {\n this.layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)\n this.webViewClient = object : WebViewClient() {\n override fun onPageFinished(view: WebView, url: String) {\n emitOnScriptLoaded(OnScriptLoadedEventResult.success)\n }\n }\n }\n\n fun emitOnScriptLoaded(result: OnScriptLoadedEventResult) {\n val reactContext = context as ReactContext\n val surfaceId = UIManagerHelper.getSurfaceId(reactContext)\n val eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, id)\n val payload =\n Arguments.createMap().apply {\n putString("result", result.name)\n }\n val event = OnScriptLoadedEvent(surfaceId, id, payload)\n\n eventDispatcher?.dispatchEvent(event)\n }\n\n enum class OnScriptLoadedEventResult() {\n success(),\n error()\n }\n\n inner class OnScriptLoadedEvent(\n surfaceId: Int,\n viewId: Int,\n private val payload: WritableMap\n ) : Event(surfaceId, viewId) {\n override fun getEventName() = "onScriptLoaded"\n\n override fun getEventData() = payload\n }\n}\n'})})})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ReactWebView"})," \u6269\u5c55\u4e86 Android ",(0,i.jsx)(n.code,{children:"WebView"}),"\uff0c\u56e0\u6b64\u4f60\u53ef\u4ee5\u8f7b\u677e\u5730\u91cd\u7528\u5e73\u53f0\u5df2\u7ecf\u5b9a\u4e49\u7684\u6240\u6709\u5c5e\u6027\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u8be5\u7c7b\u5b9a\u4e49\u4e86\u4e09\u4e2a Android \u6784\u9020\u51fd\u6570\uff0c\u4f46\u5c06\u5b83\u4eec\u7684\u5b9e\u9645\u5b9e\u73b0\u63a8\u8fdf\u5230\u79c1\u6709 ",(0,i.jsx)(n.code,{children:"configureComponent"})," \u51fd\u6570\u3002\u6b64\u51fd\u6570\u8d1f\u8d23\u521d\u59cb\u5316\u6240\u6709\u7ec4\u4ef6\u7684\u7279\u5b9a\u5c5e\u6027\uff1a\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u4f60\u6b63\u5728\u8bbe\u7f6e ",(0,i.jsx)(n.code,{children:"WebView"})," \u7684\u5e03\u5c40\uff0c\u5e76\u5b9a\u4e49\u4f60\u7528\u4e8e\u81ea\u5b9a\u4e49 ",(0,i.jsx)(n.code,{children:"WebView"})," \u884c\u4e3a\u7684 ",(0,i.jsx)(n.code,{children:"WebClient"}),"\u3002\u5728\u6b64\u4ee3\u7801\u4e2d\uff0c",(0,i.jsx)(n.code,{children:"ReactWebView"})," \u5728\u9875\u9762\u52a0\u8f7d\u5b8c\u6210\u540e\u901a\u8fc7\u5b9e\u73b0 ",(0,i.jsx)(n.code,{children:"WebClient"})," \u7684 ",(0,i.jsx)(n.code,{children:"onPageFinished"})," \u65b9\u6cd5\u6765\u53d1\u51fa\u4e8b\u4ef6\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u7136\u540e\uff0c\u4ee3\u7801\u5b9a\u4e49\u4e86\u4e00\u4e2a\u5b9e\u9645\u53d1\u51fa\u4e8b\u4ef6\u7684\u5e2e\u52a9\u51fd\u6570\u3002\u8981\u53d1\u51fa\u4e8b\u4ef6\uff0c\u4f60\u5fc5\u987b\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\u83b7\u53d6 ",(0,i.jsx)(n.code,{children:"ReactContext"})," \u7684\u5f15\u7528\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:["retrieve the ",(0,i.jsx)(n.code,{children:"surfaceId"})," of the view that you are presenting;"]}),"\n",(0,i.jsxs)(n.li,{children:["grab a reference to the ",(0,i.jsx)(n.code,{children:"eventDispatcher"})," associated with the view;"]}),"\n",(0,i.jsxs)(n.li,{children:["build the payload for the event using a ",(0,i.jsx)(n.code,{children:"WritableMap"})," object;"]}),"\n",(0,i.jsx)(n.li,{children:"create the event object that you need to send to JavaScript;"}),"\n",(0,i.jsxs)(n.li,{children:["call the ",(0,i.jsx)(n.code,{children:"eventDispatcher.dispatchEvent"})," to send the event."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"The last part of the file contains the definition of the data types you need to send the event:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The ",(0,i.jsx)(n.code,{children:"OnScriptLoadedEventResult"}),", with the possible outcomes of the ",(0,i.jsx)(n.code,{children:"OnScriptLoaded"})," event."]}),"\n",(0,i.jsxs)(n.li,{children:["The actual ``OnScriptLoadedEvent",(0,i.jsx)(n.code,{children:"that needs to extend the React Native's"}),"Event` class."]}),"\n"]}),"\n",(0,i.jsxs)(n.h3,{id:"3-write-the-webviewmanager",children:["3. Write the ",(0,i.jsx)(n.code,{children:"WebViewManager"})]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"WebViewManager"})," is the class that connects the React Native runtime with the native view."]}),"\n",(0,i.jsx)(n.p,{children:"When React receives the instruction from the app to render a specific component, React uses the registered view manager to create the view and to pass all the required properties."}),"\n",(0,i.jsxs)(n.p,{children:["This is the code of the ",(0,i.jsx)(n.code,{children:"ReactWebViewManager"}),"."]}),"\n",(0,i.jsxs)(r.A,{groupId:"android-language",queryString:!0,defaultValue:c.A.defaultAndroidLanguage,values:c.A.androidLanguages,children:[(0,i.jsx)(o.A,{value:"java",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebViewManager.java"',children:'package com.webview;\n\nimport com.facebook.react.bridge.ReactApplicationContext;\nimport com.facebook.react.module.annotations.ReactModule;\nimport com.facebook.react.uimanager.SimpleViewManager;\nimport com.facebook.react.uimanager.ThemedReactContext;\nimport com.facebook.react.uimanager.ViewManagerDelegate;\nimport com.facebook.react.uimanager.annotations.ReactProp;\nimport com.facebook.react.viewmanagers.CustomWebViewManagerInterface;\nimport com.facebook.react.viewmanagers.CustomWebViewManagerDelegate;\n\nimport java.util.HashMap;\nimport java.util.Map;\n\n@ReactModule(name = ReactWebViewManager.REACT_CLASS)\nclass ReactWebViewManager extends SimpleViewManager implements CustomWebViewManagerInterface {\n private final CustomWebViewManagerDelegate delegate =\n new CustomWebViewManagerDelegate<>(this);\n\n @Override\n public ViewManagerDelegate getDelegate() {\n return delegate;\n }\n\n @Override\n public String getName() {\n return REACT_CLASS;\n }\n\n @Override\n public ReactWebView createViewInstance(ThemedReactContext context) {\n return new ReactWebView(context);\n }\n\n @ReactProp(name = "sourceUrl")\n @Override\n public void setSourceURL(ReactWebView view, String sourceURL) {\n if (sourceURL == null) {\n view.emitOnScriptLoaded(ReactWebView.OnScriptLoadedEventResult.error);\n return;\n }\n view.loadUrl(sourceURL, new HashMap<>());\n }\n\n public static final String REACT_CLASS = "CustomWebView";\n\n @Override\n public Map getExportedCustomBubblingEventTypeConstants() {\n Map map = new HashMap<>();\n Map bubblingMap = new HashMap<>();\n bubblingMap.put("phasedRegistrationNames", new HashMap() {{\n put("bubbled", "onScriptLoaded");\n put("captured", "onScriptLoadedCapture");\n }});\n map.put("onScriptLoaded", bubblingMap);\n return map;\n }\n}\n'})})}),(0,i.jsx)(o.A,{value:"kotlin",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-kotlin",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebViewManager.kt"',children:'package com.webview\n\nimport com.facebook.react.bridge.ReactApplicationContext;\nimport com.facebook.react.module.annotations.ReactModule;\nimport com.facebook.react.uimanager.SimpleViewManager;\nimport com.facebook.react.uimanager.ThemedReactContext;\nimport com.facebook.react.uimanager.ViewManagerDelegate;\nimport com.facebook.react.uimanager.annotations.ReactProp;\nimport com.facebook.react.viewmanagers.CustomWebViewManagerInterface;\nimport com.facebook.react.viewmanagers.CustomWebViewManagerDelegate;\n\n@ReactModule(name = ReactWebViewManager.REACT_CLASS)\nclass ReactWebViewManager(context: ReactApplicationContext) : SimpleViewManager(), CustomWebViewManagerInterface {\n private val delegate: CustomWebViewManagerDelegate =\n CustomWebViewManagerDelegate(this)\n\n override fun getDelegate(): ViewManagerDelegate = delegate\n\n override fun getName(): String = REACT_CLASS\n\n override fun createViewInstance(context: ThemedReactContext): ReactWebView = ReactWebView(context)\n\n @ReactProp(name = "sourceUrl")\n override fun setSourceURL(view: ReactWebView, sourceURL: String?) {\n if (sourceURL == null) {\n view.emitOnScriptLoaded(ReactWebView.OnScriptLoadedEventResult.error)\n return;\n }\n view.loadUrl(sourceURL, emptyMap())\n }\n\n companion object {\n const val REACT_CLASS = "CustomWebView"\n }\n\n override fun getExportedCustomBubblingEventTypeConstants(): Map =\n mapOf(\n "onScriptLoaded" to\n mapOf(\n "phasedRegistrationNames" to\n mapOf(\n "bubbled" to "onScriptLoaded",\n "captured" to "onScriptLoadedCapture"\n )))\n}\n'})})})]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"ReactWebViewManager"})," extends the ",(0,i.jsx)(n.code,{children:"SimpleViewManager"})," class from React and implements the ",(0,i.jsx)(n.code,{children:"CustomWebViewManagerInterface"}),", generated by Codegen."]}),"\n",(0,i.jsxs)(n.p,{children:["It holds a reference of the ",(0,i.jsx)(n.code,{children:"CustomWebViewManagerDelegate"}),", another element generated by Codegen."]}),"\n",(0,i.jsxs)(n.p,{children:["It then overrides the ",(0,i.jsx)(n.code,{children:"getName"})," function, which must return the same name used in the spec's ",(0,i.jsx)(n.code,{children:"codegenNativeComponent"})," function call."]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"createViewInstance"})," function is responsible to instantiate a new ",(0,i.jsx)(n.code,{children:"ReactWebView"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Then, the ViewManager needs to define how all the React's compnoents props will update the native view. In the example, you need to decide how to handle the ",(0,i.jsx)(n.code,{children:"sourceURL"})," property that React will set on the ",(0,i.jsx)(n.code,{children:"WebView"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Finally, if the component can emit an event, you need to map the event name by overriding the ",(0,i.jsx)(n.code,{children:"getExportedCustomBubblingEventTypeConstants"})," for bubbling events, or the ",(0,i.jsx)(n.code,{children:"getExportedCustomDirectEventTypeConstants"})," for direct events."]}),"\n",(0,i.jsxs)(n.h3,{id:"4-write-the-reactwebviewpackage",children:["4. Write the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})]}),"\n",(0,i.jsxs)(n.p,{children:["As you do with Native Modules, Native Components also need to implement the ",(0,i.jsx)(n.code,{children:"ReactPackage"})," class. This is an object that you can use to register the component in the React Native runtime."]}),"\n",(0,i.jsxs)(n.p,{children:["This is the code for the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"}),":"]}),"\n",(0,i.jsxs)(r.A,{groupId:"android-language",queryString:!0,defaultValue:c.A.defaultAndroidLanguage,values:c.A.androidLanguages,children:[(0,i.jsx)(o.A,{value:"java",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebViewPackage.java"',children:"package com.webview;\n\nimport com.facebook.react.TurboReactPackage;\nimport com.facebook.react.bridge.NativeModule;\nimport com.facebook.react.bridge.ReactApplicationContext;\nimport com.facebook.react.module.model.ReactModuleInfo;\nimport com.facebook.react.module.model.ReactModuleInfoProvider;\nimport com.facebook.react.uimanager.ViewManager;\n\nimport java.util.Collections;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class ReactWebViewPackage extends TurboReactPackage {\n @Override\n public List> createViewManagers(ReactApplicationContext reactContext) {\n return Collections.singletonList(new ReactWebViewManager(reactContext));\n }\n\n @Override\n public NativeModule getModule(String s, ReactApplicationContext reactApplicationContext) {\n if (ReactWebViewManager.REACT_CLASS.equals(s)) {\n return new ReactWebViewManager(reactApplicationContext);\n }\n return null;\n }\n\n @Override\n public ReactModuleInfoProvider getReactModuleInfoProvider() {\n return new ReactModuleInfoProvider() {\n @Override\n public Map get() {\n Map map = new HashMap<>();\n map.put(ReactWebViewManager.REACT_CLASS, new ReactModuleInfo(\n ReactWebViewManager.REACT_CLASS, // name\n ReactWebViewManager.REACT_CLASS, // className\n false, // canOverrideExistingModule\n false, // needsEagerInit\n false, // isCxxModule\n true // isTurboModule\n ));\n return map;\n }\n };\n }\n}\n"})})}),(0,i.jsx)(o.A,{value:"kotlin",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-kotlin",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebView.kt"',children:"package com.webview\n\nimport com.facebook.react.TurboReactPackage\nimport com.facebook.react.bridge.NativeModule\nimport com.facebook.react.bridge.ReactApplicationContext\nimport com.facebook.react.module.model.ReactModuleInfo\nimport com.facebook.react.module.model.ReactModuleInfoProvider\nimport com.facebook.react.uimanager.ViewManager\n\nclass ReactWebViewPackage : TurboReactPackage() {\n override fun createViewManagers(reactContext: ReactApplicationContext): List> {\n return listOf(ReactWebViewManager(reactContext))\n }\n\n override fun getModule(s: String, reactApplicationContext: ReactApplicationContext): NativeModule? {\n when (s) {\n ReactWebViewManager.REACT_CLASS -> ReactWebViewManager(reactApplicationContext)\n }\n return null\n }\n\n override fun getReactModuleInfoProvider(): ReactModuleInfoProvider = ReactModuleInfoProvider {\n mapOf(ReactWebViewManager.REACT_CLASS to ReactModuleInfo(\n _name = ReactWebViewManager.REACT_CLASS,\n _className = ReactWebViewManager.REACT_CLASS,\n _canOverrideExistingModule = false,\n _needsEagerInit = false,\n isCxxModule = false,\n isTurboModule = true,\n )\n )\n }\n}\n"})})})]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," extends the ",(0,i.jsx)(n.code,{children:"TurboReactPackage"})," and implements all the methods required to properly register our component."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"createViewManagers"})," method is the factory method that creates the ",(0,i.jsx)(n.code,{children:"ViewManager"})," that manage the custom views."]}),"\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"getModule"})," method returns the proper ViewManager depending on the View that React Native needs to render."]}),"\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"getReactModuleInfoProvider"})," provides all the information required when registering the module in the runtime,"]}),"\n"]}),"\n",(0,i.jsxs)(n.h3,{id:"5-register-the-reactwebviewpackage-in-the-application",children:["5. Register the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," in the application"]}),"\n",(0,i.jsxs)(n.p,{children:["Finally, you need to register the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," in the application. We do that by modifying the ",(0,i.jsx)(n.code,{children:"MainApplication"})," file by adding the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," to the list of packages returned by the ",(0,i.jsx)(n.code,{children:"getPackages"})," function."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-kotlin",metastring:'title="Demo/app/src/main/java/com/demo/MainApplication.kt"',children:'package com.demo\n\nimport android.app.Application\nimport com.facebook.react.PackageList\nimport com.facebook.react.ReactApplication\nimport com.facebook.react.ReactHost\nimport com.facebook.react.ReactNativeHost\nimport com.facebook.react.ReactPackage\nimport com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load\nimport com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\nimport com.facebook.react.defaults.DefaultReactNativeHost\nimport com.facebook.react.soloader.OpenSourceMergedSoMapping\nimport com.facebook.soloader.SoLoader\n// highlight-next-line\nimport com.webview.ReactWebViewPackage\n\nclass MainApplication : Application(), ReactApplication {\n\n override val reactNativeHost: ReactNativeHost =\n object : DefaultReactNativeHost(this) {\n override fun getPackages(): List =\n PackageList(this).packages.apply {\n // highlight-next-line\n add(ReactWebViewPackage())\n }\n\n override fun getJSMainModuleName(): String = "index"\n\n override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG\n\n override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED\n override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED\n }\n\n override val reactHost: ReactHost\n get() = getDefaultReactHost(applicationContext, reactNativeHost)\n\n override fun onCreate() {\n super.onCreate()\n SoLoader.init(this, OpenSourceMergedSoMapping)\n if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n load()\n }\n }\n}\n\n'})})]})}function m(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},31828:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var i=t(62540),a=t(43023);t(44067),t(49646),t(64034);const r={id:"fabric-native-components-ios",title:"Fabric Native Components: iOS"},o=void 0,c={id:"fabric-native-components-ios",title:"Fabric Native Components: iOS",description:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b iOS \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a",source:"@site/../cndocs/fabric-native-components-ios.md",sourceDirName:".",slug:"/fabric-native-components-ios",permalink:"/docs/next/fabric-native-components-ios",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/fabric-native-components-ios.md",tags:[],version:"current",frontMatter:{id:"fabric-native-components-ios",title:"Fabric Native Components: iOS"}},s={},d=[{value:"1. \u8fd0\u884c Codegen",id:"1-\u8fd0\u884c-codegen",level:3},{value:"3. \u7f16\u5199 RCTWebView",id:"3-\u7f16\u5199-rctwebview",level:3},{value:"AppDelegate.mm",id:"appdelegatemm",level:4}];function l(e){const n={a:"a",admonition:"admonition",code:"code",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b iOS \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u8fd0\u884c Codegen\u3002"}),"\n",(0,i.jsxs)(n.li,{children:["\u7f16\u5199 ",(0,i.jsx)(n.code,{children:"RCTWebView"})," \u7684\u4ee3\u7801"]}),"\n",(0,i.jsxs)(n.li,{children:["\u5728\u5e94\u7528\u4e2d\u6ce8\u518c ",(0,i.jsx)(n.code,{children:"RCTWebView"})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"1-\u8fd0\u884c-codegen",children:"1. \u8fd0\u884c Codegen"}),"\n",(0,i.jsxs)(n.p,{children:["\u4f60\u53ef\u4ee5",(0,i.jsx)(n.a,{href:"the-new-architecture/codegen-cli",children:"\u624b\u52a8\u8fd0\u884c"})," Codegen\uff0c\u5f53\u7136\u76f4\u63a5\u4f7f\u7528\u4f60\u5c06\u8981\u6f14\u793a\u7ec4\u4ef6\u7684\u5e94\u7528\u6765\u5b8c\u6210\u6b64\u64cd\u4f5c\u4f1a\u66f4\u7b80\u5355\u3002"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"cd ios\nbundle install\nbundle exec pod install\n"})}),"\n",(0,i.jsx)(n.p,{children:"\u91cd\u8981\u7684\u662f\u4f60\u4f1a\u770b\u5230 Codegen \u7684\u65e5\u5fd7\u8f93\u51fa\uff0c\u6211\u4eec\u5c06\u5728 Xcode \u4e2d\u4f7f\u7528\u5b83\u6765\u6784\u5efa WebView \u539f\u751f\u7ec4\u4ef6\u3002"}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["\u6ce8\u610f\u4e0d\u8981\u5c06\u751f\u6210\u7684\u4ee3\u7801\u63d0\u4ea4\u5230\u4f60\u7684\u4ed3\u5e93\u4e2d\u3002\u751f\u6210\u7684\u4ee3\u7801\u4e0e React Native \u7684\u7248\u672c\u76f8\u5173\u3002\u4f7f\u7528 npm ",(0,i.jsx)(n.a,{href:"https://nodejs.org/en/blog/npm/peer-dependencies",children:"peerDependencies"})," \u6765\u7ea6\u675f\u4e0e React Native \u7248\u672c\u7684\u517c\u5bb9\u6027\u3002"]})}),"\n",(0,i.jsxs)(n.h3,{id:"3-\u7f16\u5199-rctwebview",children:["3. \u7f16\u5199 ",(0,i.jsx)(n.code,{children:"RCTWebView"})]}),"\n",(0,i.jsxs)(n.p,{children:["\u6211\u4eec\u9700\u8981\u4f7f\u7528 Xcode \u5b8c\u6210\u4ee5\u4e0b ",(0,i.jsx)(n.strong,{children:"5 \u6b65"}),"\uff1a"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"\u6253\u5f00 CocoPods \u751f\u6210\u7684 Xcode workspace \u6587\u4ef6\uff1a"}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"cd ios\nopen Demo.xcworkspace\n"})}),"\n",(0,i.jsx)("img",{class:"half-size",alt:"Open Xcode Workspace",src:"/docs/assets/fabric-native-components/1.webp"}),"\n",(0,i.jsxs)(n.ol,{start:"2",children:["\n",(0,i.jsxs)(n.li,{children:["\u53f3\u952e\u70b9\u51fb\u5e94\u7528\uff0c\u9009\u62e9 ",(0,i.jsx)("code",{children:"New Group"}),"\uff0c\u5c06\u65b0\u7ec4\u547d\u540d\u4e3a ",(0,i.jsx)(n.code,{children:"WebView"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)("img",{class:"half-size",alt:"Right click on app and select New Group",src:"/docs/assets/fabric-native-components/2.webp"}),"\n",(0,i.jsxs)(n.ol,{start:"3",children:["\n",(0,i.jsxs)(n.li,{children:["\u5728 ",(0,i.jsx)(n.code,{children:"WebView"})," \u7ec4\u4e2d\uff0c\u521b\u5efa ",(0,i.jsx)("code",{children:"New"}),"\u2192",(0,i.jsx)("code",{children:"File from Template"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)("img",{class:"half-size",alt:"Create a new file using the Cocoa Touch Classs template",src:"/docs/assets/fabric-native-components/3.webp"}),"\n",(0,i.jsxs)(n.ol,{start:"4",children:["\n",(0,i.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,i.jsx)("code",{children:"Objective-C File"})," \u6a21\u677f\uff0c\u5e76\u547d\u540d\u4e3a ",(0,i.jsx)("code",{children:"RCTWebView"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)("img",{class:"half-size",alt:"Create an Objective-C RCTWebView class",src:"/docs/assets/fabric-native-components/4.webp"}),"\n",(0,i.jsxs)(n.ol,{start:"5",children:["\n",(0,i.jsxs)(n.li,{children:["\u5c06 ",(0,i.jsx)("code",{children:"RCTWebView.m"})," \u91cd\u547d\u540d\u4e3a ",(0,i.jsx)("code",{children:"RCTWebView.mm"}),"\uff0c\u4f7f\u5176\u6210\u4e3a Objective-C++ \u6587\u4ef6\u3002"]}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",metastring:'title="Demo/ios"',children:"Podfile\n...\nDemo\n\u251c\u2500\u2500 AppDelegate.h\n\u251c\u2500\u2500 AppDelegate.mm\n...\n// highlight-start\n\u251c\u2500\u2500 RCTWebView.h\n\u251c\u2500\u2500 RCTWebView.mm\n// highlight-end\n\u2514\u2500\u2500 main.m\n"})}),"\n",(0,i.jsx)(n.p,{children:"\u521b\u5efa\u5934\u6587\u4ef6\u548c\u5b9e\u73b0\u6587\u4ef6\u540e\uff0c\u53ef\u4ee5\u5f00\u59cb\u5b9e\u73b0\u5b83\u4eec\u3002"}),"\n",(0,i.jsxs)(n.p,{children:["\u4ee5\u4e0b\u662f ",(0,i.jsx)(n.code,{children:"RCTWebView.h"})," \u6587\u4ef6\u7684\u4ee3\u7801\uff0c\u58f0\u660e\u4e86\u7ec4\u4ef6\u63a5\u53e3\u3002"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-objc",metastring:'title="Demo/RCTWebView/RTNWebView.h"',children:"#import \n#import \n\nNS_ASSUME_NONNULL_BEGIN\n\n@interface RCTWebView : RCTViewComponentView\n\n// \u4f60\u53ef\u4ee5\u5728\u89c6\u56fe\u4e2d\u58f0\u660e\u4f60\u60f3\u8981\u8bbf\u95ee\u7684\u539f\u751f\u65b9\u6cd5\n\n@end\n\nNS_ASSUME_NONNULL_END\n"})}),"\n",(0,i.jsxs)(n.p,{children:["\u8fd9\u4e2a\u7c7b\u5b9a\u4e49\u4e86\u4e00\u4e2a ",(0,i.jsx)(n.code,{children:"RCTWebView"}),"\uff0c\u5b83\u6269\u5c55\u4e86 ",(0,i.jsx)(n.code,{children:"RCTViewComponentView"})," \u7c7b\u3002\u8fd9\u662f\u6240\u6709\u539f\u751f\u7ec4\u4ef6\u7684\u57fa\u7840\u7c7b\uff0c\u7531 React Native \u63d0\u4f9b\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u4ee5\u4e0b\u662f\u5b9e\u73b0\u6587\u4ef6 (",(0,i.jsx)(n.code,{children:"RCTWebView.mm"}),") \u7684\u4ee3\u7801\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-objc",metastring:'title="Demo/RCTWebView/RCTWebView.mm"',children:'#import "RCTWebView.h"\n\n#import \n#import \n#import \n#import \n// highlight-next-line\n#import \n\nusing namespace facebook::react;\n\n@interface RCTWebView () \n@end\n\n@implementation RCTWebView {\n NSURL * _sourceURL;\n WKWebView * _webView;\n}\n\n-(instancetype)init\n{\n if(self = [super init]) {\n // highlight-start\n _webView = [WKWebView new];\n _webView.navigationDelegate = self;\n [self addSubview:_webView];\n // highlight-end\n }\n return self;\n}\n\n- (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &)oldProps\n{\n const auto &oldViewProps = *std::static_pointer_cast(_props);\n const auto &newViewProps = *std::static_pointer_cast(props);\n\n // Handle your props here\n if (oldViewProps.sourceURL != newViewProps.sourceURL) {\n NSString *urlString = [NSString stringWithCString:newViewProps.sourceURL.c_str() encoding:NSUTF8StringEncoding];\n _sourceURL = [NSURL URLWithString:urlString];\n // highlight-start\n if ([self urlIsValid:newViewProps.sourceURL]) {\n [_webView loadRequest:[NSURLRequest requestWithURL:_sourceURL]];\n }\n // highlight-end\n }\n\n [super updateProps:props oldProps:oldProps];\n}\n\n-(void)layoutSubviews\n{\n [super layoutSubviews];\n _webView.frame = self.bounds;\n\n}\n\n#pragma mark - WKNavigationDelegate\n\n// highlight-start\n-(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation\n{\n CustomWebViewEventEmitter::OnScriptLoaded result = CustomWebViewEventEmitter::OnScriptLoaded{CustomWebViewEventEmitter::OnScriptLoadedResult::Success};\n self.eventEmitter.onScriptLoaded(result);\n}\n\n- (BOOL)urlIsValid:(std::string)propString\n{\n if (propString.length() > 0 && !_sourceURL) {\n CustomWebViewEventEmitter::OnScriptLoaded result = CustomWebViewEventEmitter::OnScriptLoaded{CustomWebViewEventEmitter::OnScriptLoadedResult::Error};\n\n self.eventEmitter.onScriptLoaded(result);\n return NO;\n }\n return YES;\n}\n\n// Event emitter convenience method\n- (const CustomWebViewEventEmitter &)eventEmitter\n{\n return static_cast(*_eventEmitter);\n}\n// highlight-end\n\n+ (ComponentDescriptorProvider)componentDescriptorProvider\n{\n return concreteComponentDescriptorProvider();\n}\n\nClass WebViewCls(void)\n{\n return RCTWebView.class;\n}\n\n@end\n'})}),"\n",(0,i.jsx)(n.p,{children:"\u8fd9\u6bb5\u4ee3\u7801\u662f\u7528 Objective-C++ \u7f16\u5199\u7684\uff0c\u5305\u542b\u4ee5\u4e0b\u7ec6\u8282\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"@interface"})," \u5b9e\u73b0\u4e86\u4e24\u4e2a\u534f\u8bae\uff1a","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"RCTCustomWebViewViewProtocol"}),", generated by Codegen;"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"WKNavigationDelegate"}),", \u7531 WebKit \u6846\u67b6\u63d0\u4f9b\uff0c\u7528\u4e8e\u5904\u7406 web \u89c6\u56fe\u5bfc\u822a\u4e8b\u4ef6\uff1b"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"init"})," \u65b9\u6cd5\u5b9e\u4f8b\u5316 ",(0,i.jsx)(n.code,{children:"WKWebView"}),"\uff0c\u5c06\u5176\u6dfb\u52a0\u5230\u5b50\u89c6\u56fe\uff0c\u5e76\u8bbe\u7f6e ",(0,i.jsx)(n.code,{children:"navigationDelegate"}),"\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"updateProps"})," \u65b9\u6cd5\uff0c\u7531 React Native \u5728\u7ec4\u4ef6\u7684\u5c5e\u6027\u53d8\u5316\u65f6\u8c03\u7528\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"layoutSubviews"})," \u65b9\u6cd5\uff0c\u63cf\u8ff0\u4e86\u81ea\u5b9a\u4e49\u89c6\u56fe\u9700\u8981\u5982\u4f55\u5e03\u5c40\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"webView:didFinishNavigation:"})," \u65b9\u6cd5\uff0c\u7528\u4e8e\u5904\u7406 ",(0,i.jsx)(n.code,{children:"WKWebView"})," \u5b8c\u6210\u52a0\u8f7d\u9875\u9762\u65f6\u9700\u8981\u6267\u884c\u7684\u64cd\u4f5c\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"urlIsValid:(std::string)propString"})," \u65b9\u6cd5\u68c0\u67e5\u63a5\u6536\u5230\u7684 URL \u5c5e\u6027\u662f\u5426\u6709\u6548\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"eventEmitter"})," \u65b9\u6cd5\uff0c\u7528\u4e8e\u68c0\u7d22\u5f3a\u7c7b\u578b\u7684 ",(0,i.jsx)(n.code,{children:"eventEmitter"})," \u5b9e\u4f8b\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"componentDescriptorProvider"})," \u65b9\u6cd5\uff0c\u8fd4\u56de\u7531 Codegen \u751f\u6210\u7684 ",(0,i.jsx)(n.code,{children:"ComponentDescriptor"}),"\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"WebViewCls"})," \u65b9\u6cd5\uff0c\u7528\u4e8e\u5728\u5e94\u7528\u4e2d\u6ce8\u518c ",(0,i.jsx)(n.code,{children:"RCTWebView"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"appdelegatemm",children:"AppDelegate.mm"}),"\n",(0,i.jsxs)(n.p,{children:["\u6700\u540e\uff0c\u53ef\u4ee5\u5728\u5e94\u7528\u4e2d\u6ce8\u518c\u7ec4\u4ef6\u3002\u66f4\u65b0 ",(0,i.jsx)(n.code,{children:"AppDelegate.mm"})," \u6587\u4ef6\uff0c\u4f7f\u5e94\u7528\u610f\u8bc6\u5230\u81ea\u5b9a\u4e49\u7684 WebView \u7ec4\u4ef6\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-objc",metastring:'title="Demo/ios/Demo/AppDelegate.mm"',children:'#import "AppDelegate.h"\n\n#import \n// highlight-start\n#import \n#import "RCTWebView.h"\n// highlight-end\n@implementation AppDelegate\n// ...\n// highlight-start\n- (NSDictionary> *)thirdPartyFabricComponents\n{\n NSMutableDictionary * dictionary = [super thirdPartyFabricComponents].mutableCopy;\n dictionary[@"CustomWebView"] = [RCTWebView class];\n return dictionary;\n}\n// highlight-end\n\n@end\n'})}),"\n",(0,i.jsxs)(n.p,{children:["\u8fd9\u6bb5\u4ee3\u7801\u901a\u8fc7\u83b7\u53d6\u6765\u81ea\u5176\u4ed6\u6765\u6e90\uff08\u5982\u7b2c\u4e09\u65b9\u5e93\uff09\u7684\u7b2c\u4e09\u65b9\u7ec4\u4ef6\u5b57\u5178\u7684\u53ef\u53d8\u526f\u672c\uff0c\u91cd\u5199\u4e86 ",(0,i.jsx)(n.code,{children:"thirdPartyFabricComponents"})," \u65b9\u6cd5\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u7136\u540e\uff0c\u5411\u5b57\u5178\u4e2d\u6dfb\u52a0\u4e00\u4e2a\u6761\u76ee\uff0c\u6761\u76ee\u540d\u79f0\u4e0e Codegen \u89c4\u8303\u6587\u4ef6\u4e2d\u4f7f\u7528\u7684\u540d\u79f0\u76f8\u540c\u3002\u8fd9\u6837\uff0c\u5f53 React \u9700\u8981\u52a0\u8f7d\u540d\u79f0 ",(0,i.jsx)(n.code,{children:"CustomWebView"})," \u7684\u7ec4\u4ef6\u65f6\uff0cReact Native \u5c06\u5b9e\u4f8b\u5316 ",(0,i.jsx)(n.code,{children:"RCTWebView"}),"\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u6700\u540e\uff0c\u8fd4\u56de\u65b0\u7684\u5b57\u5178\u3002"}),"\n",(0,i.jsxs)(n.admonition,{type:"warning",children:[(0,i.jsx)(n.p,{children:"\u6211\u4eec\u610f\u8bc6\u5230 iOS \u5b58\u5728\u4e00\u4e9b\u95ee\u9898\uff0c\u5f53\u4f7f\u7528\u81ea\u5b9a\u4e49 iOS \u7ec4\u4ef6\u6784\u5efa\u5e94\u7528\u65f6\u4f1a\u51fa\u73b0\u95ee\u9898\u3002"}),(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\u7ec4\u4ef6\u9700\u8981\u8bbf\u95ee ",(0,i.jsx)(n.code,{children:"yoga/style/Style.h"})," \u5934\u6587\u4ef6\uff0c\u4f46\u5f53\u524d\u5e94\u7528\u65e0\u6cd5\u8bbf\u95ee\u3002\u4e3a\u6b64\uff0c\u5c06 ",(0,i.jsx)(n.code,{children:"$(PODS_ROOT)/Headers/Private/Yoga"})," \u8def\u5f84\u6dfb\u52a0\u5230\u5e94\u7528\u7684\u5934\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u6784\u5efa\u8bbe\u7f6e\u4e2d\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:["Codegen \u5728 ",(0,i.jsx)(n.code,{children:"RCTThirdPartyFabricComponentsProvider"})," \u4e2d\u751f\u6210\u4e86\u4e00\u884c\u4e0d\u9700\u8981\u751f\u6210\u7684\u4ee3\u7801\u3002\u5220\u9664 ",(0,i.jsx)(n.code,{children:"RCTThirdPartyFabricComponentsProvider.h"})," \u548c ",(0,i.jsx)(n.code,{children:"RCTThirdPartyFabricComponentsProvider.mm"})," \u6587\u4ef6\u4e2d\u5e26\u6709 ",(0,i.jsx)(n.code,{children:"WebViewCls"})," \u7b26\u53f7\u7684\u884c\u3002"]}),"\n"]}),(0,i.jsx)(n.p,{children:"\u6211\u4eec\u5df2\u7ecf\u4fee\u590d\u4e86\u8fd9\u4e9b\u95ee\u9898\uff0c\u5b83\u4eec\u5c06\u5728 React Native 0.76.1 \u4e2d\u53d1\u5e03\u3002"})]})]})}function p(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},80773:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>g,contentTitle:()=>h,default:()=>x,frontMatter:()=>u,metadata:()=>m,toc:()=>b});var i=t(62540),a=t(43023),r=t(44067),o=t(49646),c=t(64034),s=t(31828),d=t(78154);function l(){return(0,i.jsx)(s.default,{})}function p(){return(0,i.jsx)(d.default,{})}const u={id:"fabric-native-components-introduction",title:"Fabric Native Components Introduction"},h="\u539f\u751f\u7ec4\u4ef6",m={id:"fabric-native-components-introduction",title:"Fabric Native Components Introduction",description:"\u5982\u679c\u4f60\u60f3\u6784\u5efa\u4e00\u4e2a \u65b0\u67b6\u6784 \u7684 React Native \u7ec4\u4ef6\uff0c\u8be5\u7ec4\u4ef6\u53ef\u4ee5\u5305\u88c5\u4e00\u4e2a Host Component\uff0c\u4f8b\u5982 Android \u4e0a\u7684 CheckBox\uff0c\u6216\u8005 iOS \u4e0a\u7684 UIButton\uff0c\u4f60\u5e94\u8be5\u4f7f\u7528 Fabric \u539f\u751f\u7ec4\u4ef6\u3002",source:"@site/../cndocs/fabric-native-components.md",sourceDirName:".",slug:"/fabric-native-components-introduction",permalink:"/docs/next/fabric-native-components-introduction",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/fabric-native-components.md",tags:[],version:"current",frontMatter:{id:"fabric-native-components-introduction",title:"Fabric Native Components Introduction"},sidebar:"docs",previous:{title:"\u9ad8\u7ea7\uff1a\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b",permalink:"/docs/next/the-new-architecture/custom-cxx-types"},next:{title:"\u9644\u5f55",permalink:"/docs/next/appendix"}},g={},b=[{value:"\u521b\u5efa\u4e00\u4e2a WebView \u7ec4\u4ef6",id:"\u521b\u5efa\u4e00\u4e2a-webview-\u7ec4\u4ef6",level:2},{value:"1. \u5b9a\u4e49 Codegen \u89c4\u8303",id:"1-\u5b9a\u4e49-codegen-\u89c4\u8303",level:2},{value:"2. \u914d\u7f6e Codegen \u8fd0\u884c",id:"2-\u914d\u7f6e-codegen-\u8fd0\u884c",level:2},{value:"2. \u6784\u5efa\u539f\u751f\u4ee3\u7801",id:"2-\u6784\u5efa\u539f\u751f\u4ee3\u7801",level:2},{value:"3. \u4f7f\u7528\u4f60\u7684\u539f\u751f\u7ec4\u4ef6",id:"3-\u4f7f\u7528\u4f60\u7684\u539f\u751f\u7ec4\u4ef6",level:2},{value:"5. \u8fd0\u884c\u5e94\u7528\u4f7f\u7528 WebView \u7ec4\u4ef6",id:"5-\u8fd0\u884c\u5e94\u7528\u4f7f\u7528-webview-\u7ec4\u4ef6",level:2}];function v(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"\u539f\u751f\u7ec4\u4ef6",children:"\u539f\u751f\u7ec4\u4ef6"})}),"\n",(0,i.jsxs)(n.p,{children:["\u5982\u679c\u4f60\u60f3\u6784\u5efa\u4e00\u4e2a ",(0,i.jsx)(n.em,{children:"\u65b0\u67b6\u6784"})," \u7684 React Native \u7ec4\u4ef6\uff0c\u8be5\u7ec4\u4ef6\u53ef\u4ee5\u5305\u88c5\u4e00\u4e2a ",(0,i.jsx)(n.a,{href:"https://reactnative.dev/architecture/glossary#host-view-tree-and-host-view",children:"Host Component"}),"\uff0c\u4f8b\u5982 Android \u4e0a\u7684 ",(0,i.jsx)(n.a,{href:"https://developer.android.com/reference/androidx/appcompat/widget/AppCompatCheckBox",children:"CheckBox"}),"\uff0c\u6216\u8005 iOS \u4e0a\u7684 ",(0,i.jsx)(n.a,{href:"https://developer.apple.com/documentation/uikit/uibutton?language=objc",children:"UIButton"}),"\uff0c\u4f60\u5e94\u8be5\u4f7f\u7528 Fabric \u539f\u751f\u7ec4\u4ef6\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u672c\u6307\u5357\u5c06\u4ee5\u5b9e\u73b0\u4e00\u4e2a web \u89c6\u56fe\u7ec4\u4ef6\u4e3a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u6784\u5efa Fabric \u539f\u751f\u7ec4\u4ef6\u3002\u6b65\u9aa4\u5982\u4e0b\uff1a"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"\u4f7f\u7528 Flow \u6216 TypeScript \u5b9a\u4e49\u4e00\u4e2a JavaScript \u89c4\u8303\u3002"}),"\n",(0,i.jsx)(n.li,{children:"\u914d\u7f6e\u4f9d\u8d56\u7ba1\u7406\u7cfb\u7edf\u7684\u4ee3\u7801\u751f\u6210\u529f\u80fd\uff0c\u5e76\u81ea\u52a8\u94fe\u63a5\u3002"}),"\n",(0,i.jsx)(n.li,{children:"\u5b9e\u73b0\u539f\u751f\u4ee3\u7801\u3002"}),"\n",(0,i.jsx)(n.li,{children:"\u5728\u5e94\u7528\u4e2d\u4f7f\u7528\u8be5\u7ec4\u4ef6\u3002"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"\u4f60\u9700\u8981\u4e00\u4e2a\u666e\u901a\u7684\u6a21\u677f\u751f\u6210\u5e94\u7528\u6765\u4f7f\u7528\u8be5\u7ec4\u4ef6\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npx @react-native-community/cli@latest init Demo --install-pods false\n"})}),"\n",(0,i.jsx)(n.h2,{id:"\u521b\u5efa\u4e00\u4e2a-webview-\u7ec4\u4ef6",children:"\u521b\u5efa\u4e00\u4e2a WebView \u7ec4\u4ef6"}),"\n",(0,i.jsxs)(n.p,{children:["\u672c\u6307\u5357\u5c06\u5c55\u793a\u5982\u4f55\u521b\u5efa\u4e00\u4e2a Web View \u7ec4\u4ef6\u3002\u6211\u4eec\u5c06\u4f7f\u7528 Android \u7684 ",(0,i.jsx)(n.a,{href:"https://developer.android.com/reference/android/webkit/WebView",children:(0,i.jsx)(n.code,{children:"WebView"})})," \u7ec4\u4ef6\u548c iOS \u7684 ",(0,i.jsx)(n.a,{href:"https://developer.apple.com/documentation/webkit/wkwebview?language=objc",children:(0,i.jsx)(n.code,{children:"WKWebView"})})," \u7ec4\u4ef6\u6765\u521b\u5efa\u8be5\u7ec4\u4ef6\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u9996\u5148\uff0c\u521b\u5efa\u4e00\u4e2a\u6587\u4ef6\u5939\u7ed3\u6784\u6765\u5b58\u653e\u7ec4\u4ef6\u7684\u4ee3\u7801\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"mkdir -p Demo/{specs,android/app/src/main/java/com/webview}\n"})}),"\n",(0,i.jsx)(n.p,{children:"\u8fd9\u5c06\u521b\u5efa\u4ee5\u4e0b\u5e03\u5c40\uff0c\u4f60\u5c06\u5728\u5176\u4e2d\u5de5\u4f5c\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"Demo\n\u251c\u2500\u2500 android/app/src/main/java/com/webview\n\u2514\u2500\u2500 ios\n\u2514\u2500\u2500 spec\n"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"android/app/src/main/java/com/webview"})," \u6587\u4ef6\u5939\u662f\u5b58\u653e Android \u4ee3\u7801\u7684\u6587\u4ef6\u5939\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"ios"})," \u6587\u4ef6\u5939\u662f\u5b58\u653e iOS \u4ee3\u7801\u7684\u6587\u4ef6\u5939\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"spec"})," \u6587\u4ef6\u5939\u662f\u5b58\u653e Codegen \u89c4\u8303\u6587\u4ef6\u7684\u6587\u4ef6\u5939\u3002"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"1-\u5b9a\u4e49-codegen-\u89c4\u8303",children:"1. \u5b9a\u4e49 Codegen \u89c4\u8303"}),"\n",(0,i.jsxs)(n.p,{children:["\u4f60\u7684\u89c4\u8303\u5fc5\u987b\u4f7f\u7528 ",(0,i.jsx)(n.a,{href:"https://www.typescriptlang.org/",children:"TypeScript"})," \u6216 ",(0,i.jsx)(n.a,{href:"https://flow.org/",children:"Flow"})," \u5b9a\u4e49\uff08\u66f4\u591a\u8be6\u60c5\u8bf7\u53c2\u9605 ",(0,i.jsx)(n.a,{href:"the-new-architecture/what-is-codegen",children:"Codegen"})," \u6587\u6863\uff09\u3002\u8fd9\u662f\u7531 Codegen \u751f\u6210 C++\u3001Objective-C++ \u548c Java \u4ee3\u7801\uff0c\u4ee5\u8fde\u63a5\u4f60\u7684\u5e73\u53f0\u4ee3\u7801\u5230 React \u8fd0\u884c\u7684 JavaScript \u8fd0\u884c\u65f6\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u89c4\u8303\u6587\u4ef6\u5fc5\u987b\u547d\u540d\u4e3a ",(0,i.jsx)(n.code,{children:"NativeComponent.{ts|js}"})," \u624d\u80fd\u88ab Codegen \u8bc6\u522b\u3002",(0,i.jsx)(n.code,{children:"NativeComponent"})," \u540e\u7f00\u4e0d\u4ec5\u662f\u4e00\u4e2a\u7ea6\u5b9a\uff0c\u5b9e\u9645\u4e0a\u662f\u7531 Codegen \u7528\u4e8e\u68c0\u6d4b\u89c4\u8303\u6587\u4ef6\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u4f7f\u7528\u4ee5\u4e0b\u89c4\u8303\u6587\u4ef6\u6765\u521b\u5efa WebView \u7ec4\u4ef6\uff1a"}),"\n",(0,i.jsxs)(r.A,{groupId:"language",queryString:!0,defaultValue:c.A.defaultJavaScriptSpecLanguage,values:c.A.javaScriptSpecLanguages,children:[(0,i.jsx)(o.A,{value:"typescript",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:'title="Demo/specs/WebViewNativeComponent.ts"',children:"import type {HostComponent, ViewProps} from 'react-native';\nimport type {BubblingEventHandler} from 'react-native/Libraries/Types/CodegenTypes';\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\n\ntype WebViewScriptLoadedEvent = {\n result: 'success' | 'error';\n};\n\nexport interface NativeProps extends ViewProps {\n sourceURL?: string;\n onScriptLoaded?: BubblingEventHandler | null;\n}\n\nexport default codegenNativeComponent(\n 'CustomWebView',\n) as HostComponent;\n"})})}),(0,i.jsx)(o.A,{value:"flow",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",metastring:'title="Demo/RCTWebView/js/RCTWebViewNativeComponent.js":',children:"// @flow strict-local\n\nimport type {HostComponent, ViewProps} from 'react-native';\nimport type {BubblingEventHandler} from 'react-native/Libraries/Types/CodegenTypes';\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\n\ntype WebViewScriptLoadedEvent = $ReadOnly<{|\n result: \"success\" | \"error\",\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n sourceURL?: string;\n onScriptLoaded?: BubblingEventHandler?;\n|}>;\n\nexport default (codegenNativeComponent(\n 'CustomWebView',\n): HostComponent);\n\n"})})})]}),"\n",(0,i.jsx)(n.p,{children:"\u8be5\u89c4\u8303\u6587\u4ef6\u7531\u4e09\u90e8\u5206\u7ec4\u6210\uff0c\u4e0d\u5305\u62ec\u5bfc\u5165\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"WebViewScriptLoadedEvent"})," \u662f\u4e00\u4e2a\u652f\u6301\u7684\u6570\u636e\u7c7b\u578b\uff0c\u7528\u4e8e\u5c06\u6570\u636e\u4ece\u539f\u751f\u4ee3\u7801\u4f20\u9012\u5230 JavaScript\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"NativeProps"})," \u662f\u5b9a\u4e49\u53ef\u4ee5\u5728\u7ec4\u4ef6\u4e0a\u8bbe\u7f6e\u7684\u5c5e\u6027\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"codegenNativeComponent"})," \u8bed\u53e5\u5141\u8bb8\u6211\u4eec\u4e3a\u81ea\u5b9a\u4e49\u7ec4\u4ef6\u751f\u6210\u4ee3\u7801\uff0c\u5e76\u5b9a\u4e49\u7528\u4e8e\u5339\u914d\u539f\u751f\u5b9e\u73b0\u7684\u540d\u79f0\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["\u4e0e\u539f\u751f\u6a21\u5757\u4e00\u6837\uff0c\u4f60\u53ef\u4ee5\u5728 ",(0,i.jsx)(n.code,{children:"specs/"})," \u76ee\u5f55\u4e2d\u62e5\u6709\u591a\u4e2a\u89c4\u8303\u6587\u4ef6\u3002\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u9605 ",(0,i.jsx)(n.a,{href:"/docs/next/appendix#codegen-typings",children:"\u9644\u5f55"}),"\u3002"]}),"\n",(0,i.jsx)(n.h2,{id:"2-\u914d\u7f6e-codegen-\u8fd0\u884c",children:"2. \u914d\u7f6e Codegen \u8fd0\u884c"}),"\n",(0,i.jsxs)(n.p,{children:["\u8be5\u89c4\u8303\u6587\u4ef6\u7528\u4e8e React Native \u7684 Codegen \u5de5\u5177\u751f\u6210\u5e73\u53f0\u7279\u5b9a\u7684\u63a5\u53e3\u548c\u6837\u677f\u4ee3\u7801\u3002\u4e3a\u6b64\uff0cCodegen \u9700\u8981\u77e5\u9053\u5728\u54ea\u91cc\u627e\u5230\u6211\u4eec\u7684\u89c4\u8303\u6587\u4ef6\u4ee5\u53ca\u5982\u4f55\u5904\u7406\u5b83\u3002\u66f4\u65b0\u4f60\u7684 ",(0,i.jsx)(n.code,{children:"package.json"})," \u6587\u4ef6\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",metastring:"package.json",children:' "start": "react-native start",\n "test": "jest"\n },\n // highlight-start\n "codegenConfig": {\n "name": "AppSpec",\n "type": "components",\n "jsSrcsDir": "specs",\n "android": {\n "javaPackageName": "com.webview"\n }\n },\n // highlight-end\n "dependencies": {\n'})}),"\n",(0,i.jsx)(n.p,{children:"\u914d\u7f6e\u597d Codegen \u540e\uff0c\u6211\u4eec\u9700\u8981\u51c6\u5907\u539f\u751f\u4ee3\u7801\u4ee5\u8fde\u63a5\u5230\u751f\u6210\u7684\u4ee3\u7801\u3002"}),"\n",(0,i.jsx)(n.h2,{id:"2-\u6784\u5efa\u539f\u751f\u4ee3\u7801",children:"2. \u6784\u5efa\u539f\u751f\u4ee3\u7801"}),"\n",(0,i.jsx)(n.p,{children:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u539f\u751f\u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u5f53 React \u9700\u8981\u6e32\u67d3\u89c6\u56fe\u65f6\uff0c\u5e73\u53f0\u53ef\u4ee5\u521b\u5efa\u6b63\u786e\u7684\u539f\u751f\u89c6\u56fe\u5e76\u5728\u5c4f\u5e55\u4e0a\u6e32\u67d3\u5b83\u3002"}),"\n",(0,i.jsx)(n.p,{children:"\u4f60\u5e94\u8be5\u5206\u522b\u5728 Android \u548c iOS \u5e73\u53f0\u4e0a\u5de5\u4f5c\u3002"}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["\u672c\u6307\u5357\u5c55\u793a\u4e86\u5982\u4f55\u521b\u5efa\u4e00\u4e2a\u4ec5\u9002\u7528\u4e8e\u65b0\u67b6\u6784\u7684\u539f\u751f\u7ec4\u4ef6\u3002\u5982\u679c\u4f60\u9700\u8981\u540c\u65f6\u652f\u6301\u65b0\u67b6\u6784\u548c\u65e7\u67b6\u6784\uff0c\u8bf7\u53c2\u9605\u6211\u4eec\u7684",(0,i.jsx)(n.a,{href:"https://github.com/reactwg/react-native-new-architecture/blob/main/docs/backwards-compat.md",children:"\u5411\u540e\u517c\u5bb9\u6307\u5357"}),"\u3002"]})}),"\n",(0,i.jsxs)(r.A,{groupId:"platforms",queryString:!0,defaultValue:c.A.defaultPlatform,children:[(0,i.jsx)(o.A,{value:"android",label:"Android",children:(0,i.jsx)(p,{})}),(0,i.jsx)(o.A,{value:"ios",label:"iOS",children:(0,i.jsx)(l,{})})]}),"\n",(0,i.jsx)(n.h2,{id:"3-\u4f7f\u7528\u4f60\u7684\u539f\u751f\u7ec4\u4ef6",children:"3. \u4f7f\u7528\u4f60\u7684\u539f\u751f\u7ec4\u4ef6"}),"\n",(0,i.jsxs)(n.p,{children:["\u6700\u540e\uff0c\u4f60\u53ef\u4ee5\u5728\u5e94\u7528\u4e2d\u4f7f\u7528\u8be5\u7ec4\u4ef6\u3002\u66f4\u65b0\u4f60\u7684\u751f\u6210 ",(0,i.jsx)(n.code,{children:"App.tsx"})," \u6587\u4ef6\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-javascript",metastring:'title="Demo/App.tsx"',children:"import React from 'react';\nimport {Alert, StyleSheet, View} from 'react-native';\nimport WebView from './specs/WebViewNativeComponent';\n\nfunction App(): React.JSX.Element {\n return (\n \n {\n Alert.alert('Page Loaded');\n }}\n />\n \n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'center',\n alignContent: 'center',\n },\n webview: {\n width: '100%',\n height: '100%',\n },\n});\n\nexport default App;\n"})}),"\n",(0,i.jsxs)(n.p,{children:["\u8be5\u4ee3\u7801\u521b\u5efa\u4e86\u4e00\u4e2a\u4f7f\u7528\u6211\u4eec\u521b\u5efa\u7684 ",(0,i.jsx)(n.code,{children:"WebView"})," \u7ec4\u4ef6\u6765\u52a0\u8f7d ",(0,i.jsx)(n.code,{children:"react.dev"})," \u7f51\u7ad9\u7684\u5e94\u7528\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u8be5\u5e94\u7528\u8fd8\u663e\u793a\u4e86\u4e00\u4e2a\u5f53\u7f51\u9875\u52a0\u8f7d\u5b8c\u6210\u65f6\u5f39\u51fa\u7684\u8b66\u544a\u3002"}),"\n",(0,i.jsx)(n.h2,{id:"5-\u8fd0\u884c\u5e94\u7528\u4f7f\u7528-webview-\u7ec4\u4ef6",children:"5. \u8fd0\u884c\u5e94\u7528\u4f7f\u7528 WebView \u7ec4\u4ef6"}),"\n",(0,i.jsxs)(r.A,{groupId:"platforms",queryString:!0,defaultValue:c.A.defaultPlatform,children:[(0,i.jsx)(o.A,{value:"android",label:"Android",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn run android\n"})})}),(0,i.jsx)(o.A,{value:"ios",label:"iOS",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn run ios\n"})})})]}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"Android"}),(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"iOS"})]})}),(0,i.jsx)(n.tbody,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:(0,i.jsx)("img",{style:{"max-height":"600px"},src:"/docs/assets/webview-android.webp"})}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:(0,i.jsx)("img",{style:{"max-height":"600px"},src:"/docs/assets/webview-ios.webp"})})]})})]})]})}function x(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(v,{...e})}):v(e)}},64034:(e,n,t)=>{t.d(n,{A:()=>o});var i=t(1448);const a=!!i.A.canUseDOM&&navigator.platform.startsWith("Mac"),r=!!i.A.canUseDOM&&navigator.platform.startsWith("Win"),o={defaultGuide:"native",defaultJsDebugger:"flipper",defaultOs:a?"macos":r?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:a?"ios":"android",defaultSyntax:"functional",defaultAndroidLanguage:"java",defaultAppleLanguage:"objc",defaultJavaScriptSpecLanguages:"typescript",getDevNotesTabs:(e=["android","ios","web","windows"])=>[e.includes("android")?{label:"Android",value:"android"}:void 0,e.includes("ios")?{label:"iOS",value:"ios"}:void 0,e.includes("web")?{label:"Web",value:"web"}:void 0,e.includes("windows")?{label:"Windows",value:"windows"}:void 0].filter(Boolean),guides:[{label:"\u5b8c\u6574\u539f\u751f\u73af\u5883",value:"native"},{label:"\u7b80\u6613\u6c99\u76d2\u73af\u5883",value:"quickstart"}],oses:[{label:"macOS",value:"macos"},{label:"Windows",value:"windows"},{label:"Linux",value:"linux"}],packageManagers:[{label:"npm",value:"npm"},{label:"Yarn",value:"yarn"}],platforms:[{label:"Android",value:"android"},{label:"iOS",value:"ios"}],syntax:[{label:"\u51fd\u6570\u5f0f\u7ec4\u4ef6",value:"functional"},{label:"Class \u7ec4\u4ef6",value:"classical"}],androidLanguages:[{label:"Java",value:"java"},{label:"Kotlin",value:"kotlin"}],appleLanguages:[{label:"ObjectiveC",value:"objc"},{label:"Swift",value:"swift"}],javaScriptSpecLanguages:[{label:"TypeScript",value:"typescript"},{label:"Flow",value:"flow"}],jsDebuggers:[{label:"Hermes Debugger / Expo",value:"hermes"},{label:"Flipper",value:"flipper"},{label:"New Debugger (Experimental)",value:"new-debugger"}],snackLanguages:[{label:"TypeScript",value:"typescript"},{label:"JavaScript",value:"javascript"}],defaultSnackLanguage:"typescript"}},49646:(e,n,t)=>{t.d(n,{A:()=>o});var i=t(62540),a=t(11750);const r={tabItem:"tabItem_wHwb"};function o({children:e,hidden:n,className:t}){return(0,i.jsx)("div",{role:"tabpanel",className:(0,a.A)(r.tabItem,t),hidden:n,children:e})}},44067:(e,n,t)=>{t.d(n,{A:()=>C});var i=t(62540),a=t(63696),r=t(11750),o=t(3101),c=t(49519),s=t(21750),d=t(87718),l=t(38807),p=t(17819);function u(e){return a.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??function(e){return u(e).map((({props:{value:e,label:n,attributes:t,default:i}})=>({value:e,label:n,attributes:t,default:i})))}(t);return function(e){const n=(0,l.XI)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function m({value:e,tabValues:n}){return n.some((n=>n.value===e))}function g({queryString:e=!1,groupId:n}){const t=(0,c.W6)(),i=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,d.aZ)(i),(0,a.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(t.location.search);n.set(i,e),t.replace({...t.location,search:n.toString()})}),[i,t])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:i}=e,r=h(e),[o,c]=(0,a.useState)((()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!m({value:e,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const t=n.find((e=>e.default))??n[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:r}))),[d,l]=g({queryString:t,groupId:i}),[u,b]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[t,i]=(0,p.Dv)(n);return[t,(0,a.useCallback)((e=>{n&&i.set(e)}),[n,i])]}({groupId:i}),v=(()=>{const e=d??u;return m({value:e,tabValues:r})?e:null})();(0,s.A)((()=>{v&&c(v)}),[v]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);c(e),l(e),b(e)}),[l,b,r]),tabValues:r}}var v=t(64062);const x={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};function w({className:e,block:n,selectedValue:t,selectValue:a,tabValues:c}){const s=[],{blockElementScrollPositionUntilNextRender:d}=(0,o.a_)(),l=e=>{const n=e.currentTarget,i=s.indexOf(n),r=c[i].value;r!==t&&(d(n),a(r))},p=e=>{let n=null;switch(e.key){case"Enter":l(e);break;case"ArrowRight":{const t=s.indexOf(e.currentTarget)+1;n=s[t]??s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;n=s[t]??s[s.length-1];break}}n?.focus()};return(0,i.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":n},e),children:c.map((({value:e,label:n,attributes:a})=>(0,i.jsx)("li",{role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>s.push(e),onKeyDown:p,onClick:l,...a,className:(0,r.A)("tabs__item",x.tabItem,a?.className,{"tabs__item--active":t===e}),children:n??e},e)))})}function j({lazy:e,children:n,selectedValue:t}){const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=o.find((e=>e.props.value===t));return e?(0,a.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,i.jsx)("div",{className:"margin-top--md",children:o.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==t})))})}function f(e){const n=b(e);return(0,i.jsxs)("div",{className:(0,r.A)("tabs-container",x.tabList),children:[(0,i.jsx)(w,{...n,...e}),(0,i.jsx)(j,{...n,...e})]})}function C(e){const n=(0,v.A)();return(0,i.jsx)(f,{...e,children:u(e.children)},String(n))}},43023:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>c});var i=t(63696);const a={},r=i.createContext(a);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2003fdf9.f4c79075.js b/assets/js/2003fdf9.7fd800a9.js similarity index 99% rename from assets/js/2003fdf9.f4c79075.js rename to assets/js/2003fdf9.7fd800a9.js index cac0e08dda5..d6c8004c3fe 100644 --- a/assets/js/2003fdf9.f4c79075.js +++ b/assets/js/2003fdf9.7fd800a9.js @@ -820,7 +820,7 @@ const metadata = { "permalink": "/docs/next/the-new-architecture/custom-cxx-types" }, "next": { - "title": "appendix", + "title": "附录", "permalink": "/docs/next/appendix" } }; diff --git a/assets/js/230c8311.89d0cb12.js b/assets/js/230c8311.89d0cb12.js new file mode 100644 index 00000000000..22b1ad85677 --- /dev/null +++ b/assets/js/230c8311.89d0cb12.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[94952],{74690:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var n=t(62540),r=t(43023);t(44067),t(49646),t(64034);const l={id:"debugging-native-code",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"},i=void 0,o={id:"debugging-native-code",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",description:"\u4ec5\u9650\u5305\u542b\u539f\u751f\u4ee3\u7801\u7684\u9879\u76ee",source:"@site/../cndocs/debugging-native-code.md",sourceDirName:".",slug:"/debugging-native-code",permalink:"/docs/next/debugging-native-code",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/debugging-native-code.md",tags:[],version:"current",frontMatter:{id:"debugging-native-code",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"},sidebar:"docs",previous:{title:"React Native \u5f00\u53d1\u8005\u5de5\u5177",permalink:"/docs/next/react-native-devtools"},next:{title:"\u8c03\u8bd5\u53d1\u884c\u7248\u672c",permalink:"/docs/next/debugging-release-builds"}},s={},u=[{value:"\u6253\u5370\u65e5\u5fd7",id:"\u6253\u5370\u65e5\u5fd7",level:2},{value:"\u5728\u539f\u751f IDE \u4e2d\u8c03\u8bd5",id:"\u5728\u539f\u751f-ide-\u4e2d\u8c03\u8bd5",level:2},{value:"Android Studio",id:"android-studio",level:3},{value:"Xcode",id:"xcode",level:3}];function c(e){const a={code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"banner-native-code-required",children:[(0,n.jsx)("h3",{children:"\u4ec5\u9650\u5305\u542b\u539f\u751f\u4ee3\u7801\u7684\u9879\u76ee"}),(0,n.jsxs)("p",{children:["\u4ee5\u4e0b\u90e8\u5206\u4ec5\u9002\u7528\u4e8e\u5305\u542b\u539f\u751f\u4ee3\u7801\u7684\u9879\u76ee\u3002\u5982\u679c\u4f60\u4f7f\u7528\u7684\u662f\u6258\u7ba1\u578b Expo \u5de5\u4f5c\u6d41\uff0c\u8bf7\u53c2\u9605 ",(0,n.jsx)("a",{href:"https://docs.expo.dev/workflow/prebuild/",target:"_blank",children:"prebuild"})," \u6307\u5357\u4ee5\u4f7f\u7528\u6b64 API\u3002"]})]}),"\n",(0,n.jsx)(a.h2,{id:"\u6253\u5370\u65e5\u5fd7",children:"\u6253\u5370\u65e5\u5fd7"}),"\n",(0,n.jsx)(a.p,{children:"\u5f53\u5e94\u7528\u6b63\u5728\u8fd0\u884c\u65f6\uff0c\u4f60\u53ef\u4ee5\u5728\u7ec8\u7aef\u4e2d\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6253\u5370 iOS \u6216 Android \u5e94\u7528\u7684\u65e5\u5fd7\uff1a"}),"\n",(0,n.jsx)(a.pre,{children:(0,n.jsx)(a.code,{className:"language-shell",children:"# For Android:\nnpx react-native log-android\n# Or, for iOS:\nnpx react-native log-ios\n"})}),"\n",(0,n.jsxs)(a.p,{children:['\u4f60\u4e5f\u53ef\u4ee5\u901a\u8fc7 iOS \u6a21\u62df\u5668\u4e2d\u7684 "Debug > Open System Log..." \u83dc\u5355\uff0c\u6216\u8005\u5728\u8fd0\u884c Android \u5e94\u7528\u7684\u8bbe\u5907\u6216\u6a21\u62df\u5668\u4e2d\u8fd0\u884c ',(0,n.jsx)(a.code,{children:'adb logcat "*:S" ReactNative:V ReactNativeJS:V'})," \u6765\u8bbf\u95ee\u8fd9\u4e9b\u65e5\u5fd7\u3002"]}),"\n",(0,n.jsx)(a.h2,{id:"\u5728\u539f\u751f-ide-\u4e2d\u8c03\u8bd5",children:"\u5728\u539f\u751f IDE \u4e2d\u8c03\u8bd5"}),"\n",(0,n.jsx)(a.p,{children:"\u5f53\u4f60\u7f16\u5199\u539f\u751f\u6a21\u5757\u65f6\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528 Android Studio \u6216 Xcode \u6765\u542f\u52a8\u5e94\u7528\uff0c\u5e76\u4f7f\u7528\u5176\u539f\u751f\u8c03\u8bd5\u529f\u80fd\uff08\u8bbe\u7f6e\u65ad\u70b9\u7b49\uff09\uff0c\u5c31\u50cf\u5728\u6784\u5efa\u6807\u51c6\u539f\u751f\u5e94\u7528\u65f6\u4e00\u6837\u3002"}),"\n",(0,n.jsx)(a.p,{children:"\u53e6\u4e00\u79cd\u9009\u62e9\u662f\u4f7f\u7528 React Native CLI \u8fd0\u884c\u5e94\u7528\uff0c\u5e76\u4ece\u539f\u751f IDE\uff08Android Studio \u6216 Xcode\uff09\u4e2d\u9644\u52a0\u5230\u8fdb\u7a0b\u3002"}),"\n",(0,n.jsx)(a.h3,{id:"android-studio",children:"Android Studio"}),"\n",(0,n.jsx)(a.p,{children:'\u5728 Android Studio \u4e2d\uff0c\u4f60\u53ef\u4ee5\u901a\u8fc7\u70b9\u51fb\u83dc\u5355\u680f\u4e2d\u7684 "Run" \u9009\u9879\uff0c\u7136\u540e\u9009\u62e9 "Attach to Process..."\uff0c\u5e76\u9009\u62e9\u6b63\u5728\u8fd0\u884c\u7684 React Native \u5e94\u7528\u3002'}),"\n",(0,n.jsx)(a.h3,{id:"xcode",children:"Xcode"}),"\n",(0,n.jsx)(a.p,{children:'\u5728 Xcode \u4e2d\uff0c\u70b9\u51fb\u83dc\u5355\u680f\u4e2d\u7684 "Debug"\uff0c\u9009\u62e9 "Attach to Process..."\uff0c\u7136\u540e\u4ece "Likely Targets" \u5217\u8868\u4e2d\u9009\u62e9\u6b63\u5728\u8fd0\u884c\u7684\u5e94\u7528\u3002'})]})}function d(e={}){const{wrapper:a}={...(0,r.R)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},64034:(e,a,t)=>{t.d(a,{A:()=>i});var n=t(1448);const r=!!n.A.canUseDOM&&navigator.platform.startsWith("Mac"),l=!!n.A.canUseDOM&&navigator.platform.startsWith("Win"),i={defaultGuide:"native",defaultJsDebugger:"flipper",defaultOs:r?"macos":l?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:r?"ios":"android",defaultSyntax:"functional",defaultAndroidLanguage:"java",defaultAppleLanguage:"objc",defaultJavaScriptSpecLanguages:"typescript",getDevNotesTabs:(e=["android","ios","web","windows"])=>[e.includes("android")?{label:"Android",value:"android"}:void 0,e.includes("ios")?{label:"iOS",value:"ios"}:void 0,e.includes("web")?{label:"Web",value:"web"}:void 0,e.includes("windows")?{label:"Windows",value:"windows"}:void 0].filter(Boolean),guides:[{label:"\u5b8c\u6574\u539f\u751f\u73af\u5883",value:"native"},{label:"\u7b80\u6613\u6c99\u76d2\u73af\u5883",value:"quickstart"}],oses:[{label:"macOS",value:"macos"},{label:"Windows",value:"windows"},{label:"Linux",value:"linux"}],packageManagers:[{label:"npm",value:"npm"},{label:"Yarn",value:"yarn"}],platforms:[{label:"Android",value:"android"},{label:"iOS",value:"ios"}],syntax:[{label:"\u51fd\u6570\u5f0f\u7ec4\u4ef6",value:"functional"},{label:"Class \u7ec4\u4ef6",value:"classical"}],androidLanguages:[{label:"Java",value:"java"},{label:"Kotlin",value:"kotlin"}],appleLanguages:[{label:"ObjectiveC",value:"objc"},{label:"Swift",value:"swift"}],javaScriptSpecLanguages:[{label:"TypeScript",value:"typescript"},{label:"Flow",value:"flow"}],jsDebuggers:[{label:"Hermes Debugger / Expo",value:"hermes"},{label:"Flipper",value:"flipper"},{label:"New Debugger (Experimental)",value:"new-debugger"}],snackLanguages:[{label:"TypeScript",value:"typescript"},{label:"JavaScript",value:"javascript"}],defaultSnackLanguage:"typescript"}},49646:(e,a,t)=>{t.d(a,{A:()=>i});var n=t(62540),r=t(11750);const l={tabItem:"tabItem_wHwb"};function i({children:e,hidden:a,className:t}){return(0,n.jsx)("div",{role:"tabpanel",className:(0,r.A)(l.tabItem,t),hidden:a,children:e})}},44067:(e,a,t)=>{t.d(a,{A:()=>y});var n=t(62540),r=t(63696),l=t(11750),i=t(3101),o=t(49519),s=t(21750),u=t(87718),c=t(38807),d=t(17819);function b(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:a}=e;return!!a&&"object"==typeof a&&"value"in a}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:a,children:t}=e;return(0,r.useMemo)((()=>{const e=a??function(e){return b(e).map((({props:{value:e,label:a,attributes:t,default:n}})=>({value:e,label:a,attributes:t,default:n})))}(t);return function(e){const a=(0,c.XI)(e,((e,a)=>e.value===a.value));if(a.length>0)throw new Error(`Docusaurus error: Duplicate values "${a.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[a,t])}function v({value:e,tabValues:a}){return a.some((a=>a.value===e))}function g({queryString:e=!1,groupId:a}){const t=(0,o.W6)(),n=function({queryString:e=!1,groupId:a}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:e,groupId:a});return[(0,u.aZ)(n),(0,r.useCallback)((e=>{if(!n)return;const a=new URLSearchParams(t.location.search);a.set(n,e),t.replace({...t.location,search:a.toString()})}),[n,t])]}function f(e){const{defaultValue:a,queryString:t=!1,groupId:n}=e,l=p(e),[i,o]=(0,r.useState)((()=>function({defaultValue:e,tabValues:a}){if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!v({value:e,tabValues:a}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const t=a.find((e=>e.default))??a[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:a,tabValues:l}))),[u,c]=g({queryString:t,groupId:n}),[b,f]=function({groupId:e}){const a=function(e){return e?`docusaurus.tab.${e}`:null}(e),[t,n]=(0,d.Dv)(a);return[t,(0,r.useCallback)((e=>{a&&n.set(e)}),[a,n])]}({groupId:n}),h=(()=>{const e=u??b;return v({value:e,tabValues:l})?e:null})();(0,s.A)((()=>{h&&o(h)}),[h]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!v({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),c(e),f(e)}),[c,f,l]),tabValues:l}}var h=t(64062);const m={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};function x({className:e,block:a,selectedValue:t,selectValue:r,tabValues:o}){const s=[],{blockElementScrollPositionUntilNextRender:u}=(0,i.a_)(),c=e=>{const a=e.currentTarget,n=s.indexOf(a),l=o[n].value;l!==t&&(u(a),r(l))},d=e=>{let a=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=s.indexOf(e.currentTarget)+1;a=s[t]??s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;a=s[t]??s[s.length-1];break}}a?.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":a},e),children:o.map((({value:e,label:a,attributes:r})=>(0,n.jsx)("li",{role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>s.push(e),onKeyDown:d,onClick:c,...r,className:(0,l.A)("tabs__item",m.tabItem,r?.className,{"tabs__item--active":t===e}),children:a??e},e)))})}function w({lazy:e,children:a,selectedValue:t}){const i=(Array.isArray(a)?a:[a]).filter(Boolean);if(e){const e=i.find((e=>e.props.value===t));return e?(0,r.cloneElement)(e,{className:(0,l.A)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:i.map(((e,a)=>(0,r.cloneElement)(e,{key:a,hidden:e.props.value!==t})))})}function j(e){const a=f(e);return(0,n.jsxs)("div",{className:(0,l.A)("tabs-container",m.tabList),children:[(0,n.jsx)(x,{...a,...e}),(0,n.jsx)(w,{...a,...e})]})}function y(e){const a=(0,h.A)();return(0,n.jsx)(j,{...e,children:b(e.children)},String(a))}},43023:(e,a,t)=>{t.d(a,{R:()=>i,x:()=>o});var n=t(63696);const r={},l=n.createContext(r);function i(e){const a=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function o(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),n.createElement(l.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/230c8311.99e92a6e.js b/assets/js/230c8311.99e92a6e.js deleted file mode 100644 index 060e38f8c9c..00000000000 --- a/assets/js/230c8311.99e92a6e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[94952],{74690:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var t=n(62540),i=n(43023);n(44067),n(49646),n(64034);const r={id:"debugging-native-code",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"},l=void 0,o={id:"debugging-native-code",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",description:"Projects with Native Code Only",source:"@site/../cndocs/debugging-native-code.md",sourceDirName:".",slug:"/debugging-native-code",permalink:"/docs/next/debugging-native-code",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/debugging-native-code.md",tags:[],version:"current",frontMatter:{id:"debugging-native-code",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"},sidebar:"docs",previous:{title:"React Native \u5f00\u53d1\u8005\u5de5\u5177",permalink:"/docs/next/react-native-devtools"},next:{title:"\u8c03\u8bd5\u53d1\u884c\u7248\u672c",permalink:"/docs/next/debugging-release-builds"}},s={},u=[{value:"Accessing Logs",id:"accessing-logs",level:2},{value:"Debugging in a Native IDE",id:"debugging-in-a-native-ide",level:2},{value:"Android Studio",id:"android-studio",level:3},{value:"Xcode",id:"xcode",level:3}];function c(e){const a={code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"banner-native-code-required",children:[(0,t.jsx)("h3",{children:"Projects with Native Code Only"}),(0,t.jsxs)("p",{children:["The following section only applies to projects with native code exposed. If you are using the managed Expo workflow, see the guide on ",(0,t.jsx)("a",{href:"https://docs.expo.dev/workflow/prebuild/",target:"_blank",children:"prebuild"})," to use this API."]})]}),"\n",(0,t.jsx)(a.h2,{id:"accessing-logs",children:"Accessing Logs"}),"\n",(0,t.jsx)(a.p,{children:"You can display the native logs for an iOS or Android app by using the following commands in a terminal while the app is running:"}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-shell",children:"# For Android:\nnpx react-native log-android\n# Or, for iOS:\nnpx react-native log-ios\n"})}),"\n",(0,t.jsxs)(a.p,{children:["You may also access these through Debug > Open System Log\u2026 in the iOS Simulator or by running ",(0,t.jsx)(a.code,{children:'adb logcat "*:S" ReactNative:V ReactNativeJS:V'})," in a terminal while an Android app is running on a device or emulator."]}),"\n",(0,t.jsx)(a.h2,{id:"debugging-in-a-native-ide",children:"Debugging in a Native IDE"}),"\n",(0,t.jsx)(a.p,{children:"When working with native code, such as when writing native modules, you can launch the app from Android Studio or Xcode and take advantage of the native debugging features (setting up breakpoints, etc.) as you would in case of building a standard native app."}),"\n",(0,t.jsx)(a.p,{children:"Another option is to run your application using the React Native CLI and attach the native debugger of the native IDE (Android Studio or Xcode) to the process."}),"\n",(0,t.jsx)(a.h3,{id:"android-studio",children:"Android Studio"}),"\n",(0,t.jsx)(a.p,{children:'On Android Studio you can do this by going on the "Run" option on the menu bar, clicking on "Attach to Process..." and selecting the running React Native app.'}),"\n",(0,t.jsx)(a.h3,{id:"xcode",children:"Xcode"}),"\n",(0,t.jsx)(a.p,{children:'On Xcode click on "Debug" on the top menu bar, select the "Attach to process" option, and select the application in the list of "Likely Targets".'})]})}function d(e={}){const{wrapper:a}={...(0,i.R)(),...e.components};return a?(0,t.jsx)(a,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},64034:(e,a,n)=>{n.d(a,{A:()=>l});var t=n(1448);const i=!!t.A.canUseDOM&&navigator.platform.startsWith("Mac"),r=!!t.A.canUseDOM&&navigator.platform.startsWith("Win"),l={defaultGuide:"native",defaultJsDebugger:"flipper",defaultOs:i?"macos":r?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:i?"ios":"android",defaultSyntax:"functional",defaultAndroidLanguage:"java",defaultAppleLanguage:"objc",defaultJavaScriptSpecLanguages:"typescript",getDevNotesTabs:(e=["android","ios","web","windows"])=>[e.includes("android")?{label:"Android",value:"android"}:void 0,e.includes("ios")?{label:"iOS",value:"ios"}:void 0,e.includes("web")?{label:"Web",value:"web"}:void 0,e.includes("windows")?{label:"Windows",value:"windows"}:void 0].filter(Boolean),guides:[{label:"\u5b8c\u6574\u539f\u751f\u73af\u5883",value:"native"},{label:"\u7b80\u6613\u6c99\u76d2\u73af\u5883",value:"quickstart"}],oses:[{label:"macOS",value:"macos"},{label:"Windows",value:"windows"},{label:"Linux",value:"linux"}],packageManagers:[{label:"npm",value:"npm"},{label:"Yarn",value:"yarn"}],platforms:[{label:"Android",value:"android"},{label:"iOS",value:"ios"}],syntax:[{label:"\u51fd\u6570\u5f0f\u7ec4\u4ef6",value:"functional"},{label:"Class \u7ec4\u4ef6",value:"classical"}],androidLanguages:[{label:"Java",value:"java"},{label:"Kotlin",value:"kotlin"}],appleLanguages:[{label:"ObjectiveC",value:"objc"},{label:"Swift",value:"swift"}],javaScriptSpecLanguages:[{label:"TypeScript",value:"typescript"},{label:"Flow",value:"flow"}],jsDebuggers:[{label:"Hermes Debugger / Expo",value:"hermes"},{label:"Flipper",value:"flipper"},{label:"New Debugger (Experimental)",value:"new-debugger"}],snackLanguages:[{label:"TypeScript",value:"typescript"},{label:"JavaScript",value:"javascript"}],defaultSnackLanguage:"typescript"}},49646:(e,a,n)=>{n.d(a,{A:()=>l});var t=n(62540),i=n(11750);const r={tabItem:"tabItem_wHwb"};function l({children:e,hidden:a,className:n}){return(0,t.jsx)("div",{role:"tabpanel",className:(0,i.A)(r.tabItem,n),hidden:a,children:e})}},44067:(e,a,n)=>{n.d(a,{A:()=>j});var t=n(62540),i=n(63696),r=n(11750),l=n(3101),o=n(49519),s=n(21750),u=n(87718),c=n(38807),d=n(17819);function p(e){return i.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,i.isValidElement)(e)&&function(e){const{props:a}=e;return!!a&&"object"==typeof a&&"value"in a}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function g(e){const{values:a,children:n}=e;return(0,i.useMemo)((()=>{const e=a??function(e){return p(e).map((({props:{value:e,label:a,attributes:n,default:t}})=>({value:e,label:a,attributes:n,default:t})))}(n);return function(e){const a=(0,c.XI)(e,((e,a)=>e.value===a.value));if(a.length>0)throw new Error(`Docusaurus error: Duplicate values "${a.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[a,n])}function b({value:e,tabValues:a}){return a.some((a=>a.value===e))}function v({queryString:e=!1,groupId:a}){const n=(0,o.W6)(),t=function({queryString:e=!1,groupId:a}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:e,groupId:a});return[(0,u.aZ)(t),(0,i.useCallback)((e=>{if(!t)return;const a=new URLSearchParams(n.location.search);a.set(t,e),n.replace({...n.location,search:a.toString()})}),[t,n])]}function h(e){const{defaultValue:a,queryString:n=!1,groupId:t}=e,r=g(e),[l,o]=(0,i.useState)((()=>function({defaultValue:e,tabValues:a}){if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!b({value:e,tabValues:a}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const n=a.find((e=>e.default))??a[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:a,tabValues:r}))),[u,c]=v({queryString:n,groupId:t}),[p,h]=function({groupId:e}){const a=function(e){return e?`docusaurus.tab.${e}`:null}(e),[n,t]=(0,d.Dv)(a);return[n,(0,i.useCallback)((e=>{a&&t.set(e)}),[a,t])]}({groupId:t}),f=(()=>{const e=u??p;return b({value:e,tabValues:r})?e:null})();(0,s.A)((()=>{f&&o(f)}),[f]);return{selectedValue:l,selectValue:(0,i.useCallback)((e=>{if(!b({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);o(e),c(e),h(e)}),[c,h,r]),tabValues:r}}var f=n(64062);const m={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};function w({className:e,block:a,selectedValue:n,selectValue:i,tabValues:o}){const s=[],{blockElementScrollPositionUntilNextRender:u}=(0,l.a_)(),c=e=>{const a=e.currentTarget,t=s.indexOf(a),r=o[t].value;r!==n&&(u(a),i(r))},d=e=>{let a=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const n=s.indexOf(e.currentTarget)+1;a=s[n]??s[0];break}case"ArrowLeft":{const n=s.indexOf(e.currentTarget)-1;a=s[n]??s[s.length-1];break}}a?.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":a},e),children:o.map((({value:e,label:a,attributes:i})=>(0,t.jsx)("li",{role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>s.push(e),onKeyDown:d,onClick:c,...i,className:(0,r.A)("tabs__item",m.tabItem,i?.className,{"tabs__item--active":n===e}),children:a??e},e)))})}function x({lazy:e,children:a,selectedValue:n}){const l=(Array.isArray(a)?a:[a]).filter(Boolean);if(e){const e=l.find((e=>e.props.value===n));return e?(0,i.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:l.map(((e,a)=>(0,i.cloneElement)(e,{key:a,hidden:e.props.value!==n})))})}function y(e){const a=h(e);return(0,t.jsxs)("div",{className:(0,r.A)("tabs-container",m.tabList),children:[(0,t.jsx)(w,{...a,...e}),(0,t.jsx)(x,{...a,...e})]})}function j(e){const a=(0,f.A)();return(0,t.jsx)(y,{...e,children:p(e.children)},String(a))}},43023:(e,a,n)=>{n.d(a,{R:()=>l,x:()=>o});var t=n(63696);const i={},r=t.createContext(i);function l(e){const a=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function o(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),t.createElement(r.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/230c8311.9c510da8.js b/assets/js/230c8311.b97da969.js similarity index 91% rename from assets/js/230c8311.9c510da8.js rename to assets/js/230c8311.b97da969.js index 0023ba57946..fdaaf70e59f 100644 --- a/assets/js/230c8311.9c510da8.js +++ b/assets/js/230c8311.b97da969.js @@ -33,7 +33,7 @@ const contentTitle = undefined; const metadata = { "id": "debugging-native-code", "title": "调试原生代码", - "description": "Projects with Native Code Only", + "description": "仅限包含原生代码的项目", "source": "@site/../cndocs/debugging-native-code.md", "sourceDirName": ".", "slug": "/debugging-native-code", @@ -67,12 +67,12 @@ const assets = { const toc = [{ - "value": "Accessing Logs", - "id": "accessing-logs", + "value": "打印日志", + "id": "打印日志", "level": 2 }, { - "value": "Debugging in a Native IDE", - "id": "debugging-in-a-native-ide", + "value": "在原生 IDE 中调试", + "id": "在原生-ide-中调试", "level": 2 }, { "value": "Android Studio", @@ -97,45 +97,45 @@ function _createMdxContent(props) { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { className: "banner-native-code-required", children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3", { - children: "Projects with Native Code Only" + children: "仅限包含原生代码的项目" }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("p", { - children: ["The following section only applies to projects with native code exposed. If you are using the managed Expo workflow, see the guide on ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("a", { + children: ["以下部分仅适用于包含原生代码的项目。如果你使用的是托管型 Expo 工作流,请参阅 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("a", { href: "https://docs.expo.dev/workflow/prebuild/", target: "_blank", children: "prebuild" - }), " to use this API."] + }), " 指南以使用此 API。"] })] }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.h2, { - id: "accessing-logs", - children: "Accessing Logs" + id: "打印日志", + children: "打印日志" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, { - children: "You can display the native logs for an iOS or Android app by using the following commands in a terminal while the app is running:" + children: "当应用正在运行时,你可以在终端中使用以下命令打印 iOS 或 Android 应用的日志:" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.pre, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, { className: "language-shell", children: "# For Android:\nnpx react-native log-android\n# Or, for iOS:\nnpx react-native log-ios\n" }) }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, { - children: ["You may also access these through Debug > Open System Log… in the iOS Simulator or by running ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, { + children: ["你也可以通过 iOS 模拟器中的 \"Debug > Open System Log...\" 菜单,或者在运行 Android 应用的设备或模拟器中运行 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, { children: "adb logcat \"*:S\" ReactNative:V ReactNativeJS:V" - }), " in a terminal while an Android app is running on a device or emulator."] + }), " 来访问这些日志。"] }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.h2, { - id: "debugging-in-a-native-ide", - children: "Debugging in a Native IDE" + id: "在原生-ide-中调试", + children: "在原生 IDE 中调试" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, { - children: "When working with native code, such as when writing native modules, you can launch the app from Android Studio or Xcode and take advantage of the native debugging features (setting up breakpoints, etc.) as you would in case of building a standard native app." + children: "当你编写原生模块时,你可以使用 Android Studio 或 Xcode 来启动应用,并使用其原生调试功能(设置断点等),就像在构建标准原生应用时一样。" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, { - children: "Another option is to run your application using the React Native CLI and attach the native debugger of the native IDE (Android Studio or Xcode) to the process." + children: "另一种选择是使用 React Native CLI 运行应用,并从原生 IDE(Android Studio 或 Xcode)中附加到进程。" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.h3, { id: "android-studio", children: "Android Studio" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, { - children: "On Android Studio you can do this by going on the \"Run\" option on the menu bar, clicking on \"Attach to Process...\" and selecting the running React Native app." + children: "在 Android Studio 中,你可以通过点击菜单栏中的 \"Run\" 选项,然后选择 \"Attach to Process...\",并选择正在运行的 React Native 应用。" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.h3, { id: "xcode", children: "Xcode" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, { - children: "On Xcode click on \"Debug\" on the top menu bar, select the \"Attach to process\" option, and select the application in the list of \"Likely Targets\"." + children: "在 Xcode 中,点击菜单栏中的 \"Debug\",选择 \"Attach to Process...\",然后从 \"Likely Targets\" 列表中选择正在运行的应用。" })] }); } diff --git a/assets/js/3753089a.294a0502.js b/assets/js/3753089a.294a0502.js new file mode 100644 index 00000000000..18194219e3f --- /dev/null +++ b/assets/js/3753089a.294a0502.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[14739],{82902:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var n=t(62540),r=t(43023);t(44067),t(49646),t(64034);const l={id:"debugging-native-code",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"},i=void 0,o={id:"debugging-native-code",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",description:"\u4ec5\u9650\u5305\u542b\u539f\u751f\u4ee3\u7801\u7684\u9879\u76ee",source:"@site/versioned_docs/version-0.76/debugging-native-code.md",sourceDirName:".",slug:"/debugging-native-code",permalink:"/docs/debugging-native-code",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/debugging-native-code.md",tags:[],version:"0.76",frontMatter:{id:"debugging-native-code",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"},sidebar:"docs",previous:{title:"React Native \u5f00\u53d1\u8005\u5de5\u5177",permalink:"/docs/react-native-devtools"},next:{title:"\u8c03\u8bd5\u53d1\u884c\u7248\u672c",permalink:"/docs/debugging-release-builds"}},s={},u=[{value:"\u6253\u5370\u65e5\u5fd7",id:"\u6253\u5370\u65e5\u5fd7",level:2},{value:"\u5728\u539f\u751f IDE \u4e2d\u8c03\u8bd5",id:"\u5728\u539f\u751f-ide-\u4e2d\u8c03\u8bd5",level:2},{value:"Android Studio",id:"android-studio",level:3},{value:"Xcode",id:"xcode",level:3}];function c(e){const a={code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"banner-native-code-required",children:[(0,n.jsx)("h3",{children:"\u4ec5\u9650\u5305\u542b\u539f\u751f\u4ee3\u7801\u7684\u9879\u76ee"}),(0,n.jsxs)("p",{children:["\u4ee5\u4e0b\u90e8\u5206\u4ec5\u9002\u7528\u4e8e\u5305\u542b\u539f\u751f\u4ee3\u7801\u7684\u9879\u76ee\u3002\u5982\u679c\u4f60\u4f7f\u7528\u7684\u662f\u6258\u7ba1\u578b Expo \u5de5\u4f5c\u6d41\uff0c\u8bf7\u53c2\u9605 ",(0,n.jsx)("a",{href:"https://docs.expo.dev/workflow/prebuild/",target:"_blank",children:"prebuild"})," \u6307\u5357\u4ee5\u4f7f\u7528\u6b64 API\u3002"]})]}),"\n",(0,n.jsx)(a.h2,{id:"\u6253\u5370\u65e5\u5fd7",children:"\u6253\u5370\u65e5\u5fd7"}),"\n",(0,n.jsx)(a.p,{children:"\u5f53\u5e94\u7528\u6b63\u5728\u8fd0\u884c\u65f6\uff0c\u4f60\u53ef\u4ee5\u5728\u7ec8\u7aef\u4e2d\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6253\u5370 iOS \u6216 Android \u5e94\u7528\u7684\u65e5\u5fd7\uff1a"}),"\n",(0,n.jsx)(a.pre,{children:(0,n.jsx)(a.code,{className:"language-shell",children:"# For Android:\nnpx react-native log-android\n# Or, for iOS:\nnpx react-native log-ios\n"})}),"\n",(0,n.jsxs)(a.p,{children:['\u4f60\u4e5f\u53ef\u4ee5\u901a\u8fc7 iOS \u6a21\u62df\u5668\u4e2d\u7684 "Debug > Open System Log..." \u83dc\u5355\uff0c\u6216\u8005\u5728\u8fd0\u884c Android \u5e94\u7528\u7684\u8bbe\u5907\u6216\u6a21\u62df\u5668\u4e2d\u8fd0\u884c ',(0,n.jsx)(a.code,{children:'adb logcat "*:S" ReactNative:V ReactNativeJS:V'})," \u6765\u8bbf\u95ee\u8fd9\u4e9b\u65e5\u5fd7\u3002"]}),"\n",(0,n.jsx)(a.h2,{id:"\u5728\u539f\u751f-ide-\u4e2d\u8c03\u8bd5",children:"\u5728\u539f\u751f IDE \u4e2d\u8c03\u8bd5"}),"\n",(0,n.jsx)(a.p,{children:"\u5f53\u4f60\u7f16\u5199\u539f\u751f\u6a21\u5757\u65f6\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528 Android Studio \u6216 Xcode \u6765\u542f\u52a8\u5e94\u7528\uff0c\u5e76\u4f7f\u7528\u5176\u539f\u751f\u8c03\u8bd5\u529f\u80fd\uff08\u8bbe\u7f6e\u65ad\u70b9\u7b49\uff09\uff0c\u5c31\u50cf\u5728\u6784\u5efa\u6807\u51c6\u539f\u751f\u5e94\u7528\u65f6\u4e00\u6837\u3002"}),"\n",(0,n.jsx)(a.p,{children:"\u53e6\u4e00\u79cd\u9009\u62e9\u662f\u4f7f\u7528 React Native CLI \u8fd0\u884c\u5e94\u7528\uff0c\u5e76\u4ece\u539f\u751f IDE\uff08Android Studio \u6216 Xcode\uff09\u4e2d\u9644\u52a0\u5230\u8fdb\u7a0b\u3002"}),"\n",(0,n.jsx)(a.h3,{id:"android-studio",children:"Android Studio"}),"\n",(0,n.jsx)(a.p,{children:'\u5728 Android Studio \u4e2d\uff0c\u4f60\u53ef\u4ee5\u901a\u8fc7\u70b9\u51fb\u83dc\u5355\u680f\u4e2d\u7684 "Run" \u9009\u9879\uff0c\u7136\u540e\u9009\u62e9 "Attach to Process..."\uff0c\u5e76\u9009\u62e9\u6b63\u5728\u8fd0\u884c\u7684 React Native \u5e94\u7528\u3002'}),"\n",(0,n.jsx)(a.h3,{id:"xcode",children:"Xcode"}),"\n",(0,n.jsx)(a.p,{children:'\u5728 Xcode \u4e2d\uff0c\u70b9\u51fb\u83dc\u5355\u680f\u4e2d\u7684 "Debug"\uff0c\u9009\u62e9 "Attach to Process..."\uff0c\u7136\u540e\u4ece "Likely Targets" \u5217\u8868\u4e2d\u9009\u62e9\u6b63\u5728\u8fd0\u884c\u7684\u5e94\u7528\u3002'})]})}function d(e={}){const{wrapper:a}={...(0,r.R)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},64034:(e,a,t)=>{t.d(a,{A:()=>i});var n=t(1448);const r=!!n.A.canUseDOM&&navigator.platform.startsWith("Mac"),l=!!n.A.canUseDOM&&navigator.platform.startsWith("Win"),i={defaultGuide:"native",defaultJsDebugger:"flipper",defaultOs:r?"macos":l?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:r?"ios":"android",defaultSyntax:"functional",defaultAndroidLanguage:"java",defaultAppleLanguage:"objc",defaultJavaScriptSpecLanguages:"typescript",getDevNotesTabs:(e=["android","ios","web","windows"])=>[e.includes("android")?{label:"Android",value:"android"}:void 0,e.includes("ios")?{label:"iOS",value:"ios"}:void 0,e.includes("web")?{label:"Web",value:"web"}:void 0,e.includes("windows")?{label:"Windows",value:"windows"}:void 0].filter(Boolean),guides:[{label:"\u5b8c\u6574\u539f\u751f\u73af\u5883",value:"native"},{label:"\u7b80\u6613\u6c99\u76d2\u73af\u5883",value:"quickstart"}],oses:[{label:"macOS",value:"macos"},{label:"Windows",value:"windows"},{label:"Linux",value:"linux"}],packageManagers:[{label:"npm",value:"npm"},{label:"Yarn",value:"yarn"}],platforms:[{label:"Android",value:"android"},{label:"iOS",value:"ios"}],syntax:[{label:"\u51fd\u6570\u5f0f\u7ec4\u4ef6",value:"functional"},{label:"Class \u7ec4\u4ef6",value:"classical"}],androidLanguages:[{label:"Java",value:"java"},{label:"Kotlin",value:"kotlin"}],appleLanguages:[{label:"ObjectiveC",value:"objc"},{label:"Swift",value:"swift"}],javaScriptSpecLanguages:[{label:"TypeScript",value:"typescript"},{label:"Flow",value:"flow"}],jsDebuggers:[{label:"Hermes Debugger / Expo",value:"hermes"},{label:"Flipper",value:"flipper"},{label:"New Debugger (Experimental)",value:"new-debugger"}],snackLanguages:[{label:"TypeScript",value:"typescript"},{label:"JavaScript",value:"javascript"}],defaultSnackLanguage:"typescript"}},49646:(e,a,t)=>{t.d(a,{A:()=>i});var n=t(62540),r=t(11750);const l={tabItem:"tabItem_wHwb"};function i({children:e,hidden:a,className:t}){return(0,n.jsx)("div",{role:"tabpanel",className:(0,r.A)(l.tabItem,t),hidden:a,children:e})}},44067:(e,a,t)=>{t.d(a,{A:()=>y});var n=t(62540),r=t(63696),l=t(11750),i=t(3101),o=t(49519),s=t(21750),u=t(87718),c=t(38807),d=t(17819);function b(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:a}=e;return!!a&&"object"==typeof a&&"value"in a}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:a,children:t}=e;return(0,r.useMemo)((()=>{const e=a??function(e){return b(e).map((({props:{value:e,label:a,attributes:t,default:n}})=>({value:e,label:a,attributes:t,default:n})))}(t);return function(e){const a=(0,c.XI)(e,((e,a)=>e.value===a.value));if(a.length>0)throw new Error(`Docusaurus error: Duplicate values "${a.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[a,t])}function v({value:e,tabValues:a}){return a.some((a=>a.value===e))}function g({queryString:e=!1,groupId:a}){const t=(0,o.W6)(),n=function({queryString:e=!1,groupId:a}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:e,groupId:a});return[(0,u.aZ)(n),(0,r.useCallback)((e=>{if(!n)return;const a=new URLSearchParams(t.location.search);a.set(n,e),t.replace({...t.location,search:a.toString()})}),[n,t])]}function f(e){const{defaultValue:a,queryString:t=!1,groupId:n}=e,l=p(e),[i,o]=(0,r.useState)((()=>function({defaultValue:e,tabValues:a}){if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!v({value:e,tabValues:a}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const t=a.find((e=>e.default))??a[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:a,tabValues:l}))),[u,c]=g({queryString:t,groupId:n}),[b,f]=function({groupId:e}){const a=function(e){return e?`docusaurus.tab.${e}`:null}(e),[t,n]=(0,d.Dv)(a);return[t,(0,r.useCallback)((e=>{a&&n.set(e)}),[a,n])]}({groupId:n}),h=(()=>{const e=u??b;return v({value:e,tabValues:l})?e:null})();(0,s.A)((()=>{h&&o(h)}),[h]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!v({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),c(e),f(e)}),[c,f,l]),tabValues:l}}var h=t(64062);const m={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};function x({className:e,block:a,selectedValue:t,selectValue:r,tabValues:o}){const s=[],{blockElementScrollPositionUntilNextRender:u}=(0,i.a_)(),c=e=>{const a=e.currentTarget,n=s.indexOf(a),l=o[n].value;l!==t&&(u(a),r(l))},d=e=>{let a=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=s.indexOf(e.currentTarget)+1;a=s[t]??s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;a=s[t]??s[s.length-1];break}}a?.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":a},e),children:o.map((({value:e,label:a,attributes:r})=>(0,n.jsx)("li",{role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>s.push(e),onKeyDown:d,onClick:c,...r,className:(0,l.A)("tabs__item",m.tabItem,r?.className,{"tabs__item--active":t===e}),children:a??e},e)))})}function w({lazy:e,children:a,selectedValue:t}){const i=(Array.isArray(a)?a:[a]).filter(Boolean);if(e){const e=i.find((e=>e.props.value===t));return e?(0,r.cloneElement)(e,{className:(0,l.A)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:i.map(((e,a)=>(0,r.cloneElement)(e,{key:a,hidden:e.props.value!==t})))})}function j(e){const a=f(e);return(0,n.jsxs)("div",{className:(0,l.A)("tabs-container",m.tabList),children:[(0,n.jsx)(x,{...a,...e}),(0,n.jsx)(w,{...a,...e})]})}function y(e){const a=(0,h.A)();return(0,n.jsx)(j,{...e,children:b(e.children)},String(a))}},43023:(e,a,t)=>{t.d(a,{R:()=>i,x:()=>o});var n=t(63696);const r={},l=n.createContext(r);function i(e){const a=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function o(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),n.createElement(l.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3753089a.32ca8e8b.js b/assets/js/3753089a.32ca8e8b.js deleted file mode 100644 index 636b75a45c0..00000000000 --- a/assets/js/3753089a.32ca8e8b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[14739],{82902:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var t=n(62540),i=n(43023);n(44067),n(49646),n(64034);const r={id:"debugging-native-code",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"},l=void 0,o={id:"debugging-native-code",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",description:"Projects with Native Code Only",source:"@site/versioned_docs/version-0.76/debugging-native-code.md",sourceDirName:".",slug:"/debugging-native-code",permalink:"/docs/debugging-native-code",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/debugging-native-code.md",tags:[],version:"0.76",frontMatter:{id:"debugging-native-code",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"},sidebar:"docs",previous:{title:"React Native \u5f00\u53d1\u8005\u5de5\u5177",permalink:"/docs/react-native-devtools"},next:{title:"\u8c03\u8bd5\u53d1\u884c\u7248\u672c",permalink:"/docs/debugging-release-builds"}},s={},u=[{value:"Accessing Logs",id:"accessing-logs",level:2},{value:"Debugging in a Native IDE",id:"debugging-in-a-native-ide",level:2},{value:"Android Studio",id:"android-studio",level:3},{value:"Xcode",id:"xcode",level:3}];function c(e){const a={code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"banner-native-code-required",children:[(0,t.jsx)("h3",{children:"Projects with Native Code Only"}),(0,t.jsxs)("p",{children:["The following section only applies to projects with native code exposed. If you are using the managed Expo workflow, see the guide on ",(0,t.jsx)("a",{href:"https://docs.expo.dev/workflow/prebuild/",target:"_blank",children:"prebuild"})," to use this API."]})]}),"\n",(0,t.jsx)(a.h2,{id:"accessing-logs",children:"Accessing Logs"}),"\n",(0,t.jsx)(a.p,{children:"You can display the native logs for an iOS or Android app by using the following commands in a terminal while the app is running:"}),"\n",(0,t.jsx)(a.pre,{children:(0,t.jsx)(a.code,{className:"language-shell",children:"# For Android:\nnpx react-native log-android\n# Or, for iOS:\nnpx react-native log-ios\n"})}),"\n",(0,t.jsxs)(a.p,{children:["You may also access these through Debug > Open System Log\u2026 in the iOS Simulator or by running ",(0,t.jsx)(a.code,{children:'adb logcat "*:S" ReactNative:V ReactNativeJS:V'})," in a terminal while an Android app is running on a device or emulator."]}),"\n",(0,t.jsx)(a.h2,{id:"debugging-in-a-native-ide",children:"Debugging in a Native IDE"}),"\n",(0,t.jsx)(a.p,{children:"When working with native code, such as when writing native modules, you can launch the app from Android Studio or Xcode and take advantage of the native debugging features (setting up breakpoints, etc.) as you would in case of building a standard native app."}),"\n",(0,t.jsx)(a.p,{children:"Another option is to run your application using the React Native CLI and attach the native debugger of the native IDE (Android Studio or Xcode) to the process."}),"\n",(0,t.jsx)(a.h3,{id:"android-studio",children:"Android Studio"}),"\n",(0,t.jsx)(a.p,{children:'On Android Studio you can do this by going on the "Run" option on the menu bar, clicking on "Attach to Process..." and selecting the running React Native app.'}),"\n",(0,t.jsx)(a.h3,{id:"xcode",children:"Xcode"}),"\n",(0,t.jsx)(a.p,{children:'On Xcode click on "Debug" on the top menu bar, select the "Attach to process" option, and select the application in the list of "Likely Targets".'})]})}function d(e={}){const{wrapper:a}={...(0,i.R)(),...e.components};return a?(0,t.jsx)(a,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},64034:(e,a,n)=>{n.d(a,{A:()=>l});var t=n(1448);const i=!!t.A.canUseDOM&&navigator.platform.startsWith("Mac"),r=!!t.A.canUseDOM&&navigator.platform.startsWith("Win"),l={defaultGuide:"native",defaultJsDebugger:"flipper",defaultOs:i?"macos":r?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:i?"ios":"android",defaultSyntax:"functional",defaultAndroidLanguage:"java",defaultAppleLanguage:"objc",defaultJavaScriptSpecLanguages:"typescript",getDevNotesTabs:(e=["android","ios","web","windows"])=>[e.includes("android")?{label:"Android",value:"android"}:void 0,e.includes("ios")?{label:"iOS",value:"ios"}:void 0,e.includes("web")?{label:"Web",value:"web"}:void 0,e.includes("windows")?{label:"Windows",value:"windows"}:void 0].filter(Boolean),guides:[{label:"\u5b8c\u6574\u539f\u751f\u73af\u5883",value:"native"},{label:"\u7b80\u6613\u6c99\u76d2\u73af\u5883",value:"quickstart"}],oses:[{label:"macOS",value:"macos"},{label:"Windows",value:"windows"},{label:"Linux",value:"linux"}],packageManagers:[{label:"npm",value:"npm"},{label:"Yarn",value:"yarn"}],platforms:[{label:"Android",value:"android"},{label:"iOS",value:"ios"}],syntax:[{label:"\u51fd\u6570\u5f0f\u7ec4\u4ef6",value:"functional"},{label:"Class \u7ec4\u4ef6",value:"classical"}],androidLanguages:[{label:"Java",value:"java"},{label:"Kotlin",value:"kotlin"}],appleLanguages:[{label:"ObjectiveC",value:"objc"},{label:"Swift",value:"swift"}],javaScriptSpecLanguages:[{label:"TypeScript",value:"typescript"},{label:"Flow",value:"flow"}],jsDebuggers:[{label:"Hermes Debugger / Expo",value:"hermes"},{label:"Flipper",value:"flipper"},{label:"New Debugger (Experimental)",value:"new-debugger"}],snackLanguages:[{label:"TypeScript",value:"typescript"},{label:"JavaScript",value:"javascript"}],defaultSnackLanguage:"typescript"}},49646:(e,a,n)=>{n.d(a,{A:()=>l});var t=n(62540),i=n(11750);const r={tabItem:"tabItem_wHwb"};function l({children:e,hidden:a,className:n}){return(0,t.jsx)("div",{role:"tabpanel",className:(0,i.A)(r.tabItem,n),hidden:a,children:e})}},44067:(e,a,n)=>{n.d(a,{A:()=>j});var t=n(62540),i=n(63696),r=n(11750),l=n(3101),o=n(49519),s=n(21750),u=n(87718),c=n(38807),d=n(17819);function p(e){return i.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,i.isValidElement)(e)&&function(e){const{props:a}=e;return!!a&&"object"==typeof a&&"value"in a}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function g(e){const{values:a,children:n}=e;return(0,i.useMemo)((()=>{const e=a??function(e){return p(e).map((({props:{value:e,label:a,attributes:n,default:t}})=>({value:e,label:a,attributes:n,default:t})))}(n);return function(e){const a=(0,c.XI)(e,((e,a)=>e.value===a.value));if(a.length>0)throw new Error(`Docusaurus error: Duplicate values "${a.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[a,n])}function b({value:e,tabValues:a}){return a.some((a=>a.value===e))}function v({queryString:e=!1,groupId:a}){const n=(0,o.W6)(),t=function({queryString:e=!1,groupId:a}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:e,groupId:a});return[(0,u.aZ)(t),(0,i.useCallback)((e=>{if(!t)return;const a=new URLSearchParams(n.location.search);a.set(t,e),n.replace({...n.location,search:a.toString()})}),[t,n])]}function h(e){const{defaultValue:a,queryString:n=!1,groupId:t}=e,r=g(e),[l,o]=(0,i.useState)((()=>function({defaultValue:e,tabValues:a}){if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!b({value:e,tabValues:a}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const n=a.find((e=>e.default))??a[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:a,tabValues:r}))),[u,c]=v({queryString:n,groupId:t}),[p,h]=function({groupId:e}){const a=function(e){return e?`docusaurus.tab.${e}`:null}(e),[n,t]=(0,d.Dv)(a);return[n,(0,i.useCallback)((e=>{a&&t.set(e)}),[a,t])]}({groupId:t}),f=(()=>{const e=u??p;return b({value:e,tabValues:r})?e:null})();(0,s.A)((()=>{f&&o(f)}),[f]);return{selectedValue:l,selectValue:(0,i.useCallback)((e=>{if(!b({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);o(e),c(e),h(e)}),[c,h,r]),tabValues:r}}var f=n(64062);const m={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};function w({className:e,block:a,selectedValue:n,selectValue:i,tabValues:o}){const s=[],{blockElementScrollPositionUntilNextRender:u}=(0,l.a_)(),c=e=>{const a=e.currentTarget,t=s.indexOf(a),r=o[t].value;r!==n&&(u(a),i(r))},d=e=>{let a=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const n=s.indexOf(e.currentTarget)+1;a=s[n]??s[0];break}case"ArrowLeft":{const n=s.indexOf(e.currentTarget)-1;a=s[n]??s[s.length-1];break}}a?.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":a},e),children:o.map((({value:e,label:a,attributes:i})=>(0,t.jsx)("li",{role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>s.push(e),onKeyDown:d,onClick:c,...i,className:(0,r.A)("tabs__item",m.tabItem,i?.className,{"tabs__item--active":n===e}),children:a??e},e)))})}function x({lazy:e,children:a,selectedValue:n}){const l=(Array.isArray(a)?a:[a]).filter(Boolean);if(e){const e=l.find((e=>e.props.value===n));return e?(0,i.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:l.map(((e,a)=>(0,i.cloneElement)(e,{key:a,hidden:e.props.value!==n})))})}function y(e){const a=h(e);return(0,t.jsxs)("div",{className:(0,r.A)("tabs-container",m.tabList),children:[(0,t.jsx)(w,{...a,...e}),(0,t.jsx)(x,{...a,...e})]})}function j(e){const a=(0,f.A)();return(0,t.jsx)(y,{...e,children:p(e.children)},String(a))}},43023:(e,a,n)=>{n.d(a,{R:()=>l,x:()=>o});var t=n(63696);const i={},r=t.createContext(i);function l(e){const a=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function o(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),t.createElement(r.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3753089a.0575a8ce.js b/assets/js/3753089a.c757eb0f.js similarity index 91% rename from assets/js/3753089a.0575a8ce.js rename to assets/js/3753089a.c757eb0f.js index 332c6237fe8..ecdf337664f 100644 --- a/assets/js/3753089a.0575a8ce.js +++ b/assets/js/3753089a.c757eb0f.js @@ -33,7 +33,7 @@ const contentTitle = undefined; const metadata = { "id": "debugging-native-code", "title": "调试原生代码", - "description": "Projects with Native Code Only", + "description": "仅限包含原生代码的项目", "source": "@site/versioned_docs/version-0.76/debugging-native-code.md", "sourceDirName": ".", "slug": "/debugging-native-code", @@ -67,12 +67,12 @@ const assets = { const toc = [{ - "value": "Accessing Logs", - "id": "accessing-logs", + "value": "打印日志", + "id": "打印日志", "level": 2 }, { - "value": "Debugging in a Native IDE", - "id": "debugging-in-a-native-ide", + "value": "在原生 IDE 中调试", + "id": "在原生-ide-中调试", "level": 2 }, { "value": "Android Studio", @@ -97,45 +97,45 @@ function _createMdxContent(props) { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { className: "banner-native-code-required", children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3", { - children: "Projects with Native Code Only" + children: "仅限包含原生代码的项目" }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("p", { - children: ["The following section only applies to projects with native code exposed. If you are using the managed Expo workflow, see the guide on ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("a", { + children: ["以下部分仅适用于包含原生代码的项目。如果你使用的是托管型 Expo 工作流,请参阅 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("a", { href: "https://docs.expo.dev/workflow/prebuild/", target: "_blank", children: "prebuild" - }), " to use this API."] + }), " 指南以使用此 API。"] })] }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.h2, { - id: "accessing-logs", - children: "Accessing Logs" + id: "打印日志", + children: "打印日志" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, { - children: "You can display the native logs for an iOS or Android app by using the following commands in a terminal while the app is running:" + children: "当应用正在运行时,你可以在终端中使用以下命令打印 iOS 或 Android 应用的日志:" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.pre, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, { className: "language-shell", children: "# For Android:\nnpx react-native log-android\n# Or, for iOS:\nnpx react-native log-ios\n" }) }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, { - children: ["You may also access these through Debug > Open System Log… in the iOS Simulator or by running ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, { + children: ["你也可以通过 iOS 模拟器中的 \"Debug > Open System Log...\" 菜单,或者在运行 Android 应用的设备或模拟器中运行 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.code, { children: "adb logcat \"*:S\" ReactNative:V ReactNativeJS:V" - }), " in a terminal while an Android app is running on a device or emulator."] + }), " 来访问这些日志。"] }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.h2, { - id: "debugging-in-a-native-ide", - children: "Debugging in a Native IDE" + id: "在原生-ide-中调试", + children: "在原生 IDE 中调试" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, { - children: "When working with native code, such as when writing native modules, you can launch the app from Android Studio or Xcode and take advantage of the native debugging features (setting up breakpoints, etc.) as you would in case of building a standard native app." + children: "当你编写原生模块时,你可以使用 Android Studio 或 Xcode 来启动应用,并使用其原生调试功能(设置断点等),就像在构建标准原生应用时一样。" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, { - children: "Another option is to run your application using the React Native CLI and attach the native debugger of the native IDE (Android Studio or Xcode) to the process." + children: "另一种选择是使用 React Native CLI 运行应用,并从原生 IDE(Android Studio 或 Xcode)中附加到进程。" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.h3, { id: "android-studio", children: "Android Studio" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, { - children: "On Android Studio you can do this by going on the \"Run\" option on the menu bar, clicking on \"Attach to Process...\" and selecting the running React Native app." + children: "在 Android Studio 中,你可以通过点击菜单栏中的 \"Run\" 选项,然后选择 \"Attach to Process...\",并选择正在运行的 React Native 应用。" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.h3, { id: "xcode", children: "Xcode" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, { - children: "On Xcode click on \"Debug\" on the top menu bar, select the \"Attach to process\" option, and select the application in the list of \"Likely Targets\"." + children: "在 Xcode 中,点击菜单栏中的 \"Debug\",选择 \"Attach to Process...\",然后从 \"Likely Targets\" 列表中选择正在运行的应用。" })] }); } diff --git a/assets/js/4b97d39c.22b0bc43.js b/assets/js/4b97d39c.22b0bc43.js deleted file mode 100644 index 2a9a5a4d25a..00000000000 --- a/assets/js/4b97d39c.22b0bc43.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[56970],{99792:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>t});var r=i(62540),c=i(43023);const s={},d="\u521b\u5efa\u6a21\u5757\u5e93",l={id:"the-new-architecture/create-module-library",title:"\u521b\u5efa\u6a21\u5757\u5e93",description:"React Native \u6709\u4e00\u4e2a\u4e30\u5bcc\u7684\u751f\u6001\u7cfb\u7edf\u5e93\u6765\u89e3\u51b3\u5e38\u89c1\u95ee\u9898\u3002\u6211\u4eec\u5728 reactnative.directory \u7f51\u7ad9\u4e0a\u6536\u96c6 React Native \u5e93\uff0c\u8fd9\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u8d44\u6e90\uff0c\u503c\u5f97\u6bcf\u4e2a React Native \u5f00\u53d1\u8005\u6536\u85cf\u3002",source:"@site/../cndocs/the-new-architecture/create-module-library.md",sourceDirName:"the-new-architecture",slug:"/the-new-architecture/create-module-library",permalink:"/docs/next/the-new-architecture/create-module-library",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/the-new-architecture/create-module-library.md",tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"appendix",permalink:"/docs/next/appendix"},next:{title:"Headless JS\uff08\u540e\u53f0\u4efb\u52a1\uff09",permalink:"/docs/next/headless-js-android"}},a={},t=[{value:"\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d",id:"\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d",level:2},{value:"1. \u521b\u5efa\u5e93",id:"1-\u521b\u5efa\u5e93",level:3},{value:"2. \u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u590d\u5236\u5230\u5e93",id:"2-\u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u590d\u5236\u5230\u5e93",level:3},{value:"\u6d4b\u8bd5\u4f60\u7684\u5e93",id:"\u6d4b\u8bd5\u4f60\u7684\u5e93",level:2},{value:"\u5c06\u4f60\u7684\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u4f7f\u7528\u3002",id:"\u5c06\u4f60\u7684\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u4f7f\u7528",level:2},{value:"\u5728 NPM \u4e0a\u53d1\u5e03\u5e93",id:"\u5728-npm-\u4e0a\u53d1\u5e03\u5e93",level:2}];function o(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,c.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"\u521b\u5efa\u6a21\u5757\u5e93",children:"\u521b\u5efa\u6a21\u5757\u5e93"})}),"\n",(0,r.jsxs)(n.p,{children:["React Native \u6709\u4e00\u4e2a\u4e30\u5bcc\u7684\u751f\u6001\u7cfb\u7edf\u5e93\u6765\u89e3\u51b3\u5e38\u89c1\u95ee\u9898\u3002\u6211\u4eec\u5728 ",(0,r.jsx)(n.a,{href:"https://reactnative.directory",children:"reactnative.directory"})," \u7f51\u7ad9\u4e0a\u6536\u96c6 React Native \u5e93\uff0c\u8fd9\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u8d44\u6e90\uff0c\u503c\u5f97\u6bcf\u4e2a React Native \u5f00\u53d1\u8005\u6536\u85cf\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u6709\u65f6\uff0c\u4f60\u53ef\u80fd\u4f1a\u5f00\u53d1\u4e00\u4e2a\u6a21\u5757\uff0c\u5e0c\u671b\u5c06\u5176\u63d0\u53d6\u5230\u4e00\u4e2a\u5355\u72ec\u7684\u5e93\u4e2d\u4ee5\u4f9b\u4ee3\u7801\u91cd\u7528\u3002\u8fd9\u53ef\u4ee5\u662f\u4e00\u4e2a\u4f60\u5e0c\u671b\u5728\u6240\u6709\u5e94\u7528\u4e2d\u91cd\u7528\u7684\u5e93\uff0c\u4e00\u4e2a\u4f60\u5e0c\u671b\u4f5c\u4e3a\u5f00\u6e90\u7ec4\u4ef6\u5206\u53d1\u5230\u751f\u6001\u7cfb\u7edf\u7684\u5e93\uff0c\u751a\u81f3\u662f\u4e00\u4e2a\u4f60\u5e0c\u671b\u51fa\u552e\u7684\u5e93\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u672c\u6307\u5357\u4e2d\uff0c\u4f60\u5c06\u5b66\u4e60\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u5982\u4f55\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d"}),"\n",(0,r.jsx)(n.li,{children:"\u5982\u4f55\u4f7f\u7528 NPM \u5206\u53d1\u5e93"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d",children:"\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d"}),"\n",(0,r.jsxs)(n.p,{children:["\u4f60\u53ef\u4ee5\u4f7f\u7528 ",(0,r.jsx)(n.a,{href:"https://callstack.github.io/react-native-builder-bob/create",children:(0,r.jsx)(n.code,{children:"create-react-native-library"})})," \u5de5\u5177\u6765\u521b\u5efa\u4e00\u4e2a\u65b0\u5e93\u3002\u8be5\u5de5\u5177\u8bbe\u7f6e\u4e86\u4e00\u4e2a\u65b0\u7684\u5e93\uff0c\u5176\u4e2d\u5305\u542b\u6240\u6709\u9700\u8981\u7684\u6837\u677f\u4ee3\u7801\uff1a\u6240\u6709\u914d\u7f6e\u6587\u4ef6\u548c\u5404\u79cd\u5e73\u53f0\u6240\u9700\u7684\u6587\u4ef6\u3002\u5b83\u8fd8\u5e26\u6709\u4e00\u4e2a\u4ea4\u4e92\u5f0f\u83dc\u5355\uff0c\u5f15\u5bfc\u4f60\u5b8c\u6210\u5e93\u7684\u521b\u5efa\u8fc7\u7a0b\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u8981\u63d0\u53d6\u6a21\u5757\u5230\u4e00\u4e2a\u5355\u72ec\u7684\u5e93\u4e2d\uff0c\u4f60\u53ef\u4ee5\u6309\u7167\u4ee5\u4e0b\u6b65\u9aa4\u64cd\u4f5c\uff1a"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"\u521b\u5efa\u65b0\u5e93"}),"\n",(0,r.jsx)(n.li,{children:"\u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u79fb\u52a8\u5230\u5e93"}),"\n",(0,r.jsx)(n.li,{children:"\u66f4\u65b0\u4ee3\u7801\u4ee5\u53cd\u6620\u65b0\u7684\u7ed3\u6784"}),"\n",(0,r.jsx)(n.li,{children:"\u53d1\u5e03\u5b83\u3002"}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"1-\u521b\u5efa\u5e93",children:"1. \u521b\u5efa\u5e93"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"\u901a\u8fc7\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u5f00\u59cb\u521b\u5efa\u8fc7\u7a0b\uff1a"}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sh",children:"npx create-react-native-library@latest \n"})}),"\n",(0,r.jsxs)(n.ol,{start:"2",children:["\n",(0,r.jsxs)(n.li,{children:["\u4e3a\u4f60\u7684\u6a21\u5757\u6dfb\u52a0\u4e00\u4e2a\u540d\u79f0\u3002\u5b83\u5fc5\u987b\u662f\u4e00\u4e2a\u6709\u6548\u7684 npm \u540d\u79f0\uff0c\u6240\u4ee5\u5e94\u8be5\u5168\u90e8\u662f\u5c0f\u5199\u7684\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"-"})," \u6765\u5206\u9694\u5355\u8bcd\u3002"]}),"\n",(0,r.jsx)(n.li,{children:"\u4e3a\u5305\u6dfb\u52a0\u4e00\u4e2a\u63cf\u8ff0\u3002"}),"\n",(0,r.jsxs)(n.li,{children:["\u7ee7\u7eed\u586b\u5199\u8868\u5355\uff0c\u76f4\u5230\u4f60\u5230\u8fbe\u95ee\u9898 ",(0,r.jsx)(n.em,{children:'"\u4f60\u60f3\u8981\u5f00\u53d1\u4ec0\u4e48\u7c7b\u578b\u7684\u5e93\uff1f"'}),"\n",(0,r.jsx)(n.img,{alt:"What type of Library",src:i(34723).A+"",width:"1744",height:"304"})]}),"\n",(0,r.jsxs)(n.li,{children:["\u4e3a\u4e86\u672c\u6307\u5357\u7684\u76ee\u7684\uff0c\u9009\u62e9 ",(0,r.jsx)(n.em,{children:"Turbo \u6a21\u5757"})," \u9009\u9879\u3002\u6ce8\u610f\u4f60\u53ef\u4ee5\u521b\u5efa\u65b0\u67b6\u6784\u548c\u65e7\u67b6\u6784\u7684\u5e93\u3002"]}),"\n",(0,r.jsx)(n.li,{children:"\u7136\u540e\uff0c\u4f60\u53ef\u4ee5\u9009\u62e9\u4f60\u60f3\u8981\u4e00\u4e2a\u8bbf\u95ee\u5e73\u53f0\u7684\u5e93\uff08Kotlin \u548c Objective-C\uff09\u8fd8\u662f\u4e00\u4e2a\u5171\u4eab\u7684 C++ \u5e93\uff08Android \u548c iOS \u7684 C++\uff09\u3002"}),"\n",(0,r.jsxs)(n.li,{children:["\u6700\u540e\uff0c\u9009\u62e9 ",(0,r.jsx)(n.code,{children:"Test App"})," \u4f5c\u4e3a\u6700\u540e\u4e00\u4e2a\u9009\u9879\u3002\u6b64\u9009\u9879\u521b\u5efa\u4e00\u4e2a\u5df2\u7ecf\u914d\u7f6e\u5728\u5e93\u6587\u4ef6\u5939\u4e2d\u7684\u5355\u72ec\u5e94\u7528\u7684\u5e93\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\u4e00\u65e6\u4ea4\u4e92\u63d0\u793a\u5b8c\u6210\uff0c\u5de5\u5177\u4f1a\u521b\u5efa\u4e00\u4e2a\u6587\u4ef6\u5939\uff0c\u5176\u7ed3\u6784\u5982\u4e0b\uff1a"}),"\n",(0,r.jsx)("img",{class:"half-size",alt:"Folder structure after initializing a new library.",src:"/docs/assets/turbo-native-modules/c++visualstudiocode.webp"}),"\n",(0,r.jsx)(n.p,{children:"\u968f\u610f\u63a2\u7d22\u5de5\u5177\u4e3a\u4f60\u521b\u5efa\u7684\u4ee3\u7801\u3002\u7136\u800c\uff0c\u6700\u91cd\u8981\u7684\u90e8\u5206\u662f\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"android"})," \u6587\u4ef6\u5939\uff1a\u8fd9\u662f Android \u4ee3\u7801\u6240\u5728\u7684\u4f4d\u7f6e"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"cpp"})," \u6587\u4ef6\u5939\uff1a\u8fd9\u662f C++ \u4ee3\u7801\u6240\u5728\u7684\u4f4d\u7f6e"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"ios"})," \u6587\u4ef6\u5939\uff1a\u8fd9\u662f iOS \u4ee3\u7801\u6240\u5728\u7684\u4f4d\u7f6e"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"src"})," \u6587\u4ef6\u5939\uff1a\u8fd9\u662f JS \u4ee3\u7801\u6240\u5728\u7684\u4f4d\u7f6e"]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"package.json"})," \u5df2\u7ecf\u914d\u7f6e\u4e86\u6240\u6709\u4fe1\u606f\uff0c\u5305\u62ec\u5305\u7684\u540d\u79f0\u548c\u63cf\u8ff0\u3002\u6ce8\u610f ",(0,r.jsx)(n.code,{children:"package.json"})," \u4e5f\u5df2\u7ecf\u914d\u7f6e\u4e3a\u8fd0\u884c codegen\u3002"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-json",children:' "codegenConfig": {\n "name": "RNSpec",\n "type": "all",\n "jsSrcsDir": "src",\n "outputDir": {\n "ios": "ios/generated",\n "android": "android/generated"\n },\n "android": {\n "javaPackageName": "com."\n }\n },\n'})}),"\n",(0,r.jsx)(n.p,{children:"\u6700\u540e\uff0c\u5e93\u5df2\u7ecf\u5305\u542b\u6240\u6709\u57fa\u7840\u8bbe\u65bd\uff0c\u4ee5\u4fbf\u5e93\u53ef\u4ee5\u4e0e iOS \u548c Android \u94fe\u63a5\u3002"}),"\n",(0,r.jsx)(n.h3,{id:"2-\u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u590d\u5236\u5230\u5e93",children:"2. \u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u590d\u5236\u5230\u5e93"}),"\n",(0,r.jsxs)(n.p,{children:["\u672c\u6307\u5357\u7684\u5176\u4f59\u90e8\u5206\u5047\u8bbe\u4f60\u6709\u4e00\u4e2a\u672c\u5730 Turbo Native \u6a21\u5757\u5728\u4f60\u7684\u5e94\u7528\u4e2d\uff0c\u9075\u5faa\u7f51\u7ad9\u4e0a\u5176\u4ed6\u6307\u5357\u4e2d\u7684\u6307\u5357\uff1a\u5e73\u53f0\u7279\u5b9a\u7684 Turbo Native \u6a21\u5757\uff0c\u6216 ",(0,r.jsx)(n.a,{href:"./pure-cxx-modules",children:"\u8de8\u5e73\u53f0\u7684 Turbo Native \u6a21\u5757"}),"\u3002\u4f46\u5b83\u4e5f\u9002\u7528\u4e8e\u7ec4\u4ef6\u548c\u65e7\u67b6\u6784\u7684\u6a21\u5757\u548c\u7ec4\u4ef6\u3002\u4f60\u9700\u8981\u590d\u5236\u548c\u66f4\u65b0\u4f60\u9700\u8981\u7684\u6587\u4ef6\u3002"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"[\u65e7\u67b6\u6784\u4e0d\u9700\u8981\u8fd9\u4e00\u6b65]"})," \u5c06\u4f60\u5728\u5e94\u7528\u7684 ",(0,r.jsx)(n.code,{children:"specs"})," \u6587\u4ef6\u5939\u4e2d\u7684\u4ee3\u7801\u79fb\u52a8\u5230 ",(0,r.jsx)(n.code,{children:"create-react-native-library"})," \u521b\u5efa\u7684 ",(0,r.jsx)(n.code,{children:"src"})," \u6587\u4ef6\u5939\u4e2d\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u66f4\u65b0 ",(0,r.jsx)(n.code,{children:"index.ts"})," \u6587\u4ef6\u4ee5\u6b63\u786e\u5bfc\u51fa Turbo Native \u6a21\u5757\u89c4\u8303\uff0c\u4ee5\u4fbf\u53ef\u4ee5\u4ece\u5e93\u4e2d\u8bbf\u95ee\u5b83\u3002\u4f8b\u5982\uff1a"]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",children:"import NativeSampleModule from './NativeSampleModule';\n\nexport default NativeSampleModule;\n"})}),"\n",(0,r.jsxs)(n.ol,{start:"3",children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"\u590d\u5236\u539f\u751f\u6a21\u5757\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u7528\u4f60\u5728\u5e94\u7528\u4e2d\u4e3a\u539f\u751f\u6a21\u5757\u7f16\u5199\u7684\u4ee3\u7801\u66ff\u6362 ",(0,r.jsx)(n.code,{children:"android/src/main/java/com/"})," \u4e2d\u7684\u4ee3\u7801\uff0c\u5982\u679c\u6709\u7684\u8bdd\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u7528\u4f60\u5728\u5e94\u7528\u4e2d\u4e3a\u539f\u751f\u6a21\u5757\u7f16\u5199\u7684\u4ee3\u7801\u66ff\u6362 ",(0,r.jsx)(n.code,{children:"ios"})," \u6587\u4ef6\u5939\u4e2d\u7684\u4ee3\u7801\uff0c\u5982\u679c\u6709\u7684\u8bdd\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u7528\u4f60\u5728\u5e94\u7528\u4e2d\u4e3a\u539f\u751f\u6a21\u5757\u7f16\u5199\u7684\u4ee3\u7801\u66ff\u6362 ",(0,r.jsx)(n.code,{children:"cpp"})," \u6587\u4ef6\u5939\u4e2d\u7684\u4ee3\u7801\uff0c\u5982\u679c\u6709\u7684\u8bdd\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"[\u65e7\u67b6\u6784\u4e0d\u9700\u8981\u8fd9\u4e00\u6b65]"})," \u66f4\u65b0\u6240\u6709\u4ece\u65e7\u89c4\u8303\u540d\u79f0\u5230\u65b0\u89c4\u8303\u540d\u79f0\u7684\u5f15\u7528\uff0c\u65b0\u89c4\u8303\u540d\u79f0\u5728\u5e93\u7684 ",(0,r.jsx)(n.code,{children:"package.json"})," \u6587\u4ef6\u7684 ",(0,r.jsx)(n.code,{children:"codegenConfig"})," \u5b57\u6bb5\u4e2d\u5b9a\u4e49\u3002\u4f8b\u5982\uff0c\u5982\u679c\u5e94\u7528\u7684 ",(0,r.jsx)(n.code,{children:"package.json"})," \u4e2d\u8bbe\u7f6e ",(0,r.jsx)(n.code,{children:"AppSpecs"})," \u4e3a ",(0,r.jsx)(n.code,{children:"codegenConfig.name"}),"\uff0c\u800c\u5728\u5e93\u4e2d\u79f0\u4e3a ",(0,r.jsx)(n.code,{children:"RNNativeSampleModuleSpec"}),"\uff0c\u5219\u5fc5\u987b\u5c06 ",(0,r.jsx)(n.code,{children:"AppSpecs"})," \u7684\u6240\u6709\u51fa\u73b0\u66ff\u6362\u4e3a ",(0,r.jsx)(n.code,{children:"RNNativeSampleModuleSpec"}),"\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\u8fd9\u5c31\u5b8c\u6210\u4e86\uff01\u4f60\u5df2\u7ecf\u5c06\u6240\u6709\u9700\u8981\u7684\u4ee3\u7801\u4ece\u5e94\u7528\u79fb\u52a8\u5230\u4e00\u4e2a\u5355\u72ec\u7684\u5e93\u4e2d\u3002"}),"\n",(0,r.jsx)(n.h2,{id:"\u6d4b\u8bd5\u4f60\u7684\u5e93",children:"\u6d4b\u8bd5\u4f60\u7684\u5e93"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"create-react-native-library"})," \u5e26\u6709\u4e00\u4e2a\u6709\u7528\u7684\u793a\u4f8b\u5e94\u7528\uff0c\u5df2\u914d\u7f6e\u4e3a\u4e0e\u5e93\u6b63\u5e38\u5de5\u4f5c\u3002\u8fd9\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u6d4b\u8bd5\u65b9\u6cd5\uff01"]}),"\n",(0,r.jsxs)(n.p,{children:["\u5982\u679c\u4f60\u67e5\u770b ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\uff0c\u4f60\u4f1a\u53d1\u73b0\u4e00\u4e2a\u4e0e ",(0,r.jsx)(n.a,{href:"https://github.com/react-native-community/template",children:(0,r.jsx)(n.code,{children:"react-native-community/template"})})," \u521b\u5efa\u7684\u65b0 React Native \u5e94\u7528\u76f8\u540c\u7684\u7ed3\u6784\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u8981\u6d4b\u8bd5\u4f60\u7684\u5e93\uff1a"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\u5bfc\u822a\u5230 ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"yarn install"})," \u6765\u5b89\u88c5\u6240\u6709\u4f9d\u8d56\u9879\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u5bf9\u4e8e iOS \u6765\u8bf4\uff0c\u4f60\u9700\u8981\u5b89\u88c5 CocoaPods\uff1a",(0,r.jsx)(n.code,{children:"cd ios && pod install"}),"\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn android"})," \u4ece ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u6784\u5efa\u548c\u8fd0\u884c Android\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn ios"})," \u4ece ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u6784\u5efa\u548c\u8fd0\u884c iOS\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5c06\u4f60\u7684\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u4f7f\u7528",children:"\u5c06\u4f60\u7684\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u4f7f\u7528\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u4f60\u53ef\u80fd\u5e0c\u671b\u5c06\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u91cd\u7528\u4e8e\u4f60\u7684\u5e94\u7528\uff0c\u800c\u4e0d\u5c06\u5176\u53d1\u5e03\u5230 NPM\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u4f60\u53ef\u80fd\u4f1a\u9047\u5230\u4e00\u4e2a\u573a\u666f\uff0c\u5373\u4f60\u7684\u5e93\u4f5c\u4e3a\u5e94\u7528\u7684\u5144\u5f1f\u6587\u4ef6\u5939\u5b58\u5728\u3002"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"Development\n\u251c\u2500\u2500 App\n\u2514\u2500\u2500 Library\n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u4f60\u4e5f\u53ef\u4ee5\u5728\u8fd9\u79cd\u60c5\u51b5\u4e2d\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"create-react-native-library"})," \u521b\u5efa\u7684\u5e93\u3002"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\u901a\u8fc7\u5bfc\u822a\u5230 ",(0,r.jsx)(n.code,{children:"App"})," \u6587\u4ef6\u5939\u5e76\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"yarn add ../Library"})," \u5c06\u4f60\u7684\u5e93\u6dfb\u52a0\u5230\u5e94\u7528\u4e2d\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u5bf9\u4e8e iOS \u6765\u8bf4\uff0c\u5bfc\u822a\u5230 ",(0,r.jsx)(n.code,{children:"App/ios"})," \u6587\u4ef6\u5939\u5e76\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"bundle exec pod install"})," \u6765\u5b89\u88c5\u4f60\u7684\u4f9d\u8d56\u9879\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u66f4\u65b0 ",(0,r.jsx)(n.code,{children:"App.tsx"})," \u4ee3\u7801\u4ee5\u5bfc\u5165\u5e93\u4e2d\u7684\u4ee3\u7801\u3002\u4f8b\u5982\uff1a"]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:"import NativeSampleModule from '../Library/src/index';\n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u5982\u679c\u4f60\u73b0\u5728\u8fd0\u884c\u4f60\u7684\u5e94\u7528\uff0cMetro \u5c06\u627e\u4e0d\u5230\u5b83\u9700\u8981\u63d0\u4f9b\u7ed9\u5e94\u7528\u7684 JS \u6587\u4ef6\u3002\u8fd9\u662f\u56e0\u4e3a Metro \u5c06\u4ece ",(0,r.jsx)(n.code,{children:"App"})," \u6587\u4ef6\u5939\u5f00\u59cb\u8fd0\u884c\uff0c\u5e76\u4e14\u65e0\u6cd5\u8bbf\u95ee\u4f4d\u4e8e ",(0,r.jsx)(n.code,{children:"Library"})," \u6587\u4ef6\u5939\u4e2d\u7684 JS \u6587\u4ef6\u3002\u8981\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u8ba9\u6211\u4eec\u66f4\u65b0 ",(0,r.jsx)(n.code,{children:"metro.config.js"})," \u6587\u4ef6\uff0c\u5982\u4e0b\u6240\u793a\uff1a"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:"const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config');\n\n/**\n * Metro configuration\n * https://reactnative.dev/docs/metro\n *\n * @type {import('metro-config').MetroConfig}\n */\n+ const path = require('path');\n\n- const config = {}\n+ const config = {\n+ // Make Metro able to resolve required external dependencies\n+ watchFolders: [\n+ path.resolve(__dirname, '../Library'),\n+ ],\n+ resolver: {\n+ extraNodeModules: {\n+ 'react-native': path.resolve(__dirname, 'node_modules/react-native'),\n+ },\n+ },\n+};\n\nmodule.exports = mergeConfig(getDefaultConfig(__dirname), config);\n"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"watchFolders"})," \u914d\u7f6e\u544a\u8bc9 Metro \u76d1\u89c6\u4e00\u4e9b\u9644\u52a0\u8def\u5f84\u4e2d\u7684\u6587\u4ef6\u548c\u66f4\u6539\uff0c\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\u662f ",(0,r.jsx)(n.code,{children:"../Library"})," \u8def\u5f84\uff0c\u5176\u4e2d\u5305\u542b\u4f60\u9700\u8981 ",(0,r.jsx)(n.code,{children:"src/index"})," \u6587\u4ef6\u3002",(0,r.jsx)(n.code,{children:"resolver"})," \u5c5e\u6027\u662f\u5fc5\u9700\u7684\uff0c\u4ee5\u4fbf\u4e3a\u5e93\u63d0\u4f9b\u5e94\u7528\u4f7f\u7528\u7684 React Native \u4ee3\u7801\u3002\u5e93\u53ef\u80fd\u4f1a\u5f15\u7528\u5e76\u5bfc\u5165 React Native \u4ee3\u7801\uff1a\u6ca1\u6709\u989d\u5916\u7684\u89e3\u6790\u5668\uff0c\u5e93\u4e2d\u7684\u5bfc\u5165\u5c06\u5931\u8d25\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u6b64\u65f6\uff0c\u4f60\u53ef\u4ee5\u50cf\u5f80\u5e38\u4e00\u6837\u6784\u5efa\u548c\u8fd0\u884c\u4f60\u7684\u5e94\u7528\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn android"})," \u4ece ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u6784\u5efa\u548c\u8fd0\u884c Android\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn ios"})," \u4ece ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u6784\u5efa\u548c\u8fd0\u884c iOS\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5728-npm-\u4e0a\u53d1\u5e03\u5e93",children:"\u5728 NPM \u4e0a\u53d1\u5e03\u5e93"}),"\n",(0,r.jsxs)(n.p,{children:["\u53d1\u5e03\u5230 NPM \u7684\u8bbe\u7f6e\u5df2\u7ecf\u5230\u4f4d\uff0c\u611f\u8c22 ",(0,r.jsx)(n.code,{children:"create-react-native-library"}),"\u3002"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\u5728\u4f60\u7684\u6a21\u5757\u4e2d\u5b89\u88c5\u4f9d\u8d56\u9879 ",(0,r.jsx)(n.code,{children:"yarn install"}),"\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"yarn prepare"})," \u6784\u5efa\u5e93\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn release"})," \u53d1\u5e03\u5b83\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\u7a0d\u7b49\u7247\u523b\uff0c\u4f60\u4f1a\u5728 NPM \u4e0a\u627e\u5230\u4f60\u7684\u5e93\u3002\u8981\u9a8c\u8bc1\u8fd9\u4e00\u70b9\uff0c\u8fd0\u884c\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm view \n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u5176\u4e2d ",(0,r.jsx)(n.code,{children:"package.name"})," \u662f\u4f60\u8bbe\u7f6e\u7684 ",(0,r.jsx)(n.code,{children:"name"}),"\uff0c\u5728\u5e93\u7684 ",(0,r.jsx)(n.code,{children:"package.json"})," \u6587\u4ef6\u4e2d\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u73b0\u5728\uff0c\u4f60\u53ef\u4ee5\u901a\u8fc7\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u5728\u4f60\u7684\u5e94\u7528\u4e2d\u5b89\u88c5\u5e93\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"yarn add \n"})}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsxs)(n.p,{children:["\u5bf9\u4e8e iOS \u6765\u8bf4\uff0c\u6bcf\u5f53\u5b89\u88c5\u4e00\u4e2a\u5e26\u6709\u539f\u751f\u4ee3\u7801\u7684\u65b0\u6a21\u5757\u65f6\uff0c\u4f60\u5fc5\u987b\u91cd\u65b0\u5b89\u88c5 CocoaPods\uff0c\u901a\u8fc7\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"bundle exec pod install"}),"\uff08\u63a8\u8350\uff09\u6216 ",(0,r.jsx)(n.code,{children:"pod install"}),"\uff08\u4e0d\u63a8\u8350\uff09\u3002"]})}),"\n",(0,r.jsx)(n.p,{children:"\u606d\u559c\uff01\u4f60\u53d1\u5e03\u4e86\u4f60\u7684\u7b2c\u4e00\u4e2a React Native \u5e93\u3002"})]})}function h(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},34723:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/what-library-fdc7531153bfcf553ec30e2ab205480e.png"},43023:(e,n,i)=>{i.d(n,{R:()=>d,x:()=>l});var r=i(63696);const c={},s=r.createContext(c);function d(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:d(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4b97d39c.3f3fe47a.js b/assets/js/4b97d39c.3f3fe47a.js new file mode 100644 index 00000000000..4ff435502f6 --- /dev/null +++ b/assets/js/4b97d39c.3f3fe47a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[56970],{99792:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>t});var r=i(62540),c=i(43023);const s={},d="\u521b\u5efa\u6a21\u5757\u5e93",l={id:"the-new-architecture/create-module-library",title:"\u521b\u5efa\u6a21\u5757\u5e93",description:"React Native \u6709\u4e00\u4e2a\u4e30\u5bcc\u7684\u751f\u6001\u7cfb\u7edf\u5e93\u6765\u89e3\u51b3\u5e38\u89c1\u95ee\u9898\u3002\u6211\u4eec\u5728 reactnative.directory \u7f51\u7ad9\u4e0a\u6536\u96c6 React Native \u5e93\uff0c\u8fd9\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u8d44\u6e90\uff0c\u503c\u5f97\u6bcf\u4e2a React Native \u5f00\u53d1\u8005\u6536\u85cf\u3002",source:"@site/../cndocs/the-new-architecture/create-module-library.md",sourceDirName:"the-new-architecture",slug:"/the-new-architecture/create-module-library",permalink:"/docs/next/the-new-architecture/create-module-library",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/the-new-architecture/create-module-library.md",tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"\u9644\u5f55",permalink:"/docs/next/appendix"},next:{title:"Headless JS\uff08\u540e\u53f0\u4efb\u52a1\uff09",permalink:"/docs/next/headless-js-android"}},a={},t=[{value:"\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d",id:"\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d",level:2},{value:"1. \u521b\u5efa\u5e93",id:"1-\u521b\u5efa\u5e93",level:3},{value:"2. \u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u590d\u5236\u5230\u5e93",id:"2-\u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u590d\u5236\u5230\u5e93",level:3},{value:"\u6d4b\u8bd5\u4f60\u7684\u5e93",id:"\u6d4b\u8bd5\u4f60\u7684\u5e93",level:2},{value:"\u5c06\u4f60\u7684\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u4f7f\u7528\u3002",id:"\u5c06\u4f60\u7684\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u4f7f\u7528",level:2},{value:"\u5728 NPM \u4e0a\u53d1\u5e03\u5e93",id:"\u5728-npm-\u4e0a\u53d1\u5e03\u5e93",level:2}];function o(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,c.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"\u521b\u5efa\u6a21\u5757\u5e93",children:"\u521b\u5efa\u6a21\u5757\u5e93"})}),"\n",(0,r.jsxs)(n.p,{children:["React Native \u6709\u4e00\u4e2a\u4e30\u5bcc\u7684\u751f\u6001\u7cfb\u7edf\u5e93\u6765\u89e3\u51b3\u5e38\u89c1\u95ee\u9898\u3002\u6211\u4eec\u5728 ",(0,r.jsx)(n.a,{href:"https://reactnative.directory",children:"reactnative.directory"})," \u7f51\u7ad9\u4e0a\u6536\u96c6 React Native \u5e93\uff0c\u8fd9\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u8d44\u6e90\uff0c\u503c\u5f97\u6bcf\u4e2a React Native \u5f00\u53d1\u8005\u6536\u85cf\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u6709\u65f6\uff0c\u4f60\u53ef\u80fd\u4f1a\u5f00\u53d1\u4e00\u4e2a\u6a21\u5757\uff0c\u5e0c\u671b\u5c06\u5176\u63d0\u53d6\u5230\u4e00\u4e2a\u5355\u72ec\u7684\u5e93\u4e2d\u4ee5\u4f9b\u4ee3\u7801\u91cd\u7528\u3002\u8fd9\u53ef\u4ee5\u662f\u4e00\u4e2a\u4f60\u5e0c\u671b\u5728\u6240\u6709\u5e94\u7528\u4e2d\u91cd\u7528\u7684\u5e93\uff0c\u4e00\u4e2a\u4f60\u5e0c\u671b\u4f5c\u4e3a\u5f00\u6e90\u7ec4\u4ef6\u5206\u53d1\u5230\u751f\u6001\u7cfb\u7edf\u7684\u5e93\uff0c\u751a\u81f3\u662f\u4e00\u4e2a\u4f60\u5e0c\u671b\u51fa\u552e\u7684\u5e93\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u672c\u6307\u5357\u4e2d\uff0c\u4f60\u5c06\u5b66\u4e60\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u5982\u4f55\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d"}),"\n",(0,r.jsx)(n.li,{children:"\u5982\u4f55\u4f7f\u7528 NPM \u5206\u53d1\u5e93"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d",children:"\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d"}),"\n",(0,r.jsxs)(n.p,{children:["\u4f60\u53ef\u4ee5\u4f7f\u7528 ",(0,r.jsx)(n.a,{href:"https://callstack.github.io/react-native-builder-bob/create",children:(0,r.jsx)(n.code,{children:"create-react-native-library"})})," \u5de5\u5177\u6765\u521b\u5efa\u4e00\u4e2a\u65b0\u5e93\u3002\u8be5\u5de5\u5177\u8bbe\u7f6e\u4e86\u4e00\u4e2a\u65b0\u7684\u5e93\uff0c\u5176\u4e2d\u5305\u542b\u6240\u6709\u9700\u8981\u7684\u6837\u677f\u4ee3\u7801\uff1a\u6240\u6709\u914d\u7f6e\u6587\u4ef6\u548c\u5404\u79cd\u5e73\u53f0\u6240\u9700\u7684\u6587\u4ef6\u3002\u5b83\u8fd8\u5e26\u6709\u4e00\u4e2a\u4ea4\u4e92\u5f0f\u83dc\u5355\uff0c\u5f15\u5bfc\u4f60\u5b8c\u6210\u5e93\u7684\u521b\u5efa\u8fc7\u7a0b\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u8981\u63d0\u53d6\u6a21\u5757\u5230\u4e00\u4e2a\u5355\u72ec\u7684\u5e93\u4e2d\uff0c\u4f60\u53ef\u4ee5\u6309\u7167\u4ee5\u4e0b\u6b65\u9aa4\u64cd\u4f5c\uff1a"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"\u521b\u5efa\u65b0\u5e93"}),"\n",(0,r.jsx)(n.li,{children:"\u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u79fb\u52a8\u5230\u5e93"}),"\n",(0,r.jsx)(n.li,{children:"\u66f4\u65b0\u4ee3\u7801\u4ee5\u53cd\u6620\u65b0\u7684\u7ed3\u6784"}),"\n",(0,r.jsx)(n.li,{children:"\u53d1\u5e03\u5b83\u3002"}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"1-\u521b\u5efa\u5e93",children:"1. \u521b\u5efa\u5e93"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"\u901a\u8fc7\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u5f00\u59cb\u521b\u5efa\u8fc7\u7a0b\uff1a"}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sh",children:"npx create-react-native-library@latest \n"})}),"\n",(0,r.jsxs)(n.ol,{start:"2",children:["\n",(0,r.jsxs)(n.li,{children:["\u4e3a\u4f60\u7684\u6a21\u5757\u6dfb\u52a0\u4e00\u4e2a\u540d\u79f0\u3002\u5b83\u5fc5\u987b\u662f\u4e00\u4e2a\u6709\u6548\u7684 npm \u540d\u79f0\uff0c\u6240\u4ee5\u5e94\u8be5\u5168\u90e8\u662f\u5c0f\u5199\u7684\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"-"})," \u6765\u5206\u9694\u5355\u8bcd\u3002"]}),"\n",(0,r.jsx)(n.li,{children:"\u4e3a\u5305\u6dfb\u52a0\u4e00\u4e2a\u63cf\u8ff0\u3002"}),"\n",(0,r.jsxs)(n.li,{children:["\u7ee7\u7eed\u586b\u5199\u8868\u5355\uff0c\u76f4\u5230\u4f60\u5230\u8fbe\u95ee\u9898 ",(0,r.jsx)(n.em,{children:'"\u4f60\u60f3\u8981\u5f00\u53d1\u4ec0\u4e48\u7c7b\u578b\u7684\u5e93\uff1f"'}),"\n",(0,r.jsx)(n.img,{alt:"What type of Library",src:i(34723).A+"",width:"1744",height:"304"})]}),"\n",(0,r.jsxs)(n.li,{children:["\u4e3a\u4e86\u672c\u6307\u5357\u7684\u76ee\u7684\uff0c\u9009\u62e9 ",(0,r.jsx)(n.em,{children:"Turbo \u6a21\u5757"})," \u9009\u9879\u3002\u6ce8\u610f\u4f60\u53ef\u4ee5\u521b\u5efa\u65b0\u67b6\u6784\u548c\u65e7\u67b6\u6784\u7684\u5e93\u3002"]}),"\n",(0,r.jsx)(n.li,{children:"\u7136\u540e\uff0c\u4f60\u53ef\u4ee5\u9009\u62e9\u4f60\u60f3\u8981\u4e00\u4e2a\u8bbf\u95ee\u5e73\u53f0\u7684\u5e93\uff08Kotlin \u548c Objective-C\uff09\u8fd8\u662f\u4e00\u4e2a\u5171\u4eab\u7684 C++ \u5e93\uff08Android \u548c iOS \u7684 C++\uff09\u3002"}),"\n",(0,r.jsxs)(n.li,{children:["\u6700\u540e\uff0c\u9009\u62e9 ",(0,r.jsx)(n.code,{children:"Test App"})," \u4f5c\u4e3a\u6700\u540e\u4e00\u4e2a\u9009\u9879\u3002\u6b64\u9009\u9879\u521b\u5efa\u4e00\u4e2a\u5df2\u7ecf\u914d\u7f6e\u5728\u5e93\u6587\u4ef6\u5939\u4e2d\u7684\u5355\u72ec\u5e94\u7528\u7684\u5e93\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\u4e00\u65e6\u4ea4\u4e92\u63d0\u793a\u5b8c\u6210\uff0c\u5de5\u5177\u4f1a\u521b\u5efa\u4e00\u4e2a\u6587\u4ef6\u5939\uff0c\u5176\u7ed3\u6784\u5982\u4e0b\uff1a"}),"\n",(0,r.jsx)("img",{class:"half-size",alt:"Folder structure after initializing a new library.",src:"/docs/assets/turbo-native-modules/c++visualstudiocode.webp"}),"\n",(0,r.jsx)(n.p,{children:"\u968f\u610f\u63a2\u7d22\u5de5\u5177\u4e3a\u4f60\u521b\u5efa\u7684\u4ee3\u7801\u3002\u7136\u800c\uff0c\u6700\u91cd\u8981\u7684\u90e8\u5206\u662f\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"android"})," \u6587\u4ef6\u5939\uff1a\u8fd9\u662f Android \u4ee3\u7801\u6240\u5728\u7684\u4f4d\u7f6e"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"cpp"})," \u6587\u4ef6\u5939\uff1a\u8fd9\u662f C++ \u4ee3\u7801\u6240\u5728\u7684\u4f4d\u7f6e"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"ios"})," \u6587\u4ef6\u5939\uff1a\u8fd9\u662f iOS \u4ee3\u7801\u6240\u5728\u7684\u4f4d\u7f6e"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"src"})," \u6587\u4ef6\u5939\uff1a\u8fd9\u662f JS \u4ee3\u7801\u6240\u5728\u7684\u4f4d\u7f6e"]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"package.json"})," \u5df2\u7ecf\u914d\u7f6e\u4e86\u6240\u6709\u4fe1\u606f\uff0c\u5305\u62ec\u5305\u7684\u540d\u79f0\u548c\u63cf\u8ff0\u3002\u6ce8\u610f ",(0,r.jsx)(n.code,{children:"package.json"})," \u4e5f\u5df2\u7ecf\u914d\u7f6e\u4e3a\u8fd0\u884c codegen\u3002"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-json",children:' "codegenConfig": {\n "name": "RNSpec",\n "type": "all",\n "jsSrcsDir": "src",\n "outputDir": {\n "ios": "ios/generated",\n "android": "android/generated"\n },\n "android": {\n "javaPackageName": "com."\n }\n },\n'})}),"\n",(0,r.jsx)(n.p,{children:"\u6700\u540e\uff0c\u5e93\u5df2\u7ecf\u5305\u542b\u6240\u6709\u57fa\u7840\u8bbe\u65bd\uff0c\u4ee5\u4fbf\u5e93\u53ef\u4ee5\u4e0e iOS \u548c Android \u94fe\u63a5\u3002"}),"\n",(0,r.jsx)(n.h3,{id:"2-\u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u590d\u5236\u5230\u5e93",children:"2. \u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u590d\u5236\u5230\u5e93"}),"\n",(0,r.jsxs)(n.p,{children:["\u672c\u6307\u5357\u7684\u5176\u4f59\u90e8\u5206\u5047\u8bbe\u4f60\u6709\u4e00\u4e2a\u672c\u5730 Turbo Native \u6a21\u5757\u5728\u4f60\u7684\u5e94\u7528\u4e2d\uff0c\u9075\u5faa\u7f51\u7ad9\u4e0a\u5176\u4ed6\u6307\u5357\u4e2d\u7684\u6307\u5357\uff1a\u5e73\u53f0\u7279\u5b9a\u7684 Turbo Native \u6a21\u5757\uff0c\u6216 ",(0,r.jsx)(n.a,{href:"./pure-cxx-modules",children:"\u8de8\u5e73\u53f0\u7684 Turbo Native \u6a21\u5757"}),"\u3002\u4f46\u5b83\u4e5f\u9002\u7528\u4e8e\u7ec4\u4ef6\u548c\u65e7\u67b6\u6784\u7684\u6a21\u5757\u548c\u7ec4\u4ef6\u3002\u4f60\u9700\u8981\u590d\u5236\u548c\u66f4\u65b0\u4f60\u9700\u8981\u7684\u6587\u4ef6\u3002"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"[\u65e7\u67b6\u6784\u4e0d\u9700\u8981\u8fd9\u4e00\u6b65]"})," \u5c06\u4f60\u5728\u5e94\u7528\u7684 ",(0,r.jsx)(n.code,{children:"specs"})," \u6587\u4ef6\u5939\u4e2d\u7684\u4ee3\u7801\u79fb\u52a8\u5230 ",(0,r.jsx)(n.code,{children:"create-react-native-library"})," \u521b\u5efa\u7684 ",(0,r.jsx)(n.code,{children:"src"})," \u6587\u4ef6\u5939\u4e2d\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u66f4\u65b0 ",(0,r.jsx)(n.code,{children:"index.ts"})," \u6587\u4ef6\u4ee5\u6b63\u786e\u5bfc\u51fa Turbo Native \u6a21\u5757\u89c4\u8303\uff0c\u4ee5\u4fbf\u53ef\u4ee5\u4ece\u5e93\u4e2d\u8bbf\u95ee\u5b83\u3002\u4f8b\u5982\uff1a"]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",children:"import NativeSampleModule from './NativeSampleModule';\n\nexport default NativeSampleModule;\n"})}),"\n",(0,r.jsxs)(n.ol,{start:"3",children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"\u590d\u5236\u539f\u751f\u6a21\u5757\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u7528\u4f60\u5728\u5e94\u7528\u4e2d\u4e3a\u539f\u751f\u6a21\u5757\u7f16\u5199\u7684\u4ee3\u7801\u66ff\u6362 ",(0,r.jsx)(n.code,{children:"android/src/main/java/com/"})," \u4e2d\u7684\u4ee3\u7801\uff0c\u5982\u679c\u6709\u7684\u8bdd\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u7528\u4f60\u5728\u5e94\u7528\u4e2d\u4e3a\u539f\u751f\u6a21\u5757\u7f16\u5199\u7684\u4ee3\u7801\u66ff\u6362 ",(0,r.jsx)(n.code,{children:"ios"})," \u6587\u4ef6\u5939\u4e2d\u7684\u4ee3\u7801\uff0c\u5982\u679c\u6709\u7684\u8bdd\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u7528\u4f60\u5728\u5e94\u7528\u4e2d\u4e3a\u539f\u751f\u6a21\u5757\u7f16\u5199\u7684\u4ee3\u7801\u66ff\u6362 ",(0,r.jsx)(n.code,{children:"cpp"})," \u6587\u4ef6\u5939\u4e2d\u7684\u4ee3\u7801\uff0c\u5982\u679c\u6709\u7684\u8bdd\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"[\u65e7\u67b6\u6784\u4e0d\u9700\u8981\u8fd9\u4e00\u6b65]"})," \u66f4\u65b0\u6240\u6709\u4ece\u65e7\u89c4\u8303\u540d\u79f0\u5230\u65b0\u89c4\u8303\u540d\u79f0\u7684\u5f15\u7528\uff0c\u65b0\u89c4\u8303\u540d\u79f0\u5728\u5e93\u7684 ",(0,r.jsx)(n.code,{children:"package.json"})," \u6587\u4ef6\u7684 ",(0,r.jsx)(n.code,{children:"codegenConfig"})," \u5b57\u6bb5\u4e2d\u5b9a\u4e49\u3002\u4f8b\u5982\uff0c\u5982\u679c\u5e94\u7528\u7684 ",(0,r.jsx)(n.code,{children:"package.json"})," \u4e2d\u8bbe\u7f6e ",(0,r.jsx)(n.code,{children:"AppSpecs"})," \u4e3a ",(0,r.jsx)(n.code,{children:"codegenConfig.name"}),"\uff0c\u800c\u5728\u5e93\u4e2d\u79f0\u4e3a ",(0,r.jsx)(n.code,{children:"RNNativeSampleModuleSpec"}),"\uff0c\u5219\u5fc5\u987b\u5c06 ",(0,r.jsx)(n.code,{children:"AppSpecs"})," \u7684\u6240\u6709\u51fa\u73b0\u66ff\u6362\u4e3a ",(0,r.jsx)(n.code,{children:"RNNativeSampleModuleSpec"}),"\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\u8fd9\u5c31\u5b8c\u6210\u4e86\uff01\u4f60\u5df2\u7ecf\u5c06\u6240\u6709\u9700\u8981\u7684\u4ee3\u7801\u4ece\u5e94\u7528\u79fb\u52a8\u5230\u4e00\u4e2a\u5355\u72ec\u7684\u5e93\u4e2d\u3002"}),"\n",(0,r.jsx)(n.h2,{id:"\u6d4b\u8bd5\u4f60\u7684\u5e93",children:"\u6d4b\u8bd5\u4f60\u7684\u5e93"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"create-react-native-library"})," \u5e26\u6709\u4e00\u4e2a\u6709\u7528\u7684\u793a\u4f8b\u5e94\u7528\uff0c\u5df2\u914d\u7f6e\u4e3a\u4e0e\u5e93\u6b63\u5e38\u5de5\u4f5c\u3002\u8fd9\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u6d4b\u8bd5\u65b9\u6cd5\uff01"]}),"\n",(0,r.jsxs)(n.p,{children:["\u5982\u679c\u4f60\u67e5\u770b ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\uff0c\u4f60\u4f1a\u53d1\u73b0\u4e00\u4e2a\u4e0e ",(0,r.jsx)(n.a,{href:"https://github.com/react-native-community/template",children:(0,r.jsx)(n.code,{children:"react-native-community/template"})})," \u521b\u5efa\u7684\u65b0 React Native \u5e94\u7528\u76f8\u540c\u7684\u7ed3\u6784\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u8981\u6d4b\u8bd5\u4f60\u7684\u5e93\uff1a"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\u5bfc\u822a\u5230 ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"yarn install"})," \u6765\u5b89\u88c5\u6240\u6709\u4f9d\u8d56\u9879\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u5bf9\u4e8e iOS \u6765\u8bf4\uff0c\u4f60\u9700\u8981\u5b89\u88c5 CocoaPods\uff1a",(0,r.jsx)(n.code,{children:"cd ios && pod install"}),"\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn android"})," \u4ece ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u6784\u5efa\u548c\u8fd0\u884c Android\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn ios"})," \u4ece ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u6784\u5efa\u548c\u8fd0\u884c iOS\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5c06\u4f60\u7684\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u4f7f\u7528",children:"\u5c06\u4f60\u7684\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u4f7f\u7528\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u4f60\u53ef\u80fd\u5e0c\u671b\u5c06\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u91cd\u7528\u4e8e\u4f60\u7684\u5e94\u7528\uff0c\u800c\u4e0d\u5c06\u5176\u53d1\u5e03\u5230 NPM\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u4f60\u53ef\u80fd\u4f1a\u9047\u5230\u4e00\u4e2a\u573a\u666f\uff0c\u5373\u4f60\u7684\u5e93\u4f5c\u4e3a\u5e94\u7528\u7684\u5144\u5f1f\u6587\u4ef6\u5939\u5b58\u5728\u3002"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"Development\n\u251c\u2500\u2500 App\n\u2514\u2500\u2500 Library\n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u4f60\u4e5f\u53ef\u4ee5\u5728\u8fd9\u79cd\u60c5\u51b5\u4e2d\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"create-react-native-library"})," \u521b\u5efa\u7684\u5e93\u3002"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\u901a\u8fc7\u5bfc\u822a\u5230 ",(0,r.jsx)(n.code,{children:"App"})," \u6587\u4ef6\u5939\u5e76\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"yarn add ../Library"})," \u5c06\u4f60\u7684\u5e93\u6dfb\u52a0\u5230\u5e94\u7528\u4e2d\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u5bf9\u4e8e iOS \u6765\u8bf4\uff0c\u5bfc\u822a\u5230 ",(0,r.jsx)(n.code,{children:"App/ios"})," \u6587\u4ef6\u5939\u5e76\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"bundle exec pod install"})," \u6765\u5b89\u88c5\u4f60\u7684\u4f9d\u8d56\u9879\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u66f4\u65b0 ",(0,r.jsx)(n.code,{children:"App.tsx"})," \u4ee3\u7801\u4ee5\u5bfc\u5165\u5e93\u4e2d\u7684\u4ee3\u7801\u3002\u4f8b\u5982\uff1a"]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:"import NativeSampleModule from '../Library/src/index';\n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u5982\u679c\u4f60\u73b0\u5728\u8fd0\u884c\u4f60\u7684\u5e94\u7528\uff0cMetro \u5c06\u627e\u4e0d\u5230\u5b83\u9700\u8981\u63d0\u4f9b\u7ed9\u5e94\u7528\u7684 JS \u6587\u4ef6\u3002\u8fd9\u662f\u56e0\u4e3a Metro \u5c06\u4ece ",(0,r.jsx)(n.code,{children:"App"})," \u6587\u4ef6\u5939\u5f00\u59cb\u8fd0\u884c\uff0c\u5e76\u4e14\u65e0\u6cd5\u8bbf\u95ee\u4f4d\u4e8e ",(0,r.jsx)(n.code,{children:"Library"})," \u6587\u4ef6\u5939\u4e2d\u7684 JS \u6587\u4ef6\u3002\u8981\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u8ba9\u6211\u4eec\u66f4\u65b0 ",(0,r.jsx)(n.code,{children:"metro.config.js"})," \u6587\u4ef6\uff0c\u5982\u4e0b\u6240\u793a\uff1a"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:"const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config');\n\n/**\n * Metro configuration\n * https://reactnative.dev/docs/metro\n *\n * @type {import('metro-config').MetroConfig}\n */\n+ const path = require('path');\n\n- const config = {}\n+ const config = {\n+ // Make Metro able to resolve required external dependencies\n+ watchFolders: [\n+ path.resolve(__dirname, '../Library'),\n+ ],\n+ resolver: {\n+ extraNodeModules: {\n+ 'react-native': path.resolve(__dirname, 'node_modules/react-native'),\n+ },\n+ },\n+};\n\nmodule.exports = mergeConfig(getDefaultConfig(__dirname), config);\n"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"watchFolders"})," \u914d\u7f6e\u544a\u8bc9 Metro \u76d1\u89c6\u4e00\u4e9b\u9644\u52a0\u8def\u5f84\u4e2d\u7684\u6587\u4ef6\u548c\u66f4\u6539\uff0c\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\u662f ",(0,r.jsx)(n.code,{children:"../Library"})," \u8def\u5f84\uff0c\u5176\u4e2d\u5305\u542b\u4f60\u9700\u8981 ",(0,r.jsx)(n.code,{children:"src/index"})," \u6587\u4ef6\u3002",(0,r.jsx)(n.code,{children:"resolver"})," \u5c5e\u6027\u662f\u5fc5\u9700\u7684\uff0c\u4ee5\u4fbf\u4e3a\u5e93\u63d0\u4f9b\u5e94\u7528\u4f7f\u7528\u7684 React Native \u4ee3\u7801\u3002\u5e93\u53ef\u80fd\u4f1a\u5f15\u7528\u5e76\u5bfc\u5165 React Native \u4ee3\u7801\uff1a\u6ca1\u6709\u989d\u5916\u7684\u89e3\u6790\u5668\uff0c\u5e93\u4e2d\u7684\u5bfc\u5165\u5c06\u5931\u8d25\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u6b64\u65f6\uff0c\u4f60\u53ef\u4ee5\u50cf\u5f80\u5e38\u4e00\u6837\u6784\u5efa\u548c\u8fd0\u884c\u4f60\u7684\u5e94\u7528\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn android"})," \u4ece ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u6784\u5efa\u548c\u8fd0\u884c Android\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn ios"})," \u4ece ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u6784\u5efa\u548c\u8fd0\u884c iOS\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5728-npm-\u4e0a\u53d1\u5e03\u5e93",children:"\u5728 NPM \u4e0a\u53d1\u5e03\u5e93"}),"\n",(0,r.jsxs)(n.p,{children:["\u53d1\u5e03\u5230 NPM \u7684\u8bbe\u7f6e\u5df2\u7ecf\u5230\u4f4d\uff0c\u611f\u8c22 ",(0,r.jsx)(n.code,{children:"create-react-native-library"}),"\u3002"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\u5728\u4f60\u7684\u6a21\u5757\u4e2d\u5b89\u88c5\u4f9d\u8d56\u9879 ",(0,r.jsx)(n.code,{children:"yarn install"}),"\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"yarn prepare"})," \u6784\u5efa\u5e93\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn release"})," \u53d1\u5e03\u5b83\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\u7a0d\u7b49\u7247\u523b\uff0c\u4f60\u4f1a\u5728 NPM \u4e0a\u627e\u5230\u4f60\u7684\u5e93\u3002\u8981\u9a8c\u8bc1\u8fd9\u4e00\u70b9\uff0c\u8fd0\u884c\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm view \n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u5176\u4e2d ",(0,r.jsx)(n.code,{children:"package.name"})," \u662f\u4f60\u8bbe\u7f6e\u7684 ",(0,r.jsx)(n.code,{children:"name"}),"\uff0c\u5728\u5e93\u7684 ",(0,r.jsx)(n.code,{children:"package.json"})," \u6587\u4ef6\u4e2d\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u73b0\u5728\uff0c\u4f60\u53ef\u4ee5\u901a\u8fc7\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u5728\u4f60\u7684\u5e94\u7528\u4e2d\u5b89\u88c5\u5e93\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"yarn add \n"})}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsxs)(n.p,{children:["\u5bf9\u4e8e iOS \u6765\u8bf4\uff0c\u6bcf\u5f53\u5b89\u88c5\u4e00\u4e2a\u5e26\u6709\u539f\u751f\u4ee3\u7801\u7684\u65b0\u6a21\u5757\u65f6\uff0c\u4f60\u5fc5\u987b\u91cd\u65b0\u5b89\u88c5 CocoaPods\uff0c\u901a\u8fc7\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"bundle exec pod install"}),"\uff08\u63a8\u8350\uff09\u6216 ",(0,r.jsx)(n.code,{children:"pod install"}),"\uff08\u4e0d\u63a8\u8350\uff09\u3002"]})}),"\n",(0,r.jsx)(n.p,{children:"\u606d\u559c\uff01\u4f60\u53d1\u5e03\u4e86\u4f60\u7684\u7b2c\u4e00\u4e2a React Native \u5e93\u3002"})]})}function h(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},34723:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/what-library-fdc7531153bfcf553ec30e2ab205480e.png"},43023:(e,n,i)=>{i.d(n,{R:()=>d,x:()=>l});var r=i(63696);const c={},s=r.createContext(c);function d(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:d(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4b97d39c.c8f5c173.js b/assets/js/4b97d39c.4faea7e8.js similarity index 99% rename from assets/js/4b97d39c.c8f5c173.js rename to assets/js/4b97d39c.4faea7e8.js index 7dddb703356..d5c588a08a1 100644 --- a/assets/js/4b97d39c.c8f5c173.js +++ b/assets/js/4b97d39c.4faea7e8.js @@ -37,7 +37,7 @@ const metadata = { "frontMatter": {}, "sidebar": "docs", "previous": { - "title": "appendix", + "title": "附录", "permalink": "/docs/next/appendix" }, "next": { diff --git a/assets/js/572bad33.170d7d01.js b/assets/js/572bad33.170d7d01.js new file mode 100644 index 00000000000..70cd5354a31 --- /dev/null +++ b/assets/js/572bad33.170d7d01.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[71698],{4523:(e,n,d)=>{d.r(n),d.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>x,frontMatter:()=>s,metadata:()=>t,toc:()=>o});var r=d(62540),c=d(43023);const s={},i="\u9644\u5f55",t={id:"appendix",title:"\u9644\u5f55",description:"\u4e00\u3001\u672f\u8bed",source:"@site/versioned_docs/version-0.76/appendix.md",sourceDirName:".",slug:"/appendix",permalink:"/docs/appendix",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/appendix.md",tags:[],version:"0.76",frontMatter:{},sidebar:"docs",previous:{title:"Fabric Native Components Introduction",permalink:"/docs/fabric-native-components-introduction"},next:{title:"\u521b\u5efa\u6a21\u5757\u5e93",permalink:"/docs/the-new-architecture/create-module-library"}},l={},o=[{value:"\u4e00\u3001\u672f\u8bed",id:"\u4e00\u672f\u8bed",level:2},{value:"II. Codegen \u7c7b\u578b",id:"ii-codegen-\u7c7b\u578b",level:2},{value:"Notes:",id:"notes",level:3}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,c.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"\u9644\u5f55",children:"\u9644\u5f55"})}),"\n",(0,r.jsx)(n.h2,{id:"\u4e00\u672f\u8bed",children:"\u4e00\u3001\u672f\u8bed"}),"\n",(0,r.jsxs)(n.p,{children:["\u6574\u4e2a\u4e0e\u65b0\u67b6\u6784\u76f8\u5173\u7684\u6307\u5357\u5c06\u9075\u5faa\u4ee5\u4e0b",(0,r.jsx)(n.strong,{children:"\u672f\u8bed"}),"\uff1a"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Spec"})," - TypeScript \u6216 Flow \u5f62\u5f0f\u7684\u4ee3\u7801\uff0c\u7528\u4e8e\u63cf\u8ff0 Turbo Native \u6a21\u5757\u6216 Fabric \u539f\u751f\u7ec4\u4ef6\u7684 API\u3002 ",(0,r.jsx)(n.strong,{children:"Codegen"})," \u6839\u636e\u5b83\u6765\u751f\u6210\u6837\u677f\u4ee3\u7801\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Fabric \u539f\u751f\u7ec4\u4ef6"})," - \u6307\u5df2\u7ecf\u9002\u914d\u4ee5\u4e0e\u65b0\u67b6\u6784\uff08\u5373\u65b0\u6e32\u67d3\u5668\uff09\u826f\u597d\u534f\u540c\u5de5\u4f5c\u7684\u7ec4\u4ef6\u3002\u4e3a\u7b80\u6d01\u8d77\u89c1\uff0c\u60a8\u53ef\u80fd\u4f1a\u770b\u5230\u5b83\u4eec\u88ab\u79f0\u4e3a",(0,r.jsx)(n.strong,{children:"Fabric \u7ec4\u4ef6"}),"\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Turbo \u539f\u751f\u6a21\u5757"})," - \u6307\u5df2\u7ecf\u9002\u914d\u4ee5\u4e0e\u65b0\u67b6\u6784\uff08\u5373\u65b0\u539f\u751f\u6a21\u5757\u7cfb\u7edf\uff09\u826f\u597d\u534f\u540c\u5de5\u4f5c\u7684\u6a21\u5757\u3002\u4e3a\u7b80\u6d01\u8d77\u89c1\uff0c\u60a8\u53ef\u80fd\u4f1a\u770b\u5230\u5b83\u4eec\u88ab\u79f0\u4e3a",(0,r.jsx)(n.strong,{children:"Turbo \u6a21\u5757"}),"\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u4f20\u7edf\u539f\u751f\u7ec4\u4ef6"})," - \u6307\u8fd0\u884c\u5728 React Native \u65e7\u67b6\u6784\u4e0a\u7684\u7ec4\u4ef6\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u4f20\u7edf\u539f\u751f\u6a21\u5757"})," - \u6307\u8fd0\u884c\u5728 React Native \u65e7\u67b6\u6784\u4e0a\u7684\u6a21\u5757\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"ii-codegen-\u7c7b\u578b",children:"II. Codegen \u7c7b\u578b"}),"\n",(0,r.jsx)(n.p,{children:"\u60a8\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u8868\u683c\u4f5c\u4e3a\u53c2\u8003\uff0c\u4e86\u89e3\u6bcf\u79cd\u7c7b\u578b\u5728\u4e0d\u540c\u5e73\u53f0\u4e0a\u7684\u652f\u6301\u60c5\u51b5\uff1a"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Flow"}),(0,r.jsx)(n.th,{children:"TypeScript"}),(0,r.jsx)(n.th,{children:"Flow Nullable Support"}),(0,r.jsx)(n.th,{children:"TypeScript Nullable Support"}),(0,r.jsx)(n.th,{children:"Android (Java)"}),(0,r.jsx)(n.th,{children:"iOS (ObjC)"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"?string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"string | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"NSString"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"boolean"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"boolean"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"?boolean"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"boolean | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"Boolean"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"NSNumber"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:["Object Literal",(0,r.jsx)("br",{}),(0,r.jsx)("code",{children:"{| foo: string, ...|}"})]}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"{ foo: string, ...} as const"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"?{| foo: string, ...|}"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"?{ foo: string, ...} as const"})}),(0,r.jsx)(n.td,{children:"-"}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:["Object [",(0,r.jsx)(n.a,{href:"#notes",children:"1"}),"]"]}),(0,r.jsxs)(n.td,{children:["Object [",(0,r.jsx)(n.a,{href:"#notes",children:"1"}),"]"]}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"?Object"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Object | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"ReadableMap"})}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"@"})," (untyped dictionary)"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Array"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Array"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"?Array"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Array | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"ReadableArray"})}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"NSArray"})," (or ",(0,r.jsx)(n.code,{children:"RCTConvertVecToArray"})," when used inside objects)"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"Function"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"Function"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"?Function"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Function | null"})}),(0,r.jsx)(n.td,{children:"-"}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Promise"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Promise"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"?Promise"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Promise | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"com.facebook.react.bridge.Promise"})}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"RCTPromiseResolve"})," and ",(0,r.jsx)(n.code,{children:"RCTPromiseRejectBlock"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:["Type Unions",(0,r.jsx)("br",{}),(0,r.jsx)("code",{children:"'SUCCESS'|'FAIL'"})]}),(0,r.jsxs)(n.td,{children:["Type Unions",(0,r.jsx)("br",{}),(0,r.jsx)("code",{children:"'SUCCESS'|'FAIL'"})]}),(0,r.jsx)(n.td,{children:"Only as callbacks"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:"-"}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:["Callbacks",(0,r.jsx)("br",{}),(0,r.jsx)(n.code,{children:"() =>"})]}),(0,r.jsxs)(n.td,{children:["Callbacks",(0,r.jsx)("br",{}),(0,r.jsx)(n.code,{children:"() =>"})]}),(0,r.jsx)(n.td,{children:"Yes"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"com.facebook.react.bridge.Callback"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"RCTResponseSenderBlock"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"number"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"number"})}),(0,r.jsx)(n.td,{children:"No"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"double"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"NSNumber"})})]})]})]}),"\n",(0,r.jsx)(n.h3,{id:"notes",children:"Notes:"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)("b",{children:"[1]"})," \u6211\u4eec\u5f3a\u70c8\u5efa\u8bae\u4f7f\u7528\u5bf9\u8c61\u5b57\u9762\u91cf\u800c\u4e0d\u662f\u5bf9\u8c61\u3002"]}),"\n",(0,r.jsx)(n.admonition,{type:"info",children:(0,r.jsxs)(n.p,{children:["\u60a8\u4e5f\u53ef\u4ee5\u53c2\u8003 React Native \u6838\u5fc3\u6a21\u5757\u7684 JavaScript \u89c4\u8303\u3002\u8fd9\u4e9b\u4f4d\u4e8e React Native \u4ed3\u5e93\u7684 ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/react-native/tree/main/packages/react-native/Libraries",children:(0,r.jsx)(n.code,{children:"Libraries/"})})," \u76ee\u5f55\u4e2d\u3002"]})})]})}function x(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},43023:(e,n,d)=>{d.d(n,{R:()=>i,x:()=>t});var r=d(63696);const c={},s=r.createContext(c);function i(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:i(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/572bad33.c0023121.js b/assets/js/572bad33.c0023121.js deleted file mode 100644 index 5cda282572b..00000000000 --- a/assets/js/572bad33.c0023121.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[71698],{4523:(e,n,d)=>{d.r(n),d.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>x,frontMatter:()=>s,metadata:()=>t,toc:()=>o});var r=d(62540),c=d(43023);const s={},i=void 0,t={id:"appendix",title:"appendix",description:"\u4e00\u3001\u672f\u8bed",source:"@site/versioned_docs/version-0.76/appendix.md",sourceDirName:".",slug:"/appendix",permalink:"/docs/appendix",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/appendix.md",tags:[],version:"0.76",frontMatter:{},sidebar:"docs",previous:{title:"Fabric Native Components Introduction",permalink:"/docs/fabric-native-components-introduction"},next:{title:"\u521b\u5efa\u6a21\u5757\u5e93",permalink:"/docs/the-new-architecture/create-module-library"}},l={},o=[{value:"\u4e00\u3001\u672f\u8bed",id:"\u4e00\u672f\u8bed",level:2},{value:"II. Codegen \u7c7b\u578b",id:"ii-codegen-\u7c7b\u578b",level:2},{value:"Notes:",id:"notes",level:3}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,c.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"\u4e00\u672f\u8bed",children:"\u4e00\u3001\u672f\u8bed"}),"\n",(0,r.jsxs)(n.p,{children:["\u6574\u4e2a\u4e0e\u65b0\u67b6\u6784\u76f8\u5173\u7684\u6307\u5357\u5c06\u9075\u5faa\u4ee5\u4e0b",(0,r.jsx)(n.strong,{children:"\u672f\u8bed"}),"\uff1a"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Spec"})," - TypeScript or Flow code that describes the API for a Turbo Native Module or Fabric Native component. Used by ",(0,r.jsx)(n.strong,{children:"Codegen"})," to generate boilerplate code."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Fabric \u539f\u751f\u7ec4\u4ef6"})," - \u6307\u5df2\u7ecf\u9002\u914d\u4ee5\u4e0e\u65b0\u67b6\u6784\uff08\u5373\u65b0\u6e32\u67d3\u5668\uff09\u826f\u597d\u534f\u540c\u5de5\u4f5c\u7684\u7ec4\u4ef6\u3002\u4e3a\u7b80\u6d01\u8d77\u89c1\uff0c\u60a8\u53ef\u80fd\u4f1a\u770b\u5230\u5b83\u4eec\u88ab\u79f0\u4e3a",(0,r.jsx)(n.strong,{children:"Fabric \u7ec4\u4ef6"}),"\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Turbo \u539f\u751f\u6a21\u5757"})," - \u6307\u5df2\u7ecf\u9002\u914d\u4ee5\u4e0e\u65b0\u67b6\u6784\uff08\u5373\u65b0\u539f\u751f\u6a21\u5757\u7cfb\u7edf\uff09\u826f\u597d\u534f\u540c\u5de5\u4f5c\u7684\u6a21\u5757\u3002\u4e3a\u7b80\u6d01\u8d77\u89c1\uff0c\u60a8\u53ef\u80fd\u4f1a\u770b\u5230\u5b83\u4eec\u88ab\u79f0\u4e3a",(0,r.jsx)(n.strong,{children:"Turbo \u6a21\u5757"}),"\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u4f20\u7edf\u539f\u751f\u7ec4\u4ef6"})," - \u6307\u8fd0\u884c\u5728\u65e7\u7248 React Native \u67b6\u6784\u4e0a\u7684\u7ec4\u4ef6\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u4f20\u7edf\u539f\u751f\u6a21\u5757"})," - \u6307\u8fd0\u884c\u5728\u65e7\u7248 React Native \u67b6\u6784\u4e0a\u7684\u6a21\u5757\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"ii-codegen-\u7c7b\u578b",children:"II. Codegen \u7c7b\u578b"}),"\n",(0,r.jsx)(n.p,{children:"\u60a8\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u8868\u683c\u4f5c\u4e3a\u53c2\u8003\uff0c\u4e86\u89e3\u6bcf\u79cd\u7c7b\u578b\u5728\u4e0d\u540c\u5e73\u53f0\u4e0a\u7684\u652f\u6301\u60c5\u51b5\uff1a"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Flow"}),(0,r.jsx)(n.th,{children:"TypeScript"}),(0,r.jsx)(n.th,{children:"Flow Nullable Support"}),(0,r.jsx)(n.th,{children:"TypeScript Nullable Support"}),(0,r.jsx)(n.th,{children:"Android (Java)"}),(0,r.jsx)(n.th,{children:"iOS (ObjC)"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"?string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"string | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"NSString"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"boolean"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"boolean"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"?boolean"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"boolean | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"Boolean"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"NSNumber"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:["Object Literal",(0,r.jsx)("br",{}),(0,r.jsx)("code",{children:"{| foo: string, ...|}"})]}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"{ foo: string, ...} as const"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"?{| foo: string, ...|}"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"?{ foo: string, ...} as const"})}),(0,r.jsx)(n.td,{children:"-"}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:["Object [",(0,r.jsx)(n.a,{href:"#notes",children:"1"}),"]"]}),(0,r.jsxs)(n.td,{children:["Object [",(0,r.jsx)(n.a,{href:"#notes",children:"1"}),"]"]}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"?Object"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Object | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"ReadableMap"})}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"@"})," (untyped dictionary)"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Array"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Array"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"?Array"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Array | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"ReadableArray"})}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"NSArray"})," (or ",(0,r.jsx)(n.code,{children:"RCTConvertVecToArray"})," when used inside objects)"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"Function"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"Function"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"?Function"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Function | null"})}),(0,r.jsx)(n.td,{children:"-"}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Promise"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Promise"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"?Promise"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Promise | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"com.facebook.react.bridge.Promise"})}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"RCTPromiseResolve"})," and ",(0,r.jsx)(n.code,{children:"RCTPromiseRejectBlock"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:["Type Unions",(0,r.jsx)("br",{}),(0,r.jsx)("code",{children:"'SUCCESS'|'FAIL'"})]}),(0,r.jsxs)(n.td,{children:["Type Unions",(0,r.jsx)("br",{}),(0,r.jsx)("code",{children:"'SUCCESS'|'FAIL'"})]}),(0,r.jsx)(n.td,{children:"Only as callbacks"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:"-"}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:["Callbacks",(0,r.jsx)("br",{}),(0,r.jsx)(n.code,{children:"() =>"})]}),(0,r.jsxs)(n.td,{children:["Callbacks",(0,r.jsx)("br",{}),(0,r.jsx)(n.code,{children:"() =>"})]}),(0,r.jsx)(n.td,{children:"Yes"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"com.facebook.react.bridge.Callback"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"RCTResponseSenderBlock"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"number"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"number"})}),(0,r.jsx)(n.td,{children:"No"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"double"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"NSNumber"})})]})]})]}),"\n",(0,r.jsx)(n.h3,{id:"notes",children:"Notes:"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)("b",{children:"[1]"})," \u6211\u4eec\u5f3a\u70c8\u5efa\u8bae\u4f7f\u7528\u5bf9\u8c61\u5b57\u9762\u91cf\u800c\u4e0d\u662f\u5bf9\u8c61\u3002"]}),"\n",(0,r.jsx)(n.admonition,{type:"info",children:(0,r.jsxs)(n.p,{children:["\u60a8\u4e5f\u53ef\u4ee5\u53c2\u8003 React Native \u6838\u5fc3\u6a21\u5757\u7684 JavaScript \u89c4\u8303\u3002\u8fd9\u4e9b\u4f4d\u4e8e React Native \u4ed3\u5e93\u7684 ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/react-native/tree/main/packages/react-native/Libraries",children:(0,r.jsx)(n.code,{children:"Libraries/"})})," \u76ee\u5f55\u4e2d\u3002"]})})]})}function x(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},43023:(e,n,d)=>{d.d(n,{R:()=>i,x:()=>t});var r=d(63696);const c={},s=r.createContext(c);function i(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:i(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/572bad33.700f19ea.js b/assets/js/572bad33.fce3f13d.js similarity index 97% rename from assets/js/572bad33.700f19ea.js rename to assets/js/572bad33.fce3f13d.js index 8763ef8ccd3..8b4fdac2c3a 100644 --- a/assets/js/572bad33.700f19ea.js +++ b/assets/js/572bad33.fce3f13d.js @@ -20,10 +20,10 @@ __webpack_require__.r(__webpack_exports__); const frontMatter = {}; -const contentTitle = undefined; +const contentTitle = '附录'; const metadata = { "id": "appendix", - "title": "appendix", + "title": "附录", "description": "一、术语", "source": "@site/versioned_docs/version-0.76/appendix.md", "sourceDirName": ".", @@ -69,8 +69,10 @@ function _createMdxContent(props) { a: "a", admonition: "admonition", code: "code", + h1: "h1", h2: "h2", h3: "h3", + header: "header", li: "li", p: "p", strong: "strong", @@ -85,7 +87,12 @@ function _createMdxContent(props) { ...props.components }; return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { - children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.h2, { + children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.header, { + children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.h1, { + id: "附录", + children: "附录" + }) + }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.h2, { id: "一术语", children: "一、术语" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, { @@ -97,9 +104,9 @@ function _createMdxContent(props) { children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.strong, { children: "Spec" - }), " - TypeScript or Flow code that describes the API for a Turbo Native Module or Fabric Native component. Used by ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.strong, { + }), " - TypeScript 或 Flow 形式的代码,用于描述 Turbo Native 模块或 Fabric 原生组件的 API。 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.strong, { children: "Codegen" - }), " to generate boilerplate code."] + }), " 根据它来生成样板代码。"] }), "\n"] }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.li, { children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, { @@ -121,13 +128,13 @@ function _createMdxContent(props) { children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.strong, { children: "传统原生组件" - }), " - 指运行在旧版 React Native 架构上的组件。"] + }), " - 指运行在 React Native 旧架构上的组件。"] }), "\n"] }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.li, { children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.strong, { children: "传统原生模块" - }), " - 指运行在旧版 React Native 架构上的模块。"] + }), " - 指运行在 React Native 旧架构上的模块。"] }), "\n"] }), "\n"] }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.h2, { diff --git a/assets/js/65200372.1c1e8102.js b/assets/js/65200372.1c1e8102.js deleted file mode 100644 index 92c496ed569..00000000000 --- a/assets/js/65200372.1c1e8102.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[84846],{29364:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>t});var r=i(62540),c=i(43023);const s={},d="\u521b\u5efa\u6a21\u5757\u5e93",l={id:"the-new-architecture/create-module-library",title:"\u521b\u5efa\u6a21\u5757\u5e93",description:"React Native \u6709\u4e00\u4e2a\u4e30\u5bcc\u7684\u751f\u6001\u7cfb\u7edf\u5e93\u6765\u89e3\u51b3\u5e38\u89c1\u95ee\u9898\u3002\u6211\u4eec\u5728 reactnative.directory \u7f51\u7ad9\u4e0a\u6536\u96c6 React Native \u5e93\uff0c\u8fd9\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u8d44\u6e90\uff0c\u503c\u5f97\u6bcf\u4e2a React Native \u5f00\u53d1\u8005\u6536\u85cf\u3002",source:"@site/versioned_docs/version-0.76/the-new-architecture/create-module-library.md",sourceDirName:"the-new-architecture",slug:"/the-new-architecture/create-module-library",permalink:"/docs/the-new-architecture/create-module-library",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/the-new-architecture/create-module-library.md",tags:[],version:"0.76",frontMatter:{},sidebar:"docs",previous:{title:"appendix",permalink:"/docs/appendix"},next:{title:"Headless JS\uff08\u540e\u53f0\u4efb\u52a1\uff09",permalink:"/docs/headless-js-android"}},a={},t=[{value:"\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d",id:"\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d",level:2},{value:"1. \u521b\u5efa\u5e93",id:"1-\u521b\u5efa\u5e93",level:3},{value:"2. \u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u590d\u5236\u5230\u5e93",id:"2-\u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u590d\u5236\u5230\u5e93",level:3},{value:"\u6d4b\u8bd5\u4f60\u7684\u5e93",id:"\u6d4b\u8bd5\u4f60\u7684\u5e93",level:2},{value:"\u5c06\u4f60\u7684\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u4f7f\u7528\u3002",id:"\u5c06\u4f60\u7684\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u4f7f\u7528",level:2},{value:"\u5728 NPM \u4e0a\u53d1\u5e03\u5e93",id:"\u5728-npm-\u4e0a\u53d1\u5e03\u5e93",level:2}];function o(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,c.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"\u521b\u5efa\u6a21\u5757\u5e93",children:"\u521b\u5efa\u6a21\u5757\u5e93"})}),"\n",(0,r.jsxs)(n.p,{children:["React Native \u6709\u4e00\u4e2a\u4e30\u5bcc\u7684\u751f\u6001\u7cfb\u7edf\u5e93\u6765\u89e3\u51b3\u5e38\u89c1\u95ee\u9898\u3002\u6211\u4eec\u5728 ",(0,r.jsx)(n.a,{href:"https://reactnative.directory",children:"reactnative.directory"})," \u7f51\u7ad9\u4e0a\u6536\u96c6 React Native \u5e93\uff0c\u8fd9\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u8d44\u6e90\uff0c\u503c\u5f97\u6bcf\u4e2a React Native \u5f00\u53d1\u8005\u6536\u85cf\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u6709\u65f6\uff0c\u4f60\u53ef\u80fd\u4f1a\u5f00\u53d1\u4e00\u4e2a\u6a21\u5757\uff0c\u5e0c\u671b\u5c06\u5176\u63d0\u53d6\u5230\u4e00\u4e2a\u5355\u72ec\u7684\u5e93\u4e2d\u4ee5\u4f9b\u4ee3\u7801\u91cd\u7528\u3002\u8fd9\u53ef\u4ee5\u662f\u4e00\u4e2a\u4f60\u5e0c\u671b\u5728\u6240\u6709\u5e94\u7528\u4e2d\u91cd\u7528\u7684\u5e93\uff0c\u4e00\u4e2a\u4f60\u5e0c\u671b\u4f5c\u4e3a\u5f00\u6e90\u7ec4\u4ef6\u5206\u53d1\u5230\u751f\u6001\u7cfb\u7edf\u7684\u5e93\uff0c\u751a\u81f3\u662f\u4e00\u4e2a\u4f60\u5e0c\u671b\u51fa\u552e\u7684\u5e93\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u672c\u6307\u5357\u4e2d\uff0c\u4f60\u5c06\u5b66\u4e60\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u5982\u4f55\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d"}),"\n",(0,r.jsx)(n.li,{children:"\u5982\u4f55\u4f7f\u7528 NPM \u5206\u53d1\u5e93"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d",children:"\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d"}),"\n",(0,r.jsxs)(n.p,{children:["\u4f60\u53ef\u4ee5\u4f7f\u7528 ",(0,r.jsx)(n.a,{href:"https://callstack.github.io/react-native-builder-bob/create",children:(0,r.jsx)(n.code,{children:"create-react-native-library"})})," \u5de5\u5177\u6765\u521b\u5efa\u4e00\u4e2a\u65b0\u5e93\u3002\u8be5\u5de5\u5177\u8bbe\u7f6e\u4e86\u4e00\u4e2a\u65b0\u7684\u5e93\uff0c\u5176\u4e2d\u5305\u542b\u6240\u6709\u9700\u8981\u7684\u6837\u677f\u4ee3\u7801\uff1a\u6240\u6709\u914d\u7f6e\u6587\u4ef6\u548c\u5404\u79cd\u5e73\u53f0\u6240\u9700\u7684\u6587\u4ef6\u3002\u5b83\u8fd8\u5e26\u6709\u4e00\u4e2a\u4ea4\u4e92\u5f0f\u83dc\u5355\uff0c\u5f15\u5bfc\u4f60\u5b8c\u6210\u5e93\u7684\u521b\u5efa\u8fc7\u7a0b\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u8981\u63d0\u53d6\u6a21\u5757\u5230\u4e00\u4e2a\u5355\u72ec\u7684\u5e93\u4e2d\uff0c\u4f60\u53ef\u4ee5\u6309\u7167\u4ee5\u4e0b\u6b65\u9aa4\u64cd\u4f5c\uff1a"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"\u521b\u5efa\u65b0\u5e93"}),"\n",(0,r.jsx)(n.li,{children:"\u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u79fb\u52a8\u5230\u5e93"}),"\n",(0,r.jsx)(n.li,{children:"\u66f4\u65b0\u4ee3\u7801\u4ee5\u53cd\u6620\u65b0\u7684\u7ed3\u6784"}),"\n",(0,r.jsx)(n.li,{children:"\u53d1\u5e03\u5b83\u3002"}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"1-\u521b\u5efa\u5e93",children:"1. \u521b\u5efa\u5e93"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"\u901a\u8fc7\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u5f00\u59cb\u521b\u5efa\u8fc7\u7a0b\uff1a"}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sh",children:"npx create-react-native-library@latest \n"})}),"\n",(0,r.jsxs)(n.ol,{start:"2",children:["\n",(0,r.jsxs)(n.li,{children:["\u4e3a\u4f60\u7684\u6a21\u5757\u6dfb\u52a0\u4e00\u4e2a\u540d\u79f0\u3002\u5b83\u5fc5\u987b\u662f\u4e00\u4e2a\u6709\u6548\u7684 npm \u540d\u79f0\uff0c\u6240\u4ee5\u5e94\u8be5\u5168\u90e8\u662f\u5c0f\u5199\u7684\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"-"})," \u6765\u5206\u9694\u5355\u8bcd\u3002"]}),"\n",(0,r.jsx)(n.li,{children:"\u4e3a\u5305\u6dfb\u52a0\u4e00\u4e2a\u63cf\u8ff0\u3002"}),"\n",(0,r.jsxs)(n.li,{children:["\u7ee7\u7eed\u586b\u5199\u8868\u5355\uff0c\u76f4\u5230\u4f60\u5230\u8fbe\u95ee\u9898 ",(0,r.jsx)(n.em,{children:'"\u4f60\u60f3\u8981\u5f00\u53d1\u4ec0\u4e48\u7c7b\u578b\u7684\u5e93\uff1f"'}),"\n",(0,r.jsx)(n.img,{alt:"What type of Library",src:i(34723).A+"",width:"1744",height:"304"})]}),"\n",(0,r.jsxs)(n.li,{children:["\u4e3a\u4e86\u672c\u6307\u5357\u7684\u76ee\u7684\uff0c\u9009\u62e9 ",(0,r.jsx)(n.em,{children:"Turbo \u6a21\u5757"})," \u9009\u9879\u3002\u6ce8\u610f\u4f60\u53ef\u4ee5\u521b\u5efa\u65b0\u67b6\u6784\u548c\u65e7\u67b6\u6784\u7684\u5e93\u3002"]}),"\n",(0,r.jsx)(n.li,{children:"\u7136\u540e\uff0c\u4f60\u53ef\u4ee5\u9009\u62e9\u4f60\u60f3\u8981\u4e00\u4e2a\u8bbf\u95ee\u5e73\u53f0\u7684\u5e93\uff08Kotlin \u548c Objective-C\uff09\u8fd8\u662f\u4e00\u4e2a\u5171\u4eab\u7684 C++ \u5e93\uff08Android \u548c iOS \u7684 C++\uff09\u3002"}),"\n",(0,r.jsxs)(n.li,{children:["\u6700\u540e\uff0c\u9009\u62e9 ",(0,r.jsx)(n.code,{children:"Test App"})," \u4f5c\u4e3a\u6700\u540e\u4e00\u4e2a\u9009\u9879\u3002\u6b64\u9009\u9879\u521b\u5efa\u4e00\u4e2a\u5df2\u7ecf\u914d\u7f6e\u5728\u5e93\u6587\u4ef6\u5939\u4e2d\u7684\u5355\u72ec\u5e94\u7528\u7684\u5e93\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\u4e00\u65e6\u4ea4\u4e92\u63d0\u793a\u5b8c\u6210\uff0c\u5de5\u5177\u4f1a\u521b\u5efa\u4e00\u4e2a\u6587\u4ef6\u5939\uff0c\u5176\u7ed3\u6784\u5982\u4e0b\uff1a"}),"\n",(0,r.jsx)("img",{class:"half-size",alt:"Folder structure after initializing a new library.",src:"/docs/assets/turbo-native-modules/c++visualstudiocode.webp"}),"\n",(0,r.jsx)(n.p,{children:"\u968f\u610f\u63a2\u7d22\u5de5\u5177\u4e3a\u4f60\u521b\u5efa\u7684\u4ee3\u7801\u3002\u7136\u800c\uff0c\u6700\u91cd\u8981\u7684\u90e8\u5206\u662f\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"android"})," \u6587\u4ef6\u5939\uff1a\u8fd9\u662f Android \u4ee3\u7801\u6240\u5728\u7684\u4f4d\u7f6e"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"cpp"})," \u6587\u4ef6\u5939\uff1a\u8fd9\u662f C++ \u4ee3\u7801\u6240\u5728\u7684\u4f4d\u7f6e"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"ios"})," \u6587\u4ef6\u5939\uff1a\u8fd9\u662f iOS \u4ee3\u7801\u6240\u5728\u7684\u4f4d\u7f6e"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"src"})," \u6587\u4ef6\u5939\uff1a\u8fd9\u662f JS \u4ee3\u7801\u6240\u5728\u7684\u4f4d\u7f6e"]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"package.json"})," \u5df2\u7ecf\u914d\u7f6e\u4e86\u6240\u6709\u4fe1\u606f\uff0c\u5305\u62ec\u5305\u7684\u540d\u79f0\u548c\u63cf\u8ff0\u3002\u6ce8\u610f ",(0,r.jsx)(n.code,{children:"package.json"})," \u4e5f\u5df2\u7ecf\u914d\u7f6e\u4e3a\u8fd0\u884c codegen\u3002"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-json",children:' "codegenConfig": {\n "name": "RNSpec",\n "type": "all",\n "jsSrcsDir": "src",\n "outputDir": {\n "ios": "ios/generated",\n "android": "android/generated"\n },\n "android": {\n "javaPackageName": "com."\n }\n },\n'})}),"\n",(0,r.jsx)(n.p,{children:"\u6700\u540e\uff0c\u5e93\u5df2\u7ecf\u5305\u542b\u6240\u6709\u57fa\u7840\u8bbe\u65bd\uff0c\u4ee5\u4fbf\u5e93\u53ef\u4ee5\u4e0e iOS \u548c Android \u94fe\u63a5\u3002"}),"\n",(0,r.jsx)(n.h3,{id:"2-\u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u590d\u5236\u5230\u5e93",children:"2. \u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u590d\u5236\u5230\u5e93"}),"\n",(0,r.jsxs)(n.p,{children:["\u672c\u6307\u5357\u7684\u5176\u4f59\u90e8\u5206\u5047\u8bbe\u4f60\u6709\u4e00\u4e2a\u672c\u5730 Turbo Native \u6a21\u5757\u5728\u4f60\u7684\u5e94\u7528\u4e2d\uff0c\u9075\u5faa\u7f51\u7ad9\u4e0a\u5176\u4ed6\u6307\u5357\u4e2d\u7684\u6307\u5357\uff1a\u5e73\u53f0\u7279\u5b9a\u7684 Turbo Native \u6a21\u5757\uff0c\u6216 ",(0,r.jsx)(n.a,{href:"./pure-cxx-modules",children:"\u8de8\u5e73\u53f0\u7684 Turbo Native \u6a21\u5757"}),"\u3002\u4f46\u5b83\u4e5f\u9002\u7528\u4e8e\u7ec4\u4ef6\u548c\u65e7\u67b6\u6784\u7684\u6a21\u5757\u548c\u7ec4\u4ef6\u3002\u4f60\u9700\u8981\u590d\u5236\u548c\u66f4\u65b0\u4f60\u9700\u8981\u7684\u6587\u4ef6\u3002"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"[\u65e7\u67b6\u6784\u4e0d\u9700\u8981\u8fd9\u4e00\u6b65]"})," \u5c06\u4f60\u5728\u5e94\u7528\u7684 ",(0,r.jsx)(n.code,{children:"specs"})," \u6587\u4ef6\u5939\u4e2d\u7684\u4ee3\u7801\u79fb\u52a8\u5230 ",(0,r.jsx)(n.code,{children:"create-react-native-library"})," \u521b\u5efa\u7684 ",(0,r.jsx)(n.code,{children:"src"})," \u6587\u4ef6\u5939\u4e2d\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u66f4\u65b0 ",(0,r.jsx)(n.code,{children:"index.ts"})," \u6587\u4ef6\u4ee5\u6b63\u786e\u5bfc\u51fa Turbo Native \u6a21\u5757\u89c4\u8303\uff0c\u4ee5\u4fbf\u53ef\u4ee5\u4ece\u5e93\u4e2d\u8bbf\u95ee\u5b83\u3002\u4f8b\u5982\uff1a"]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",children:"import NativeSampleModule from './NativeSampleModule';\n\nexport default NativeSampleModule;\n"})}),"\n",(0,r.jsxs)(n.ol,{start:"3",children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"\u590d\u5236\u539f\u751f\u6a21\u5757\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u7528\u4f60\u5728\u5e94\u7528\u4e2d\u4e3a\u539f\u751f\u6a21\u5757\u7f16\u5199\u7684\u4ee3\u7801\u66ff\u6362 ",(0,r.jsx)(n.code,{children:"android/src/main/java/com/"})," \u4e2d\u7684\u4ee3\u7801\uff0c\u5982\u679c\u6709\u7684\u8bdd\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u7528\u4f60\u5728\u5e94\u7528\u4e2d\u4e3a\u539f\u751f\u6a21\u5757\u7f16\u5199\u7684\u4ee3\u7801\u66ff\u6362 ",(0,r.jsx)(n.code,{children:"ios"})," \u6587\u4ef6\u5939\u4e2d\u7684\u4ee3\u7801\uff0c\u5982\u679c\u6709\u7684\u8bdd\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u7528\u4f60\u5728\u5e94\u7528\u4e2d\u4e3a\u539f\u751f\u6a21\u5757\u7f16\u5199\u7684\u4ee3\u7801\u66ff\u6362 ",(0,r.jsx)(n.code,{children:"cpp"})," \u6587\u4ef6\u5939\u4e2d\u7684\u4ee3\u7801\uff0c\u5982\u679c\u6709\u7684\u8bdd\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"[\u65e7\u67b6\u6784\u4e0d\u9700\u8981\u8fd9\u4e00\u6b65]"})," \u66f4\u65b0\u6240\u6709\u4ece\u65e7\u89c4\u8303\u540d\u79f0\u5230\u65b0\u89c4\u8303\u540d\u79f0\u7684\u5f15\u7528\uff0c\u65b0\u89c4\u8303\u540d\u79f0\u5728\u5e93\u7684 ",(0,r.jsx)(n.code,{children:"package.json"})," \u6587\u4ef6\u7684 ",(0,r.jsx)(n.code,{children:"codegenConfig"})," \u5b57\u6bb5\u4e2d\u5b9a\u4e49\u3002\u4f8b\u5982\uff0c\u5982\u679c\u5e94\u7528\u7684 ",(0,r.jsx)(n.code,{children:"package.json"})," \u4e2d\u8bbe\u7f6e ",(0,r.jsx)(n.code,{children:"AppSpecs"})," \u4e3a ",(0,r.jsx)(n.code,{children:"codegenConfig.name"}),"\uff0c\u800c\u5728\u5e93\u4e2d\u79f0\u4e3a ",(0,r.jsx)(n.code,{children:"RNNativeSampleModuleSpec"}),"\uff0c\u5219\u5fc5\u987b\u5c06 ",(0,r.jsx)(n.code,{children:"AppSpecs"})," \u7684\u6240\u6709\u51fa\u73b0\u66ff\u6362\u4e3a ",(0,r.jsx)(n.code,{children:"RNNativeSampleModuleSpec"}),"\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\u8fd9\u5c31\u5b8c\u6210\u4e86\uff01\u4f60\u5df2\u7ecf\u5c06\u6240\u6709\u9700\u8981\u7684\u4ee3\u7801\u4ece\u5e94\u7528\u79fb\u52a8\u5230\u4e00\u4e2a\u5355\u72ec\u7684\u5e93\u4e2d\u3002"}),"\n",(0,r.jsx)(n.h2,{id:"\u6d4b\u8bd5\u4f60\u7684\u5e93",children:"\u6d4b\u8bd5\u4f60\u7684\u5e93"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"create-react-native-library"})," \u5e26\u6709\u4e00\u4e2a\u6709\u7528\u7684\u793a\u4f8b\u5e94\u7528\uff0c\u5df2\u914d\u7f6e\u4e3a\u4e0e\u5e93\u6b63\u5e38\u5de5\u4f5c\u3002\u8fd9\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u6d4b\u8bd5\u65b9\u6cd5\uff01"]}),"\n",(0,r.jsxs)(n.p,{children:["\u5982\u679c\u4f60\u67e5\u770b ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\uff0c\u4f60\u4f1a\u53d1\u73b0\u4e00\u4e2a\u4e0e ",(0,r.jsx)(n.a,{href:"https://github.com/react-native-community/template",children:(0,r.jsx)(n.code,{children:"react-native-community/template"})})," \u521b\u5efa\u7684\u65b0 React Native \u5e94\u7528\u76f8\u540c\u7684\u7ed3\u6784\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u8981\u6d4b\u8bd5\u4f60\u7684\u5e93\uff1a"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\u5bfc\u822a\u5230 ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"yarn install"})," \u6765\u5b89\u88c5\u6240\u6709\u4f9d\u8d56\u9879\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u5bf9\u4e8e iOS \u6765\u8bf4\uff0c\u4f60\u9700\u8981\u5b89\u88c5 CocoaPods\uff1a",(0,r.jsx)(n.code,{children:"cd ios && pod install"}),"\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn android"})," \u4ece ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u6784\u5efa\u548c\u8fd0\u884c Android\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn ios"})," \u4ece ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u6784\u5efa\u548c\u8fd0\u884c iOS\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5c06\u4f60\u7684\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u4f7f\u7528",children:"\u5c06\u4f60\u7684\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u4f7f\u7528\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u4f60\u53ef\u80fd\u5e0c\u671b\u5c06\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u91cd\u7528\u4e8e\u4f60\u7684\u5e94\u7528\uff0c\u800c\u4e0d\u5c06\u5176\u53d1\u5e03\u5230 NPM\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u4f60\u53ef\u80fd\u4f1a\u9047\u5230\u4e00\u4e2a\u573a\u666f\uff0c\u5373\u4f60\u7684\u5e93\u4f5c\u4e3a\u5e94\u7528\u7684\u5144\u5f1f\u6587\u4ef6\u5939\u5b58\u5728\u3002"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"Development\n\u251c\u2500\u2500 App\n\u2514\u2500\u2500 Library\n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u4f60\u4e5f\u53ef\u4ee5\u5728\u8fd9\u79cd\u60c5\u51b5\u4e2d\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"create-react-native-library"})," \u521b\u5efa\u7684\u5e93\u3002"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\u901a\u8fc7\u5bfc\u822a\u5230 ",(0,r.jsx)(n.code,{children:"App"})," \u6587\u4ef6\u5939\u5e76\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"yarn add ../Library"})," \u5c06\u4f60\u7684\u5e93\u6dfb\u52a0\u5230\u5e94\u7528\u4e2d\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u5bf9\u4e8e iOS \u6765\u8bf4\uff0c\u5bfc\u822a\u5230 ",(0,r.jsx)(n.code,{children:"App/ios"})," \u6587\u4ef6\u5939\u5e76\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"bundle exec pod install"})," \u6765\u5b89\u88c5\u4f60\u7684\u4f9d\u8d56\u9879\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u66f4\u65b0 ",(0,r.jsx)(n.code,{children:"App.tsx"})," \u4ee3\u7801\u4ee5\u5bfc\u5165\u5e93\u4e2d\u7684\u4ee3\u7801\u3002\u4f8b\u5982\uff1a"]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:"import NativeSampleModule from '../Library/src/index';\n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u5982\u679c\u4f60\u73b0\u5728\u8fd0\u884c\u4f60\u7684\u5e94\u7528\uff0cMetro \u5c06\u627e\u4e0d\u5230\u5b83\u9700\u8981\u63d0\u4f9b\u7ed9\u5e94\u7528\u7684 JS \u6587\u4ef6\u3002\u8fd9\u662f\u56e0\u4e3a Metro \u5c06\u4ece ",(0,r.jsx)(n.code,{children:"App"})," \u6587\u4ef6\u5939\u5f00\u59cb\u8fd0\u884c\uff0c\u5e76\u4e14\u65e0\u6cd5\u8bbf\u95ee\u4f4d\u4e8e ",(0,r.jsx)(n.code,{children:"Library"})," \u6587\u4ef6\u5939\u4e2d\u7684 JS \u6587\u4ef6\u3002\u8981\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u8ba9\u6211\u4eec\u66f4\u65b0 ",(0,r.jsx)(n.code,{children:"metro.config.js"})," \u6587\u4ef6\uff0c\u5982\u4e0b\u6240\u793a\uff1a"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:"const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config');\n\n/**\n * Metro configuration\n * https://reactnative.dev/docs/metro\n *\n * @type {import('metro-config').MetroConfig}\n */\n+ const path = require('path');\n\n- const config = {}\n+ const config = {\n+ // Make Metro able to resolve required external dependencies\n+ watchFolders: [\n+ path.resolve(__dirname, '../Library'),\n+ ],\n+ resolver: {\n+ extraNodeModules: {\n+ 'react-native': path.resolve(__dirname, 'node_modules/react-native'),\n+ },\n+ },\n+};\n\nmodule.exports = mergeConfig(getDefaultConfig(__dirname), config);\n"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"watchFolders"})," \u914d\u7f6e\u544a\u8bc9 Metro \u76d1\u89c6\u4e00\u4e9b\u9644\u52a0\u8def\u5f84\u4e2d\u7684\u6587\u4ef6\u548c\u66f4\u6539\uff0c\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\u662f ",(0,r.jsx)(n.code,{children:"../Library"})," \u8def\u5f84\uff0c\u5176\u4e2d\u5305\u542b\u4f60\u9700\u8981 ",(0,r.jsx)(n.code,{children:"src/index"})," \u6587\u4ef6\u3002",(0,r.jsx)(n.code,{children:"resolver"})," \u5c5e\u6027\u662f\u5fc5\u9700\u7684\uff0c\u4ee5\u4fbf\u4e3a\u5e93\u63d0\u4f9b\u5e94\u7528\u4f7f\u7528\u7684 React Native \u4ee3\u7801\u3002\u5e93\u53ef\u80fd\u4f1a\u5f15\u7528\u5e76\u5bfc\u5165 React Native \u4ee3\u7801\uff1a\u6ca1\u6709\u989d\u5916\u7684\u89e3\u6790\u5668\uff0c\u5e93\u4e2d\u7684\u5bfc\u5165\u5c06\u5931\u8d25\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u6b64\u65f6\uff0c\u4f60\u53ef\u4ee5\u50cf\u5f80\u5e38\u4e00\u6837\u6784\u5efa\u548c\u8fd0\u884c\u4f60\u7684\u5e94\u7528\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn android"})," \u4ece ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u6784\u5efa\u548c\u8fd0\u884c Android\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn ios"})," \u4ece ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u6784\u5efa\u548c\u8fd0\u884c iOS\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5728-npm-\u4e0a\u53d1\u5e03\u5e93",children:"\u5728 NPM \u4e0a\u53d1\u5e03\u5e93"}),"\n",(0,r.jsxs)(n.p,{children:["\u53d1\u5e03\u5230 NPM \u7684\u8bbe\u7f6e\u5df2\u7ecf\u5230\u4f4d\uff0c\u611f\u8c22 ",(0,r.jsx)(n.code,{children:"create-react-native-library"}),"\u3002"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\u5728\u4f60\u7684\u6a21\u5757\u4e2d\u5b89\u88c5\u4f9d\u8d56\u9879 ",(0,r.jsx)(n.code,{children:"yarn install"}),"\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"yarn prepare"})," \u6784\u5efa\u5e93\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn release"})," \u53d1\u5e03\u5b83\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\u7a0d\u7b49\u7247\u523b\uff0c\u4f60\u4f1a\u5728 NPM \u4e0a\u627e\u5230\u4f60\u7684\u5e93\u3002\u8981\u9a8c\u8bc1\u8fd9\u4e00\u70b9\uff0c\u8fd0\u884c\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm view \n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u5176\u4e2d ",(0,r.jsx)(n.code,{children:"package.name"})," \u662f\u4f60\u8bbe\u7f6e\u7684 ",(0,r.jsx)(n.code,{children:"name"}),"\uff0c\u5728\u5e93\u7684 ",(0,r.jsx)(n.code,{children:"package.json"})," \u6587\u4ef6\u4e2d\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u73b0\u5728\uff0c\u4f60\u53ef\u4ee5\u901a\u8fc7\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u5728\u4f60\u7684\u5e94\u7528\u4e2d\u5b89\u88c5\u5e93\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"yarn add \n"})}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsxs)(n.p,{children:["\u5bf9\u4e8e iOS \u6765\u8bf4\uff0c\u6bcf\u5f53\u5b89\u88c5\u4e00\u4e2a\u5e26\u6709\u539f\u751f\u4ee3\u7801\u7684\u65b0\u6a21\u5757\u65f6\uff0c\u4f60\u5fc5\u987b\u91cd\u65b0\u5b89\u88c5 CocoaPods\uff0c\u901a\u8fc7\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"bundle exec pod install"}),"\uff08\u63a8\u8350\uff09\u6216 ",(0,r.jsx)(n.code,{children:"pod install"}),"\uff08\u4e0d\u63a8\u8350\uff09\u3002"]})}),"\n",(0,r.jsx)(n.p,{children:"\u606d\u559c\uff01\u4f60\u53d1\u5e03\u4e86\u4f60\u7684\u7b2c\u4e00\u4e2a React Native \u5e93\u3002"})]})}function h(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},34723:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/what-library-fdc7531153bfcf553ec30e2ab205480e.png"},43023:(e,n,i)=>{i.d(n,{R:()=>d,x:()=>l});var r=i(63696);const c={},s=r.createContext(c);function d(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:d(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/65200372.77906727.js b/assets/js/65200372.77906727.js new file mode 100644 index 00000000000..823e68c43e2 --- /dev/null +++ b/assets/js/65200372.77906727.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[84846],{29364:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>t});var r=i(62540),c=i(43023);const s={},d="\u521b\u5efa\u6a21\u5757\u5e93",l={id:"the-new-architecture/create-module-library",title:"\u521b\u5efa\u6a21\u5757\u5e93",description:"React Native \u6709\u4e00\u4e2a\u4e30\u5bcc\u7684\u751f\u6001\u7cfb\u7edf\u5e93\u6765\u89e3\u51b3\u5e38\u89c1\u95ee\u9898\u3002\u6211\u4eec\u5728 reactnative.directory \u7f51\u7ad9\u4e0a\u6536\u96c6 React Native \u5e93\uff0c\u8fd9\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u8d44\u6e90\uff0c\u503c\u5f97\u6bcf\u4e2a React Native \u5f00\u53d1\u8005\u6536\u85cf\u3002",source:"@site/versioned_docs/version-0.76/the-new-architecture/create-module-library.md",sourceDirName:"the-new-architecture",slug:"/the-new-architecture/create-module-library",permalink:"/docs/the-new-architecture/create-module-library",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/the-new-architecture/create-module-library.md",tags:[],version:"0.76",frontMatter:{},sidebar:"docs",previous:{title:"\u9644\u5f55",permalink:"/docs/appendix"},next:{title:"Headless JS\uff08\u540e\u53f0\u4efb\u52a1\uff09",permalink:"/docs/headless-js-android"}},a={},t=[{value:"\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d",id:"\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d",level:2},{value:"1. \u521b\u5efa\u5e93",id:"1-\u521b\u5efa\u5e93",level:3},{value:"2. \u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u590d\u5236\u5230\u5e93",id:"2-\u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u590d\u5236\u5230\u5e93",level:3},{value:"\u6d4b\u8bd5\u4f60\u7684\u5e93",id:"\u6d4b\u8bd5\u4f60\u7684\u5e93",level:2},{value:"\u5c06\u4f60\u7684\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u4f7f\u7528\u3002",id:"\u5c06\u4f60\u7684\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u4f7f\u7528",level:2},{value:"\u5728 NPM \u4e0a\u53d1\u5e03\u5e93",id:"\u5728-npm-\u4e0a\u53d1\u5e03\u5e93",level:2}];function o(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,c.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"\u521b\u5efa\u6a21\u5757\u5e93",children:"\u521b\u5efa\u6a21\u5757\u5e93"})}),"\n",(0,r.jsxs)(n.p,{children:["React Native \u6709\u4e00\u4e2a\u4e30\u5bcc\u7684\u751f\u6001\u7cfb\u7edf\u5e93\u6765\u89e3\u51b3\u5e38\u89c1\u95ee\u9898\u3002\u6211\u4eec\u5728 ",(0,r.jsx)(n.a,{href:"https://reactnative.directory",children:"reactnative.directory"})," \u7f51\u7ad9\u4e0a\u6536\u96c6 React Native \u5e93\uff0c\u8fd9\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u8d44\u6e90\uff0c\u503c\u5f97\u6bcf\u4e2a React Native \u5f00\u53d1\u8005\u6536\u85cf\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u6709\u65f6\uff0c\u4f60\u53ef\u80fd\u4f1a\u5f00\u53d1\u4e00\u4e2a\u6a21\u5757\uff0c\u5e0c\u671b\u5c06\u5176\u63d0\u53d6\u5230\u4e00\u4e2a\u5355\u72ec\u7684\u5e93\u4e2d\u4ee5\u4f9b\u4ee3\u7801\u91cd\u7528\u3002\u8fd9\u53ef\u4ee5\u662f\u4e00\u4e2a\u4f60\u5e0c\u671b\u5728\u6240\u6709\u5e94\u7528\u4e2d\u91cd\u7528\u7684\u5e93\uff0c\u4e00\u4e2a\u4f60\u5e0c\u671b\u4f5c\u4e3a\u5f00\u6e90\u7ec4\u4ef6\u5206\u53d1\u5230\u751f\u6001\u7cfb\u7edf\u7684\u5e93\uff0c\u751a\u81f3\u662f\u4e00\u4e2a\u4f60\u5e0c\u671b\u51fa\u552e\u7684\u5e93\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u672c\u6307\u5357\u4e2d\uff0c\u4f60\u5c06\u5b66\u4e60\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u5982\u4f55\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d"}),"\n",(0,r.jsx)(n.li,{children:"\u5982\u4f55\u4f7f\u7528 NPM \u5206\u53d1\u5e93"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d",children:"\u5c06\u6a21\u5757\u63d0\u53d6\u5230\u4e00\u4e2a\u5e93\u4e2d"}),"\n",(0,r.jsxs)(n.p,{children:["\u4f60\u53ef\u4ee5\u4f7f\u7528 ",(0,r.jsx)(n.a,{href:"https://callstack.github.io/react-native-builder-bob/create",children:(0,r.jsx)(n.code,{children:"create-react-native-library"})})," \u5de5\u5177\u6765\u521b\u5efa\u4e00\u4e2a\u65b0\u5e93\u3002\u8be5\u5de5\u5177\u8bbe\u7f6e\u4e86\u4e00\u4e2a\u65b0\u7684\u5e93\uff0c\u5176\u4e2d\u5305\u542b\u6240\u6709\u9700\u8981\u7684\u6837\u677f\u4ee3\u7801\uff1a\u6240\u6709\u914d\u7f6e\u6587\u4ef6\u548c\u5404\u79cd\u5e73\u53f0\u6240\u9700\u7684\u6587\u4ef6\u3002\u5b83\u8fd8\u5e26\u6709\u4e00\u4e2a\u4ea4\u4e92\u5f0f\u83dc\u5355\uff0c\u5f15\u5bfc\u4f60\u5b8c\u6210\u5e93\u7684\u521b\u5efa\u8fc7\u7a0b\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u8981\u63d0\u53d6\u6a21\u5757\u5230\u4e00\u4e2a\u5355\u72ec\u7684\u5e93\u4e2d\uff0c\u4f60\u53ef\u4ee5\u6309\u7167\u4ee5\u4e0b\u6b65\u9aa4\u64cd\u4f5c\uff1a"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"\u521b\u5efa\u65b0\u5e93"}),"\n",(0,r.jsx)(n.li,{children:"\u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u79fb\u52a8\u5230\u5e93"}),"\n",(0,r.jsx)(n.li,{children:"\u66f4\u65b0\u4ee3\u7801\u4ee5\u53cd\u6620\u65b0\u7684\u7ed3\u6784"}),"\n",(0,r.jsx)(n.li,{children:"\u53d1\u5e03\u5b83\u3002"}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"1-\u521b\u5efa\u5e93",children:"1. \u521b\u5efa\u5e93"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"\u901a\u8fc7\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u5f00\u59cb\u521b\u5efa\u8fc7\u7a0b\uff1a"}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sh",children:"npx create-react-native-library@latest \n"})}),"\n",(0,r.jsxs)(n.ol,{start:"2",children:["\n",(0,r.jsxs)(n.li,{children:["\u4e3a\u4f60\u7684\u6a21\u5757\u6dfb\u52a0\u4e00\u4e2a\u540d\u79f0\u3002\u5b83\u5fc5\u987b\u662f\u4e00\u4e2a\u6709\u6548\u7684 npm \u540d\u79f0\uff0c\u6240\u4ee5\u5e94\u8be5\u5168\u90e8\u662f\u5c0f\u5199\u7684\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"-"})," \u6765\u5206\u9694\u5355\u8bcd\u3002"]}),"\n",(0,r.jsx)(n.li,{children:"\u4e3a\u5305\u6dfb\u52a0\u4e00\u4e2a\u63cf\u8ff0\u3002"}),"\n",(0,r.jsxs)(n.li,{children:["\u7ee7\u7eed\u586b\u5199\u8868\u5355\uff0c\u76f4\u5230\u4f60\u5230\u8fbe\u95ee\u9898 ",(0,r.jsx)(n.em,{children:'"\u4f60\u60f3\u8981\u5f00\u53d1\u4ec0\u4e48\u7c7b\u578b\u7684\u5e93\uff1f"'}),"\n",(0,r.jsx)(n.img,{alt:"What type of Library",src:i(34723).A+"",width:"1744",height:"304"})]}),"\n",(0,r.jsxs)(n.li,{children:["\u4e3a\u4e86\u672c\u6307\u5357\u7684\u76ee\u7684\uff0c\u9009\u62e9 ",(0,r.jsx)(n.em,{children:"Turbo \u6a21\u5757"})," \u9009\u9879\u3002\u6ce8\u610f\u4f60\u53ef\u4ee5\u521b\u5efa\u65b0\u67b6\u6784\u548c\u65e7\u67b6\u6784\u7684\u5e93\u3002"]}),"\n",(0,r.jsx)(n.li,{children:"\u7136\u540e\uff0c\u4f60\u53ef\u4ee5\u9009\u62e9\u4f60\u60f3\u8981\u4e00\u4e2a\u8bbf\u95ee\u5e73\u53f0\u7684\u5e93\uff08Kotlin \u548c Objective-C\uff09\u8fd8\u662f\u4e00\u4e2a\u5171\u4eab\u7684 C++ \u5e93\uff08Android \u548c iOS \u7684 C++\uff09\u3002"}),"\n",(0,r.jsxs)(n.li,{children:["\u6700\u540e\uff0c\u9009\u62e9 ",(0,r.jsx)(n.code,{children:"Test App"})," \u4f5c\u4e3a\u6700\u540e\u4e00\u4e2a\u9009\u9879\u3002\u6b64\u9009\u9879\u521b\u5efa\u4e00\u4e2a\u5df2\u7ecf\u914d\u7f6e\u5728\u5e93\u6587\u4ef6\u5939\u4e2d\u7684\u5355\u72ec\u5e94\u7528\u7684\u5e93\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\u4e00\u65e6\u4ea4\u4e92\u63d0\u793a\u5b8c\u6210\uff0c\u5de5\u5177\u4f1a\u521b\u5efa\u4e00\u4e2a\u6587\u4ef6\u5939\uff0c\u5176\u7ed3\u6784\u5982\u4e0b\uff1a"}),"\n",(0,r.jsx)("img",{class:"half-size",alt:"Folder structure after initializing a new library.",src:"/docs/assets/turbo-native-modules/c++visualstudiocode.webp"}),"\n",(0,r.jsx)(n.p,{children:"\u968f\u610f\u63a2\u7d22\u5de5\u5177\u4e3a\u4f60\u521b\u5efa\u7684\u4ee3\u7801\u3002\u7136\u800c\uff0c\u6700\u91cd\u8981\u7684\u90e8\u5206\u662f\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"android"})," \u6587\u4ef6\u5939\uff1a\u8fd9\u662f Android \u4ee3\u7801\u6240\u5728\u7684\u4f4d\u7f6e"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"cpp"})," \u6587\u4ef6\u5939\uff1a\u8fd9\u662f C++ \u4ee3\u7801\u6240\u5728\u7684\u4f4d\u7f6e"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"ios"})," \u6587\u4ef6\u5939\uff1a\u8fd9\u662f iOS \u4ee3\u7801\u6240\u5728\u7684\u4f4d\u7f6e"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"src"})," \u6587\u4ef6\u5939\uff1a\u8fd9\u662f JS \u4ee3\u7801\u6240\u5728\u7684\u4f4d\u7f6e"]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"package.json"})," \u5df2\u7ecf\u914d\u7f6e\u4e86\u6240\u6709\u4fe1\u606f\uff0c\u5305\u62ec\u5305\u7684\u540d\u79f0\u548c\u63cf\u8ff0\u3002\u6ce8\u610f ",(0,r.jsx)(n.code,{children:"package.json"})," \u4e5f\u5df2\u7ecf\u914d\u7f6e\u4e3a\u8fd0\u884c codegen\u3002"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-json",children:' "codegenConfig": {\n "name": "RNSpec",\n "type": "all",\n "jsSrcsDir": "src",\n "outputDir": {\n "ios": "ios/generated",\n "android": "android/generated"\n },\n "android": {\n "javaPackageName": "com."\n }\n },\n'})}),"\n",(0,r.jsx)(n.p,{children:"\u6700\u540e\uff0c\u5e93\u5df2\u7ecf\u5305\u542b\u6240\u6709\u57fa\u7840\u8bbe\u65bd\uff0c\u4ee5\u4fbf\u5e93\u53ef\u4ee5\u4e0e iOS \u548c Android \u94fe\u63a5\u3002"}),"\n",(0,r.jsx)(n.h3,{id:"2-\u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u590d\u5236\u5230\u5e93",children:"2. \u5c06\u4ee3\u7801\u4ece\u5e94\u7528\u590d\u5236\u5230\u5e93"}),"\n",(0,r.jsxs)(n.p,{children:["\u672c\u6307\u5357\u7684\u5176\u4f59\u90e8\u5206\u5047\u8bbe\u4f60\u6709\u4e00\u4e2a\u672c\u5730 Turbo Native \u6a21\u5757\u5728\u4f60\u7684\u5e94\u7528\u4e2d\uff0c\u9075\u5faa\u7f51\u7ad9\u4e0a\u5176\u4ed6\u6307\u5357\u4e2d\u7684\u6307\u5357\uff1a\u5e73\u53f0\u7279\u5b9a\u7684 Turbo Native \u6a21\u5757\uff0c\u6216 ",(0,r.jsx)(n.a,{href:"./pure-cxx-modules",children:"\u8de8\u5e73\u53f0\u7684 Turbo Native \u6a21\u5757"}),"\u3002\u4f46\u5b83\u4e5f\u9002\u7528\u4e8e\u7ec4\u4ef6\u548c\u65e7\u67b6\u6784\u7684\u6a21\u5757\u548c\u7ec4\u4ef6\u3002\u4f60\u9700\u8981\u590d\u5236\u548c\u66f4\u65b0\u4f60\u9700\u8981\u7684\u6587\u4ef6\u3002"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"[\u65e7\u67b6\u6784\u4e0d\u9700\u8981\u8fd9\u4e00\u6b65]"})," \u5c06\u4f60\u5728\u5e94\u7528\u7684 ",(0,r.jsx)(n.code,{children:"specs"})," \u6587\u4ef6\u5939\u4e2d\u7684\u4ee3\u7801\u79fb\u52a8\u5230 ",(0,r.jsx)(n.code,{children:"create-react-native-library"})," \u521b\u5efa\u7684 ",(0,r.jsx)(n.code,{children:"src"})," \u6587\u4ef6\u5939\u4e2d\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u66f4\u65b0 ",(0,r.jsx)(n.code,{children:"index.ts"})," \u6587\u4ef6\u4ee5\u6b63\u786e\u5bfc\u51fa Turbo Native \u6a21\u5757\u89c4\u8303\uff0c\u4ee5\u4fbf\u53ef\u4ee5\u4ece\u5e93\u4e2d\u8bbf\u95ee\u5b83\u3002\u4f8b\u5982\uff1a"]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",children:"import NativeSampleModule from './NativeSampleModule';\n\nexport default NativeSampleModule;\n"})}),"\n",(0,r.jsxs)(n.ol,{start:"3",children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"\u590d\u5236\u539f\u751f\u6a21\u5757\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u7528\u4f60\u5728\u5e94\u7528\u4e2d\u4e3a\u539f\u751f\u6a21\u5757\u7f16\u5199\u7684\u4ee3\u7801\u66ff\u6362 ",(0,r.jsx)(n.code,{children:"android/src/main/java/com/"})," \u4e2d\u7684\u4ee3\u7801\uff0c\u5982\u679c\u6709\u7684\u8bdd\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u7528\u4f60\u5728\u5e94\u7528\u4e2d\u4e3a\u539f\u751f\u6a21\u5757\u7f16\u5199\u7684\u4ee3\u7801\u66ff\u6362 ",(0,r.jsx)(n.code,{children:"ios"})," \u6587\u4ef6\u5939\u4e2d\u7684\u4ee3\u7801\uff0c\u5982\u679c\u6709\u7684\u8bdd\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u7528\u4f60\u5728\u5e94\u7528\u4e2d\u4e3a\u539f\u751f\u6a21\u5757\u7f16\u5199\u7684\u4ee3\u7801\u66ff\u6362 ",(0,r.jsx)(n.code,{children:"cpp"})," \u6587\u4ef6\u5939\u4e2d\u7684\u4ee3\u7801\uff0c\u5982\u679c\u6709\u7684\u8bdd\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"[\u65e7\u67b6\u6784\u4e0d\u9700\u8981\u8fd9\u4e00\u6b65]"})," \u66f4\u65b0\u6240\u6709\u4ece\u65e7\u89c4\u8303\u540d\u79f0\u5230\u65b0\u89c4\u8303\u540d\u79f0\u7684\u5f15\u7528\uff0c\u65b0\u89c4\u8303\u540d\u79f0\u5728\u5e93\u7684 ",(0,r.jsx)(n.code,{children:"package.json"})," \u6587\u4ef6\u7684 ",(0,r.jsx)(n.code,{children:"codegenConfig"})," \u5b57\u6bb5\u4e2d\u5b9a\u4e49\u3002\u4f8b\u5982\uff0c\u5982\u679c\u5e94\u7528\u7684 ",(0,r.jsx)(n.code,{children:"package.json"})," \u4e2d\u8bbe\u7f6e ",(0,r.jsx)(n.code,{children:"AppSpecs"})," \u4e3a ",(0,r.jsx)(n.code,{children:"codegenConfig.name"}),"\uff0c\u800c\u5728\u5e93\u4e2d\u79f0\u4e3a ",(0,r.jsx)(n.code,{children:"RNNativeSampleModuleSpec"}),"\uff0c\u5219\u5fc5\u987b\u5c06 ",(0,r.jsx)(n.code,{children:"AppSpecs"})," \u7684\u6240\u6709\u51fa\u73b0\u66ff\u6362\u4e3a ",(0,r.jsx)(n.code,{children:"RNNativeSampleModuleSpec"}),"\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\u8fd9\u5c31\u5b8c\u6210\u4e86\uff01\u4f60\u5df2\u7ecf\u5c06\u6240\u6709\u9700\u8981\u7684\u4ee3\u7801\u4ece\u5e94\u7528\u79fb\u52a8\u5230\u4e00\u4e2a\u5355\u72ec\u7684\u5e93\u4e2d\u3002"}),"\n",(0,r.jsx)(n.h2,{id:"\u6d4b\u8bd5\u4f60\u7684\u5e93",children:"\u6d4b\u8bd5\u4f60\u7684\u5e93"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"create-react-native-library"})," \u5e26\u6709\u4e00\u4e2a\u6709\u7528\u7684\u793a\u4f8b\u5e94\u7528\uff0c\u5df2\u914d\u7f6e\u4e3a\u4e0e\u5e93\u6b63\u5e38\u5de5\u4f5c\u3002\u8fd9\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u6d4b\u8bd5\u65b9\u6cd5\uff01"]}),"\n",(0,r.jsxs)(n.p,{children:["\u5982\u679c\u4f60\u67e5\u770b ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\uff0c\u4f60\u4f1a\u53d1\u73b0\u4e00\u4e2a\u4e0e ",(0,r.jsx)(n.a,{href:"https://github.com/react-native-community/template",children:(0,r.jsx)(n.code,{children:"react-native-community/template"})})," \u521b\u5efa\u7684\u65b0 React Native \u5e94\u7528\u76f8\u540c\u7684\u7ed3\u6784\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u8981\u6d4b\u8bd5\u4f60\u7684\u5e93\uff1a"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\u5bfc\u822a\u5230 ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"yarn install"})," \u6765\u5b89\u88c5\u6240\u6709\u4f9d\u8d56\u9879\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u5bf9\u4e8e iOS \u6765\u8bf4\uff0c\u4f60\u9700\u8981\u5b89\u88c5 CocoaPods\uff1a",(0,r.jsx)(n.code,{children:"cd ios && pod install"}),"\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn android"})," \u4ece ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u6784\u5efa\u548c\u8fd0\u884c Android\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn ios"})," \u4ece ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u6784\u5efa\u548c\u8fd0\u884c iOS\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5c06\u4f60\u7684\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u4f7f\u7528",children:"\u5c06\u4f60\u7684\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u4f7f\u7528\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u4f60\u53ef\u80fd\u5e0c\u671b\u5c06\u5e93\u4f5c\u4e3a\u672c\u5730\u6a21\u5757\u91cd\u7528\u4e8e\u4f60\u7684\u5e94\u7528\uff0c\u800c\u4e0d\u5c06\u5176\u53d1\u5e03\u5230 NPM\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u4f60\u53ef\u80fd\u4f1a\u9047\u5230\u4e00\u4e2a\u573a\u666f\uff0c\u5373\u4f60\u7684\u5e93\u4f5c\u4e3a\u5e94\u7528\u7684\u5144\u5f1f\u6587\u4ef6\u5939\u5b58\u5728\u3002"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"Development\n\u251c\u2500\u2500 App\n\u2514\u2500\u2500 Library\n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u4f60\u4e5f\u53ef\u4ee5\u5728\u8fd9\u79cd\u60c5\u51b5\u4e2d\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"create-react-native-library"})," \u521b\u5efa\u7684\u5e93\u3002"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\u901a\u8fc7\u5bfc\u822a\u5230 ",(0,r.jsx)(n.code,{children:"App"})," \u6587\u4ef6\u5939\u5e76\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"yarn add ../Library"})," \u5c06\u4f60\u7684\u5e93\u6dfb\u52a0\u5230\u5e94\u7528\u4e2d\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u5bf9\u4e8e iOS \u6765\u8bf4\uff0c\u5bfc\u822a\u5230 ",(0,r.jsx)(n.code,{children:"App/ios"})," \u6587\u4ef6\u5939\u5e76\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"bundle exec pod install"})," \u6765\u5b89\u88c5\u4f60\u7684\u4f9d\u8d56\u9879\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u66f4\u65b0 ",(0,r.jsx)(n.code,{children:"App.tsx"})," \u4ee3\u7801\u4ee5\u5bfc\u5165\u5e93\u4e2d\u7684\u4ee3\u7801\u3002\u4f8b\u5982\uff1a"]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:"import NativeSampleModule from '../Library/src/index';\n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u5982\u679c\u4f60\u73b0\u5728\u8fd0\u884c\u4f60\u7684\u5e94\u7528\uff0cMetro \u5c06\u627e\u4e0d\u5230\u5b83\u9700\u8981\u63d0\u4f9b\u7ed9\u5e94\u7528\u7684 JS \u6587\u4ef6\u3002\u8fd9\u662f\u56e0\u4e3a Metro \u5c06\u4ece ",(0,r.jsx)(n.code,{children:"App"})," \u6587\u4ef6\u5939\u5f00\u59cb\u8fd0\u884c\uff0c\u5e76\u4e14\u65e0\u6cd5\u8bbf\u95ee\u4f4d\u4e8e ",(0,r.jsx)(n.code,{children:"Library"})," \u6587\u4ef6\u5939\u4e2d\u7684 JS \u6587\u4ef6\u3002\u8981\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u8ba9\u6211\u4eec\u66f4\u65b0 ",(0,r.jsx)(n.code,{children:"metro.config.js"})," \u6587\u4ef6\uff0c\u5982\u4e0b\u6240\u793a\uff1a"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:"const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config');\n\n/**\n * Metro configuration\n * https://reactnative.dev/docs/metro\n *\n * @type {import('metro-config').MetroConfig}\n */\n+ const path = require('path');\n\n- const config = {}\n+ const config = {\n+ // Make Metro able to resolve required external dependencies\n+ watchFolders: [\n+ path.resolve(__dirname, '../Library'),\n+ ],\n+ resolver: {\n+ extraNodeModules: {\n+ 'react-native': path.resolve(__dirname, 'node_modules/react-native'),\n+ },\n+ },\n+};\n\nmodule.exports = mergeConfig(getDefaultConfig(__dirname), config);\n"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"watchFolders"})," \u914d\u7f6e\u544a\u8bc9 Metro \u76d1\u89c6\u4e00\u4e9b\u9644\u52a0\u8def\u5f84\u4e2d\u7684\u6587\u4ef6\u548c\u66f4\u6539\uff0c\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\u662f ",(0,r.jsx)(n.code,{children:"../Library"})," \u8def\u5f84\uff0c\u5176\u4e2d\u5305\u542b\u4f60\u9700\u8981 ",(0,r.jsx)(n.code,{children:"src/index"})," \u6587\u4ef6\u3002",(0,r.jsx)(n.code,{children:"resolver"})," \u5c5e\u6027\u662f\u5fc5\u9700\u7684\uff0c\u4ee5\u4fbf\u4e3a\u5e93\u63d0\u4f9b\u5e94\u7528\u4f7f\u7528\u7684 React Native \u4ee3\u7801\u3002\u5e93\u53ef\u80fd\u4f1a\u5f15\u7528\u5e76\u5bfc\u5165 React Native \u4ee3\u7801\uff1a\u6ca1\u6709\u989d\u5916\u7684\u89e3\u6790\u5668\uff0c\u5e93\u4e2d\u7684\u5bfc\u5165\u5c06\u5931\u8d25\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u6b64\u65f6\uff0c\u4f60\u53ef\u4ee5\u50cf\u5f80\u5e38\u4e00\u6837\u6784\u5efa\u548c\u8fd0\u884c\u4f60\u7684\u5e94\u7528\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn android"})," \u4ece ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u6784\u5efa\u548c\u8fd0\u884c Android\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn ios"})," \u4ece ",(0,r.jsx)(n.code,{children:"example"})," \u6587\u4ef6\u5939\u6784\u5efa\u548c\u8fd0\u884c iOS\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5728-npm-\u4e0a\u53d1\u5e03\u5e93",children:"\u5728 NPM \u4e0a\u53d1\u5e03\u5e93"}),"\n",(0,r.jsxs)(n.p,{children:["\u53d1\u5e03\u5230 NPM \u7684\u8bbe\u7f6e\u5df2\u7ecf\u5230\u4f4d\uff0c\u611f\u8c22 ",(0,r.jsx)(n.code,{children:"create-react-native-library"}),"\u3002"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\u5728\u4f60\u7684\u6a21\u5757\u4e2d\u5b89\u88c5\u4f9d\u8d56\u9879 ",(0,r.jsx)(n.code,{children:"yarn install"}),"\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"yarn prepare"})," \u6784\u5efa\u5e93\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"yarn release"})," \u53d1\u5e03\u5b83\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\u7a0d\u7b49\u7247\u523b\uff0c\u4f60\u4f1a\u5728 NPM \u4e0a\u627e\u5230\u4f60\u7684\u5e93\u3002\u8981\u9a8c\u8bc1\u8fd9\u4e00\u70b9\uff0c\u8fd0\u884c\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm view \n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u5176\u4e2d ",(0,r.jsx)(n.code,{children:"package.name"})," \u662f\u4f60\u8bbe\u7f6e\u7684 ",(0,r.jsx)(n.code,{children:"name"}),"\uff0c\u5728\u5e93\u7684 ",(0,r.jsx)(n.code,{children:"package.json"})," \u6587\u4ef6\u4e2d\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u73b0\u5728\uff0c\u4f60\u53ef\u4ee5\u901a\u8fc7\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u5728\u4f60\u7684\u5e94\u7528\u4e2d\u5b89\u88c5\u5e93\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"yarn add \n"})}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsxs)(n.p,{children:["\u5bf9\u4e8e iOS \u6765\u8bf4\uff0c\u6bcf\u5f53\u5b89\u88c5\u4e00\u4e2a\u5e26\u6709\u539f\u751f\u4ee3\u7801\u7684\u65b0\u6a21\u5757\u65f6\uff0c\u4f60\u5fc5\u987b\u91cd\u65b0\u5b89\u88c5 CocoaPods\uff0c\u901a\u8fc7\u8fd0\u884c ",(0,r.jsx)(n.code,{children:"bundle exec pod install"}),"\uff08\u63a8\u8350\uff09\u6216 ",(0,r.jsx)(n.code,{children:"pod install"}),"\uff08\u4e0d\u63a8\u8350\uff09\u3002"]})}),"\n",(0,r.jsx)(n.p,{children:"\u606d\u559c\uff01\u4f60\u53d1\u5e03\u4e86\u4f60\u7684\u7b2c\u4e00\u4e2a React Native \u5e93\u3002"})]})}function h(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},34723:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/what-library-fdc7531153bfcf553ec30e2ab205480e.png"},43023:(e,n,i)=>{i.d(n,{R:()=>d,x:()=>l});var r=i(63696);const c={},s=r.createContext(c);function d(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:d(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/65200372.76012d8c.js b/assets/js/65200372.e0cbd1d1.js similarity index 99% rename from assets/js/65200372.76012d8c.js rename to assets/js/65200372.e0cbd1d1.js index b0bc89a5e8a..c8f86c1e15d 100644 --- a/assets/js/65200372.76012d8c.js +++ b/assets/js/65200372.e0cbd1d1.js @@ -37,7 +37,7 @@ const metadata = { "frontMatter": {}, "sidebar": "docs", "previous": { - "title": "appendix", + "title": "附录", "permalink": "/docs/appendix" }, "next": { diff --git a/assets/js/6fad45aa.0421e0a9.js b/assets/js/6fad45aa.060db986.js similarity index 66% rename from assets/js/6fad45aa.0421e0a9.js rename to assets/js/6fad45aa.060db986.js index 7b4051f31e3..44962ab7c31 100644 --- a/assets/js/6fad45aa.0421e0a9.js +++ b/assets/js/6fad45aa.060db986.js @@ -1 +1 @@ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[54007,31987,55378],{82030:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>m,frontMatter:()=>s,metadata:()=>l,toc:()=>u});var i=t(62540),a=t(43023),r=t(44067),o=t(49646),c=t(64034);const s={id:"fabric-native-components-android",title:"Fabric Native Modules: Android"},d=void 0,l={id:"fabric-native-components-android",title:"Fabric Native Modules: Android",description:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b Android \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a",source:"@site/versioned_docs/version-0.76/fabric-native-components-android.md",sourceDirName:".",slug:"/fabric-native-components-android",permalink:"/docs/fabric-native-components-android",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/fabric-native-components-android.md",tags:[],version:"0.76",frontMatter:{id:"fabric-native-components-android",title:"Fabric Native Modules: Android"}},p={},u=[{value:"1. \u4f7f\u7528 Gradle \u8fd0\u884c Codegen",id:"1-\u4f7f\u7528-gradle-\u8fd0\u884c-codegen",level:3},{value:"2. \u7f16\u5199 ReactWebView",id:"2-\u7f16\u5199-reactwebview",level:3},{value:"3. Write the WebViewManager",id:"3-write-the-webviewmanager",level:3},{value:"4. Write the ReactWebViewPackage",id:"4-write-the-reactwebviewpackage",level:3},{value:"5. Register the ReactWebViewPackage in the application",id:"5-register-the-reactwebviewpackage-in-the-application",level:3}];function h(e){const n={code:"code",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b Android \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u8fd0\u884c Codegen"}),"\n",(0,i.jsxs)(n.li,{children:["\u7f16\u5199 ",(0,i.jsx)(n.code,{children:"ReactWebView"})," \u7684\u4ee3\u7801"]}),"\n",(0,i.jsxs)(n.li,{children:["\u7f16\u5199 ",(0,i.jsx)(n.code,{children:"ReactWebViewManager"})," \u7684\u4ee3\u7801"]}),"\n",(0,i.jsxs)(n.li,{children:["\u7f16\u5199 ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," \u7684\u4ee3\u7801"]}),"\n",(0,i.jsxs)(n.li,{children:["\u5728\u5e94\u7528\u4e2d\u6ce8\u518c ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"1-\u4f7f\u7528-gradle-\u8fd0\u884c-codegen",children:"1. \u4f7f\u7528 Gradle \u8fd0\u884c Codegen"}),"\n",(0,i.jsx)(n.p,{children:"\u8fd0\u884c\u4e00\u6b21\u4ee5\u751f\u6210\u4f60\u7684 IDE \u53ef\u4ee5\u4f7f\u7528\u7684\u6837\u677f\u4ee3\u7801\u3002"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",metastring:'title="Demo/"',children:"cd android\n./gradlew generateCodegenArtifactsFromSchema\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Codegen \u5c06\u751f\u6210\u4f60\u9700\u8981\u5b9e\u73b0 ",(0,i.jsx)(n.code,{children:"ViewManager"})," \u63a5\u53e3\u548c ",(0,i.jsx)(n.code,{children:"ViewManager"})," \u59d4\u6258\u7684 web \u89c6\u56fe\u3002"]}),"\n",(0,i.jsxs)(n.h3,{id:"2-\u7f16\u5199-reactwebview",children:["2. \u7f16\u5199 ",(0,i.jsx)(n.code,{children:"ReactWebView"})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ReactWebView"})," \u662f\u5305\u88c5 Android \u539f\u751f\u89c6\u56fe\u7684\u7ec4\u4ef6\uff0cReact Native \u5c06\u5728\u4f7f\u7528\u81ea\u5b9a\u4e49\u7ec4\u4ef6\u65f6\u6e32\u67d3\u5b83\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u5728 ",(0,i.jsx)(n.code,{children:"android/src/main/java/com/webview"})," \u6587\u4ef6\u5939\u4e2d\u521b\u5efa\u4e00\u4e2a ",(0,i.jsx)(n.code,{children:"ReactWebView.java"})," \u6216 ",(0,i.jsx)(n.code,{children:"ReactWebView.kt"})," \u6587\u4ef6\uff0c\u5e76\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\uff1a"]}),"\n",(0,i.jsxs)(r.A,{groupId:"android-language",queryString:!0,defaultValue:c.A.defaultAndroidLanguage,values:c.A.androidLanguages,children:[(0,i.jsx)(o.A,{value:"java",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebView.java"',children:'package com.webview;\n\nimport android.content.Context;\nimport android.util.AttributeSet;\nimport android.webkit.WebView;\nimport android.webkit.WebViewClient;\n\nimport com.facebook.react.bridge.Arguments;\nimport com.facebook.react.bridge.WritableMap;\nimport com.facebook.react.bridge.ReactContext;\nimport com.facebook.react.uimanager.UIManagerHelper;\nimport com.facebook.react.uimanager.events.Event;\n\npublic class ReactWebView extends WebView {\n public ReactWebView(Context context) {\n super(context);\n configureComponent();\n }\n\n public ReactWebView(Context context, AttributeSet attrs) {\n super(context, attrs);\n configureComponent();\n }\n\n public ReactWebView(Context context, AttributeSet attrs, int defStyleAttr) {\n super(context, attrs, defStyleAttr);\n configureComponent();\n }\n\n private void configureComponent() {\n this.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));\n this.setWebViewClient(new WebViewClient() {\n @Override\n public void onPageFinished(WebView view, String url) {\n emitOnScriptLoaded(OnScriptLoadedEventResult.success);\n }\n });\n }\n\n public void emitOnScriptLoaded(OnScriptLoadedEventResult result) {\n ReactContext reactContext = (ReactContext) context;\n int surfaceId = UIManagerHelper.getSurfaceId(reactContext);\n EventDispatcher eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, getId());\n WritableMap payload = Arguments.createMap();\n payload.putString("result", result.name());\n\n OnScriptLoadedEvent event = new OnScriptLoadedEvent(surfaceId, getId(), payload);\n if (eventDispatcher != null) {\n eventDispatcher.dispatchEvent(event);\n }\n }\n\n public enum OnScriptLoadedEventResult {\n success,\n error\n }\n\n private class OnScriptLoadedEvent extends Event {\n private final WritableMap payload;\n\n OnScriptLoadedEvent(int surfaceId, int viewId, WritableMap payload) {\n super(surfaceId, viewId);\n this.payload = payload;\n }\n\n @Override\n public String getEventName() {\n return "onScriptLoaded";\n }\n\n @Override\n public WritableMap getEventData() {\n return payload;\n }\n }\n}\n'})})}),(0,i.jsx)(o.A,{value:"kotlin",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-kotlin",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebView.kt"',children:'package com.webview\n\nimport android.content.Context\nimport android.util.AttributeSet\nimport android.webkit.WebView\nimport android.webkit.WebViewClient\nimport com.facebook.react.bridge.Arguments\nimport com.facebook.react.bridge.WritableMap\nimport com.facebook.react.bridge.ReactContext\nimport com.facebook.react.uimanager.UIManagerHelper\nimport com.facebook.react.uimanager.events.Event\n\nclass ReactWebView: WebView {\n constructor(context: Context) : super(context) {\n configureComponent()\n }\n\n constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {\n configureComponent()\n }\n\n constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {\n configureComponent()\n }\n\n private fun configureComponent() {\n this.layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)\n this.webViewClient = object : WebViewClient() {\n override fun onPageFinished(view: WebView, url: String) {\n emitOnScriptLoaded(OnScriptLoadedEventResult.success)\n }\n }\n }\n\n fun emitOnScriptLoaded(result: OnScriptLoadedEventResult) {\n val reactContext = context as ReactContext\n val surfaceId = UIManagerHelper.getSurfaceId(reactContext)\n val eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, id)\n val payload =\n Arguments.createMap().apply {\n putString("result", result.name)\n }\n val event = OnScriptLoadedEvent(surfaceId, id, payload)\n\n eventDispatcher?.dispatchEvent(event)\n }\n\n enum class OnScriptLoadedEventResult() {\n success(),\n error()\n }\n\n inner class OnScriptLoadedEvent(\n surfaceId: Int,\n viewId: Int,\n private val payload: WritableMap\n ) : Event(surfaceId, viewId) {\n override fun getEventName() = "onScriptLoaded"\n\n override fun getEventData() = payload\n }\n}\n'})})})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ReactWebView"})," \u6269\u5c55\u4e86 Android ",(0,i.jsx)(n.code,{children:"WebView"}),"\uff0c\u56e0\u6b64\u4f60\u53ef\u4ee5\u8f7b\u677e\u5730\u91cd\u7528\u5e73\u53f0\u5df2\u7ecf\u5b9a\u4e49\u7684\u6240\u6709\u5c5e\u6027\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u8be5\u7c7b\u5b9a\u4e49\u4e86\u4e09\u4e2a Android \u6784\u9020\u51fd\u6570\uff0c\u4f46\u5c06\u5b83\u4eec\u7684\u5b9e\u9645\u5b9e\u73b0\u63a8\u8fdf\u5230\u79c1\u6709 ",(0,i.jsx)(n.code,{children:"configureComponent"})," \u51fd\u6570\u3002\u6b64\u51fd\u6570\u8d1f\u8d23\u521d\u59cb\u5316\u6240\u6709\u7ec4\u4ef6\u7684\u7279\u5b9a\u5c5e\u6027\uff1a\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u4f60\u6b63\u5728\u8bbe\u7f6e ",(0,i.jsx)(n.code,{children:"WebView"})," \u7684\u5e03\u5c40\uff0c\u5e76\u5b9a\u4e49\u4f60\u7528\u4e8e\u81ea\u5b9a\u4e49 ",(0,i.jsx)(n.code,{children:"WebView"})," \u884c\u4e3a\u7684 ",(0,i.jsx)(n.code,{children:"WebClient"}),"\u3002\u5728\u6b64\u4ee3\u7801\u4e2d\uff0c",(0,i.jsx)(n.code,{children:"ReactWebView"})," \u5728\u9875\u9762\u52a0\u8f7d\u5b8c\u6210\u540e\u901a\u8fc7\u5b9e\u73b0 ",(0,i.jsx)(n.code,{children:"WebClient"})," \u7684 ",(0,i.jsx)(n.code,{children:"onPageFinished"})," \u65b9\u6cd5\u6765\u53d1\u51fa\u4e8b\u4ef6\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u7136\u540e\uff0c\u4ee3\u7801\u5b9a\u4e49\u4e86\u4e00\u4e2a\u5b9e\u9645\u53d1\u51fa\u4e8b\u4ef6\u7684\u5e2e\u52a9\u51fd\u6570\u3002\u8981\u53d1\u51fa\u4e8b\u4ef6\uff0c\u4f60\u5fc5\u987b\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\u83b7\u53d6 ",(0,i.jsx)(n.code,{children:"ReactContext"})," \u7684\u5f15\u7528\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:["retrieve the ",(0,i.jsx)(n.code,{children:"surfaceId"})," of the view that you are presenting;"]}),"\n",(0,i.jsxs)(n.li,{children:["grab a reference to the ",(0,i.jsx)(n.code,{children:"eventDispatcher"})," associated with the view;"]}),"\n",(0,i.jsxs)(n.li,{children:["build the payload for the event using a ",(0,i.jsx)(n.code,{children:"WritableMap"})," object;"]}),"\n",(0,i.jsx)(n.li,{children:"create the event object that you need to send to JavaScript;"}),"\n",(0,i.jsxs)(n.li,{children:["call the ",(0,i.jsx)(n.code,{children:"eventDispatcher.dispatchEvent"})," to send the event."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"The last part of the file contains the definition of the data types you need to send the event:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The ",(0,i.jsx)(n.code,{children:"OnScriptLoadedEventResult"}),", with the possible outcomes of the ",(0,i.jsx)(n.code,{children:"OnScriptLoaded"})," event."]}),"\n",(0,i.jsxs)(n.li,{children:["The actual ``OnScriptLoadedEvent",(0,i.jsx)(n.code,{children:"that needs to extend the React Native's"}),"Event` class."]}),"\n"]}),"\n",(0,i.jsxs)(n.h3,{id:"3-write-the-webviewmanager",children:["3. Write the ",(0,i.jsx)(n.code,{children:"WebViewManager"})]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"WebViewManager"})," is the class that connects the React Native runtime with the native view."]}),"\n",(0,i.jsx)(n.p,{children:"When React receives the instruction from the app to render a specific component, React uses the registered view manager to create the view and to pass all the required properties."}),"\n",(0,i.jsxs)(n.p,{children:["This is the code of the ",(0,i.jsx)(n.code,{children:"ReactWebViewManager"}),"."]}),"\n",(0,i.jsxs)(r.A,{groupId:"android-language",queryString:!0,defaultValue:c.A.defaultAndroidLanguage,values:c.A.androidLanguages,children:[(0,i.jsx)(o.A,{value:"java",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebViewManager.java"',children:'package com.webview;\n\nimport com.facebook.react.bridge.ReactApplicationContext;\nimport com.facebook.react.module.annotations.ReactModule;\nimport com.facebook.react.uimanager.SimpleViewManager;\nimport com.facebook.react.uimanager.ThemedReactContext;\nimport com.facebook.react.uimanager.ViewManagerDelegate;\nimport com.facebook.react.uimanager.annotations.ReactProp;\nimport com.facebook.react.viewmanagers.CustomWebViewManagerInterface;\nimport com.facebook.react.viewmanagers.CustomWebViewManagerDelegate;\n\nimport java.util.HashMap;\nimport java.util.Map;\n\n@ReactModule(name = ReactWebViewManager.REACT_CLASS)\nclass ReactWebViewManager extends SimpleViewManager implements CustomWebViewManagerInterface {\n private final CustomWebViewManagerDelegate delegate =\n new CustomWebViewManagerDelegate<>(this);\n\n @Override\n public ViewManagerDelegate getDelegate() {\n return delegate;\n }\n\n @Override\n public String getName() {\n return REACT_CLASS;\n }\n\n @Override\n public ReactWebView createViewInstance(ThemedReactContext context) {\n return new ReactWebView(context);\n }\n\n @ReactProp(name = "sourceUrl")\n @Override\n public void setSourceURL(ReactWebView view, String sourceURL) {\n if (sourceURL == null) {\n view.emitOnScriptLoaded(ReactWebView.OnScriptLoadedEventResult.error);\n return;\n }\n view.loadUrl(sourceURL, new HashMap<>());\n }\n\n public static final String REACT_CLASS = "CustomWebView";\n\n @Override\n public Map getExportedCustomBubblingEventTypeConstants() {\n Map map = new HashMap<>();\n Map bubblingMap = new HashMap<>();\n bubblingMap.put("phasedRegistrationNames", new HashMap() {{\n put("bubbled", "onScriptLoaded");\n put("captured", "onScriptLoadedCapture");\n }});\n map.put("onScriptLoaded", bubblingMap);\n return map;\n }\n}\n'})})}),(0,i.jsx)(o.A,{value:"kotlin",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-kotlin",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebViewManager.kt"',children:'package com.webview\n\nimport com.facebook.react.bridge.ReactApplicationContext;\nimport com.facebook.react.module.annotations.ReactModule;\nimport com.facebook.react.uimanager.SimpleViewManager;\nimport com.facebook.react.uimanager.ThemedReactContext;\nimport com.facebook.react.uimanager.ViewManagerDelegate;\nimport com.facebook.react.uimanager.annotations.ReactProp;\nimport com.facebook.react.viewmanagers.CustomWebViewManagerInterface;\nimport com.facebook.react.viewmanagers.CustomWebViewManagerDelegate;\n\n@ReactModule(name = ReactWebViewManager.REACT_CLASS)\nclass ReactWebViewManager(context: ReactApplicationContext) : SimpleViewManager(), CustomWebViewManagerInterface {\n private val delegate: CustomWebViewManagerDelegate =\n CustomWebViewManagerDelegate(this)\n\n override fun getDelegate(): ViewManagerDelegate = delegate\n\n override fun getName(): String = REACT_CLASS\n\n override fun createViewInstance(context: ThemedReactContext): ReactWebView = ReactWebView(context)\n\n @ReactProp(name = "sourceUrl")\n override fun setSourceURL(view: ReactWebView, sourceURL: String?) {\n if (sourceURL == null) {\n view.emitOnScriptLoaded(ReactWebView.OnScriptLoadedEventResult.error)\n return;\n }\n view.loadUrl(sourceURL, emptyMap())\n }\n\n companion object {\n const val REACT_CLASS = "CustomWebView"\n }\n\n override fun getExportedCustomBubblingEventTypeConstants(): Map =\n mapOf(\n "onScriptLoaded" to\n mapOf(\n "phasedRegistrationNames" to\n mapOf(\n "bubbled" to "onScriptLoaded",\n "captured" to "onScriptLoadedCapture"\n )))\n}\n'})})})]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"ReactWebViewManager"})," extends the ",(0,i.jsx)(n.code,{children:"SimpleViewManager"})," class from React and implements the ",(0,i.jsx)(n.code,{children:"CustomWebViewManagerInterface"}),", generated by Codegen."]}),"\n",(0,i.jsxs)(n.p,{children:["It holds a reference of the ",(0,i.jsx)(n.code,{children:"CustomWebViewManagerDelegate"}),", another element generated by Codegen."]}),"\n",(0,i.jsxs)(n.p,{children:["It then overrides the ",(0,i.jsx)(n.code,{children:"getName"})," function, which must return the same name used in the spec's ",(0,i.jsx)(n.code,{children:"codegenNativeComponent"})," function call."]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"createViewInstance"})," function is responsible to instantiate a new ",(0,i.jsx)(n.code,{children:"ReactWebView"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Then, the ViewManager needs to define how all the React's compnoents props will update the native view. In the example, you need to decide how to handle the ",(0,i.jsx)(n.code,{children:"sourceURL"})," property that React will set on the ",(0,i.jsx)(n.code,{children:"WebView"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Finally, if the component can emit an event, you need to map the event name by overriding the ",(0,i.jsx)(n.code,{children:"getExportedCustomBubblingEventTypeConstants"})," for bubbling events, or the ",(0,i.jsx)(n.code,{children:"getExportedCustomDirectEventTypeConstants"})," for direct events."]}),"\n",(0,i.jsxs)(n.h3,{id:"4-write-the-reactwebviewpackage",children:["4. Write the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})]}),"\n",(0,i.jsxs)(n.p,{children:["As you do with Native Modules, Native Components also need to implement the ",(0,i.jsx)(n.code,{children:"ReactPackage"})," class. This is an object that you can use to register the component in the React Native runtime."]}),"\n",(0,i.jsxs)(n.p,{children:["This is the code for the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"}),":"]}),"\n",(0,i.jsxs)(r.A,{groupId:"android-language",queryString:!0,defaultValue:c.A.defaultAndroidLanguage,values:c.A.androidLanguages,children:[(0,i.jsx)(o.A,{value:"java",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebViewPackage.java"',children:"package com.webview;\n\nimport com.facebook.react.TurboReactPackage;\nimport com.facebook.react.bridge.NativeModule;\nimport com.facebook.react.bridge.ReactApplicationContext;\nimport com.facebook.react.module.model.ReactModuleInfo;\nimport com.facebook.react.module.model.ReactModuleInfoProvider;\nimport com.facebook.react.uimanager.ViewManager;\n\nimport java.util.Collections;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class ReactWebViewPackage extends TurboReactPackage {\n @Override\n public List> createViewManagers(ReactApplicationContext reactContext) {\n return Collections.singletonList(new ReactWebViewManager(reactContext));\n }\n\n @Override\n public NativeModule getModule(String s, ReactApplicationContext reactApplicationContext) {\n if (ReactWebViewManager.REACT_CLASS.equals(s)) {\n return new ReactWebViewManager(reactApplicationContext);\n }\n return null;\n }\n\n @Override\n public ReactModuleInfoProvider getReactModuleInfoProvider() {\n return new ReactModuleInfoProvider() {\n @Override\n public Map get() {\n Map map = new HashMap<>();\n map.put(ReactWebViewManager.REACT_CLASS, new ReactModuleInfo(\n ReactWebViewManager.REACT_CLASS, // name\n ReactWebViewManager.REACT_CLASS, // className\n false, // canOverrideExistingModule\n false, // needsEagerInit\n false, // isCxxModule\n true // isTurboModule\n ));\n return map;\n }\n };\n }\n}\n"})})}),(0,i.jsx)(o.A,{value:"kotlin",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-kotlin",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebView.kt"',children:"package com.webview\n\nimport com.facebook.react.TurboReactPackage\nimport com.facebook.react.bridge.NativeModule\nimport com.facebook.react.bridge.ReactApplicationContext\nimport com.facebook.react.module.model.ReactModuleInfo\nimport com.facebook.react.module.model.ReactModuleInfoProvider\nimport com.facebook.react.uimanager.ViewManager\n\nclass ReactWebViewPackage : TurboReactPackage() {\n override fun createViewManagers(reactContext: ReactApplicationContext): List> {\n return listOf(ReactWebViewManager(reactContext))\n }\n\n override fun getModule(s: String, reactApplicationContext: ReactApplicationContext): NativeModule? {\n when (s) {\n ReactWebViewManager.REACT_CLASS -> ReactWebViewManager(reactApplicationContext)\n }\n return null\n }\n\n override fun getReactModuleInfoProvider(): ReactModuleInfoProvider = ReactModuleInfoProvider {\n mapOf(ReactWebViewManager.REACT_CLASS to ReactModuleInfo(\n _name = ReactWebViewManager.REACT_CLASS,\n _className = ReactWebViewManager.REACT_CLASS,\n _canOverrideExistingModule = false,\n _needsEagerInit = false,\n isCxxModule = false,\n isTurboModule = true,\n )\n )\n }\n}\n"})})})]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," extends the ",(0,i.jsx)(n.code,{children:"TurboReactPackage"})," and implements all the methods required to properly register our component."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"createViewManagers"})," method is the factory method that creates the ",(0,i.jsx)(n.code,{children:"ViewManager"})," that manage the custom views."]}),"\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"getModule"})," method returns the proper ViewManager depending on the View that React Native needs to render."]}),"\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"getReactModuleInfoProvider"})," provides all the information required when registering the module in the runtime,"]}),"\n"]}),"\n",(0,i.jsxs)(n.h3,{id:"5-register-the-reactwebviewpackage-in-the-application",children:["5. Register the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," in the application"]}),"\n",(0,i.jsxs)(n.p,{children:["Finally, you need to register the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," in the application. We do that by modifying the ",(0,i.jsx)(n.code,{children:"MainApplication"})," file by adding the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," to the list of packages returned by the ",(0,i.jsx)(n.code,{children:"getPackages"})," function."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-kotlin",metastring:'title="Demo/app/src/main/java/com/demo/MainApplication.kt"',children:'package com.demo\n\nimport android.app.Application\nimport com.facebook.react.PackageList\nimport com.facebook.react.ReactApplication\nimport com.facebook.react.ReactHost\nimport com.facebook.react.ReactNativeHost\nimport com.facebook.react.ReactPackage\nimport com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load\nimport com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\nimport com.facebook.react.defaults.DefaultReactNativeHost\nimport com.facebook.react.soloader.OpenSourceMergedSoMapping\nimport com.facebook.soloader.SoLoader\n// highlight-next-line\nimport com.webview.ReactWebViewPackage\n\nclass MainApplication : Application(), ReactApplication {\n\n override val reactNativeHost: ReactNativeHost =\n object : DefaultReactNativeHost(this) {\n override fun getPackages(): List =\n PackageList(this).packages.apply {\n // highlight-next-line\n add(ReactWebViewPackage())\n }\n\n override fun getJSMainModuleName(): String = "index"\n\n override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG\n\n override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED\n override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED\n }\n\n override val reactHost: ReactHost\n get() = getDefaultReactHost(applicationContext, reactNativeHost)\n\n override fun onCreate() {\n super.onCreate()\n SoLoader.init(this, OpenSourceMergedSoMapping)\n if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n load()\n }\n }\n}\n\n'})})]})}function m(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},4608:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var i=t(62540),a=t(43023);t(44067),t(49646),t(64034);const r={id:"fabric-native-components-ios",title:"Fabric Native Components: iOS"},o=void 0,c={id:"fabric-native-components-ios",title:"Fabric Native Components: iOS",description:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b iOS \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a",source:"@site/versioned_docs/version-0.76/fabric-native-components-ios.md",sourceDirName:".",slug:"/fabric-native-components-ios",permalink:"/docs/fabric-native-components-ios",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/fabric-native-components-ios.md",tags:[],version:"0.76",frontMatter:{id:"fabric-native-components-ios",title:"Fabric Native Components: iOS"}},s={},d=[{value:"1. \u8fd0\u884c Codegen",id:"1-\u8fd0\u884c-codegen",level:3},{value:"3. \u7f16\u5199 RCTWebView",id:"3-\u7f16\u5199-rctwebview",level:3},{value:"AppDelegate.mm",id:"appdelegatemm",level:4}];function l(e){const n={a:"a",admonition:"admonition",code:"code",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b iOS \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u8fd0\u884c Codegen\u3002"}),"\n",(0,i.jsxs)(n.li,{children:["\u7f16\u5199 ",(0,i.jsx)(n.code,{children:"RCTWebView"})," \u7684\u4ee3\u7801"]}),"\n",(0,i.jsxs)(n.li,{children:["\u5728\u5e94\u7528\u4e2d\u6ce8\u518c ",(0,i.jsx)(n.code,{children:"RCTWebView"})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"1-\u8fd0\u884c-codegen",children:"1. \u8fd0\u884c Codegen"}),"\n",(0,i.jsxs)(n.p,{children:["\u4f60\u53ef\u4ee5",(0,i.jsx)(n.a,{href:"the-new-architecture/codegen-cli",children:"\u624b\u52a8\u8fd0\u884c"})," Codegen\uff0c\u5f53\u7136\u76f4\u63a5\u4f7f\u7528\u4f60\u5c06\u8981\u6f14\u793a\u7ec4\u4ef6\u7684\u5e94\u7528\u6765\u5b8c\u6210\u6b64\u64cd\u4f5c\u4f1a\u66f4\u7b80\u5355\u3002"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"cd ios\nbundle install\nbundle exec pod install\n"})}),"\n",(0,i.jsx)(n.p,{children:"\u91cd\u8981\u7684\u662f\u4f60\u4f1a\u770b\u5230 Codegen \u7684\u65e5\u5fd7\u8f93\u51fa\uff0c\u6211\u4eec\u5c06\u5728 Xcode \u4e2d\u4f7f\u7528\u5b83\u6765\u6784\u5efa WebView \u539f\u751f\u7ec4\u4ef6\u3002"}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["\u6ce8\u610f\u4e0d\u8981\u5c06\u751f\u6210\u7684\u4ee3\u7801\u63d0\u4ea4\u5230\u4f60\u7684\u4ed3\u5e93\u4e2d\u3002\u751f\u6210\u7684\u4ee3\u7801\u4e0e React Native \u7684\u7248\u672c\u76f8\u5173\u3002\u4f7f\u7528 npm ",(0,i.jsx)(n.a,{href:"https://nodejs.org/en/blog/npm/peer-dependencies",children:"peerDependencies"})," \u6765\u7ea6\u675f\u4e0e React Native \u7248\u672c\u7684\u517c\u5bb9\u6027\u3002"]})}),"\n",(0,i.jsxs)(n.h3,{id:"3-\u7f16\u5199-rctwebview",children:["3. \u7f16\u5199 ",(0,i.jsx)(n.code,{children:"RCTWebView"})]}),"\n",(0,i.jsxs)(n.p,{children:["\u6211\u4eec\u9700\u8981\u4f7f\u7528 Xcode \u5b8c\u6210\u4ee5\u4e0b ",(0,i.jsx)(n.strong,{children:"5 \u6b65"}),"\uff1a"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"\u6253\u5f00 CocoPods \u751f\u6210\u7684 Xcode workspace \u6587\u4ef6\uff1a"}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"cd ios\nopen Demo.xcworkspace\n"})}),"\n",(0,i.jsx)("img",{class:"half-size",alt:"Open Xcode Workspace",src:"/docs/assets/fabric-native-components/1.webp"}),"\n",(0,i.jsxs)(n.ol,{start:"2",children:["\n",(0,i.jsxs)(n.li,{children:["\u53f3\u952e\u70b9\u51fb\u5e94\u7528\uff0c\u9009\u62e9 ",(0,i.jsx)("code",{children:"New Group"}),"\uff0c\u5c06\u65b0\u7ec4\u547d\u540d\u4e3a ",(0,i.jsx)(n.code,{children:"WebView"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)("img",{class:"half-size",alt:"Right click on app and select New Group",src:"/docs/assets/fabric-native-components/2.webp"}),"\n",(0,i.jsxs)(n.ol,{start:"3",children:["\n",(0,i.jsxs)(n.li,{children:["\u5728 ",(0,i.jsx)(n.code,{children:"WebView"})," \u7ec4\u4e2d\uff0c\u521b\u5efa ",(0,i.jsx)("code",{children:"New"}),"\u2192",(0,i.jsx)("code",{children:"File from Template"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)("img",{class:"half-size",alt:"Create a new file using the Cocoa Touch Classs template",src:"/docs/assets/fabric-native-components/3.webp"}),"\n",(0,i.jsxs)(n.ol,{start:"4",children:["\n",(0,i.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,i.jsx)("code",{children:"Objective-C File"})," \u6a21\u677f\uff0c\u5e76\u547d\u540d\u4e3a ",(0,i.jsx)("code",{children:"RCTWebView"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)("img",{class:"half-size",alt:"Create an Objective-C RCTWebView class",src:"/docs/assets/fabric-native-components/4.webp"}),"\n",(0,i.jsxs)(n.ol,{start:"5",children:["\n",(0,i.jsxs)(n.li,{children:["\u5c06 ",(0,i.jsx)("code",{children:"RCTWebView.m"})," \u91cd\u547d\u540d\u4e3a ",(0,i.jsx)("code",{children:"RCTWebView.mm"}),"\uff0c\u4f7f\u5176\u6210\u4e3a Objective-C++ \u6587\u4ef6\u3002"]}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",metastring:'title="Demo/ios"',children:"Podfile\n...\nDemo\n\u251c\u2500\u2500 AppDelegate.h\n\u251c\u2500\u2500 AppDelegate.mm\n...\n// highlight-start\n\u251c\u2500\u2500 RCTWebView.h\n\u251c\u2500\u2500 RCTWebView.mm\n// highlight-end\n\u2514\u2500\u2500 main.m\n"})}),"\n",(0,i.jsx)(n.p,{children:"\u521b\u5efa\u5934\u6587\u4ef6\u548c\u5b9e\u73b0\u6587\u4ef6\u540e\uff0c\u53ef\u4ee5\u5f00\u59cb\u5b9e\u73b0\u5b83\u4eec\u3002"}),"\n",(0,i.jsxs)(n.p,{children:["\u4ee5\u4e0b\u662f ",(0,i.jsx)(n.code,{children:"RCTWebView.h"})," \u6587\u4ef6\u7684\u4ee3\u7801\uff0c\u58f0\u660e\u4e86\u7ec4\u4ef6\u63a5\u53e3\u3002"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-objc",metastring:'title="Demo/RCTWebView/RTNWebView.h"',children:"#import \n#import \n\nNS_ASSUME_NONNULL_BEGIN\n\n@interface RCTWebView : RCTViewComponentView\n\n// \u4f60\u53ef\u4ee5\u5728\u89c6\u56fe\u4e2d\u58f0\u660e\u4f60\u60f3\u8981\u8bbf\u95ee\u7684\u539f\u751f\u65b9\u6cd5\n\n@end\n\nNS_ASSUME_NONNULL_END\n"})}),"\n",(0,i.jsxs)(n.p,{children:["\u8fd9\u4e2a\u7c7b\u5b9a\u4e49\u4e86\u4e00\u4e2a ",(0,i.jsx)(n.code,{children:"RCTWebView"}),"\uff0c\u5b83\u6269\u5c55\u4e86 ",(0,i.jsx)(n.code,{children:"RCTViewComponentView"})," \u7c7b\u3002\u8fd9\u662f\u6240\u6709\u539f\u751f\u7ec4\u4ef6\u7684\u57fa\u7840\u7c7b\uff0c\u7531 React Native \u63d0\u4f9b\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u4ee5\u4e0b\u662f\u5b9e\u73b0\u6587\u4ef6 (",(0,i.jsx)(n.code,{children:"RCTWebView.mm"}),") \u7684\u4ee3\u7801\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-objc",metastring:'title="Demo/RCTWebView/RCTWebView.mm"',children:'#import "RCTWebView.h"\n\n#import \n#import \n#import \n#import \n// highlight-next-line\n#import \n\nusing namespace facebook::react;\n\n@interface RCTWebView () \n@end\n\n@implementation RCTWebView {\n NSURL * _sourceURL;\n WKWebView * _webView;\n}\n\n-(instancetype)init\n{\n if(self = [super init]) {\n // highlight-start\n _webView = [WKWebView new];\n _webView.navigationDelegate = self;\n [self addSubview:_webView];\n // highlight-end\n }\n return self;\n}\n\n- (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &)oldProps\n{\n const auto &oldViewProps = *std::static_pointer_cast(_props);\n const auto &newViewProps = *std::static_pointer_cast(props);\n\n // Handle your props here\n if (oldViewProps.sourceURL != newViewProps.sourceURL) {\n NSString *urlString = [NSString stringWithCString:newViewProps.sourceURL.c_str() encoding:NSUTF8StringEncoding];\n _sourceURL = [NSURL URLWithString:urlString];\n // highlight-start\n if ([self urlIsValid:newViewProps.sourceURL]) {\n [_webView loadRequest:[NSURLRequest requestWithURL:_sourceURL]];\n }\n // highlight-end\n }\n\n [super updateProps:props oldProps:oldProps];\n}\n\n-(void)layoutSubviews\n{\n [super layoutSubviews];\n _webView.frame = self.bounds;\n\n}\n\n#pragma mark - WKNavigationDelegate\n\n// highlight-start\n-(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation\n{\n CustomWebViewEventEmitter::OnScriptLoaded result = CustomWebViewEventEmitter::OnScriptLoaded{CustomWebViewEventEmitter::OnScriptLoadedResult::Success};\n self.eventEmitter.onScriptLoaded(result);\n}\n\n- (BOOL)urlIsValid:(std::string)propString\n{\n if (propString.length() > 0 && !_sourceURL) {\n CustomWebViewEventEmitter::OnScriptLoaded result = CustomWebViewEventEmitter::OnScriptLoaded{CustomWebViewEventEmitter::OnScriptLoadedResult::Error};\n\n self.eventEmitter.onScriptLoaded(result);\n return NO;\n }\n return YES;\n}\n\n// Event emitter convenience method\n- (const CustomWebViewEventEmitter &)eventEmitter\n{\n return static_cast(*_eventEmitter);\n}\n// highlight-end\n\n+ (ComponentDescriptorProvider)componentDescriptorProvider\n{\n return concreteComponentDescriptorProvider();\n}\n\nClass WebViewCls(void)\n{\n return RCTWebView.class;\n}\n\n@end\n'})}),"\n",(0,i.jsx)(n.p,{children:"\u8fd9\u6bb5\u4ee3\u7801\u662f\u7528 Objective-C++ \u7f16\u5199\u7684\uff0c\u5305\u542b\u4ee5\u4e0b\u7ec6\u8282\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"@interface"})," \u5b9e\u73b0\u4e86\u4e24\u4e2a\u534f\u8bae\uff1a","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"RCTCustomWebViewViewProtocol"}),", generated by Codegen;"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"WKNavigationDelegate"}),", \u7531 WebKit \u6846\u67b6\u63d0\u4f9b\uff0c\u7528\u4e8e\u5904\u7406 web \u89c6\u56fe\u5bfc\u822a\u4e8b\u4ef6\uff1b"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"init"})," \u65b9\u6cd5\u5b9e\u4f8b\u5316 ",(0,i.jsx)(n.code,{children:"WKWebView"}),"\uff0c\u5c06\u5176\u6dfb\u52a0\u5230\u5b50\u89c6\u56fe\uff0c\u5e76\u8bbe\u7f6e ",(0,i.jsx)(n.code,{children:"navigationDelegate"}),"\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"updateProps"})," \u65b9\u6cd5\uff0c\u7531 React Native \u5728\u7ec4\u4ef6\u7684\u5c5e\u6027\u53d8\u5316\u65f6\u8c03\u7528\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"layoutSubviews"})," \u65b9\u6cd5\uff0c\u63cf\u8ff0\u4e86\u81ea\u5b9a\u4e49\u89c6\u56fe\u9700\u8981\u5982\u4f55\u5e03\u5c40\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"webView:didFinishNavigation:"})," \u65b9\u6cd5\uff0c\u7528\u4e8e\u5904\u7406 ",(0,i.jsx)(n.code,{children:"WKWebView"})," \u5b8c\u6210\u52a0\u8f7d\u9875\u9762\u65f6\u9700\u8981\u6267\u884c\u7684\u64cd\u4f5c\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"urlIsValid:(std::string)propString"})," \u65b9\u6cd5\u68c0\u67e5\u63a5\u6536\u5230\u7684 URL \u5c5e\u6027\u662f\u5426\u6709\u6548\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"eventEmitter"})," \u65b9\u6cd5\uff0c\u7528\u4e8e\u68c0\u7d22\u5f3a\u7c7b\u578b\u7684 ",(0,i.jsx)(n.code,{children:"eventEmitter"})," \u5b9e\u4f8b\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"componentDescriptorProvider"})," \u65b9\u6cd5\uff0c\u8fd4\u56de\u7531 Codegen \u751f\u6210\u7684 ",(0,i.jsx)(n.code,{children:"ComponentDescriptor"}),"\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"WebViewCls"})," \u65b9\u6cd5\uff0c\u7528\u4e8e\u5728\u5e94\u7528\u4e2d\u6ce8\u518c ",(0,i.jsx)(n.code,{children:"RCTWebView"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"appdelegatemm",children:"AppDelegate.mm"}),"\n",(0,i.jsxs)(n.p,{children:["\u6700\u540e\uff0c\u53ef\u4ee5\u5728\u5e94\u7528\u4e2d\u6ce8\u518c\u7ec4\u4ef6\u3002\u66f4\u65b0 ",(0,i.jsx)(n.code,{children:"AppDelegate.mm"})," \u6587\u4ef6\uff0c\u4f7f\u5e94\u7528\u610f\u8bc6\u5230\u81ea\u5b9a\u4e49\u7684 WebView \u7ec4\u4ef6\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-objc",metastring:'title="Demo/ios/Demo/AppDelegate.mm"',children:'#import "AppDelegate.h"\n\n#import \n// highlight-start\n#import \n#import "RCTWebView.h"\n// highlight-end\n@implementation AppDelegate\n// ...\n// highlight-start\n- (NSDictionary> *)thirdPartyFabricComponents\n{\n NSMutableDictionary * dictionary = [super thirdPartyFabricComponents].mutableCopy;\n dictionary[@"CustomWebView"] = [RCTWebView class];\n return dictionary;\n}\n// highlight-end\n\n@end\n'})}),"\n",(0,i.jsxs)(n.p,{children:["\u8fd9\u6bb5\u4ee3\u7801\u901a\u8fc7\u83b7\u53d6\u6765\u81ea\u5176\u4ed6\u6765\u6e90\uff08\u5982\u7b2c\u4e09\u65b9\u5e93\uff09\u7684\u7b2c\u4e09\u65b9\u7ec4\u4ef6\u5b57\u5178\u7684\u53ef\u53d8\u526f\u672c\uff0c\u91cd\u5199\u4e86 ",(0,i.jsx)(n.code,{children:"thirdPartyFabricComponents"})," \u65b9\u6cd5\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u7136\u540e\uff0c\u5411\u5b57\u5178\u4e2d\u6dfb\u52a0\u4e00\u4e2a\u6761\u76ee\uff0c\u6761\u76ee\u540d\u79f0\u4e0e Codegen \u89c4\u8303\u6587\u4ef6\u4e2d\u4f7f\u7528\u7684\u540d\u79f0\u76f8\u540c\u3002\u8fd9\u6837\uff0c\u5f53 React \u9700\u8981\u52a0\u8f7d\u540d\u79f0 ",(0,i.jsx)(n.code,{children:"CustomWebView"})," \u7684\u7ec4\u4ef6\u65f6\uff0cReact Native \u5c06\u5b9e\u4f8b\u5316 ",(0,i.jsx)(n.code,{children:"RCTWebView"}),"\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u6700\u540e\uff0c\u8fd4\u56de\u65b0\u7684\u5b57\u5178\u3002"}),"\n",(0,i.jsxs)(n.admonition,{type:"warning",children:[(0,i.jsx)(n.p,{children:"\u6211\u4eec\u610f\u8bc6\u5230 iOS \u5b58\u5728\u4e00\u4e9b\u95ee\u9898\uff0c\u5f53\u4f7f\u7528\u81ea\u5b9a\u4e49 iOS \u7ec4\u4ef6\u6784\u5efa\u5e94\u7528\u65f6\u4f1a\u51fa\u73b0\u95ee\u9898\u3002"}),(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\u7ec4\u4ef6\u9700\u8981\u8bbf\u95ee ",(0,i.jsx)(n.code,{children:"yoga/style/Style.h"})," \u5934\u6587\u4ef6\uff0c\u4f46\u5f53\u524d\u5e94\u7528\u65e0\u6cd5\u8bbf\u95ee\u3002\u4e3a\u6b64\uff0c\u5c06 ",(0,i.jsx)(n.code,{children:"$(PODS_ROOT)/Headers/Private/Yoga"})," \u8def\u5f84\u6dfb\u52a0\u5230\u5e94\u7528\u7684\u5934\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u6784\u5efa\u8bbe\u7f6e\u4e2d\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:["Codegen \u5728 ",(0,i.jsx)(n.code,{children:"RCTThirdPartyFabricComponentsProvider"})," \u4e2d\u751f\u6210\u4e86\u4e00\u884c\u4e0d\u9700\u8981\u751f\u6210\u7684\u4ee3\u7801\u3002\u5220\u9664 ",(0,i.jsx)(n.code,{children:"RCTThirdPartyFabricComponentsProvider.h"})," \u548c ",(0,i.jsx)(n.code,{children:"RCTThirdPartyFabricComponentsProvider.mm"})," \u6587\u4ef6\u4e2d\u5e26\u6709 ",(0,i.jsx)(n.code,{children:"WebViewCls"})," \u7b26\u53f7\u7684\u884c\u3002"]}),"\n"]}),(0,i.jsx)(n.p,{children:"\u6211\u4eec\u5df2\u7ecf\u4fee\u590d\u4e86\u8fd9\u4e9b\u95ee\u9898\uff0c\u5b83\u4eec\u5c06\u5728 React Native 0.76.1 \u4e2d\u53d1\u5e03\u3002"})]})]})}function p(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},27768:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>g,contentTitle:()=>h,default:()=>x,frontMatter:()=>u,metadata:()=>m,toc:()=>b});var i=t(62540),a=t(43023),r=t(44067),o=t(49646),c=t(64034),s=t(4608),d=t(82030);function l(){return(0,i.jsx)(s.default,{})}function p(){return(0,i.jsx)(d.default,{})}const u={id:"fabric-native-components-introduction",title:"Fabric Native Components Introduction"},h="\u539f\u751f\u7ec4\u4ef6",m={id:"fabric-native-components-introduction",title:"Fabric Native Components Introduction",description:"\u5982\u679c\u4f60\u60f3\u6784\u5efa\u4e00\u4e2a \u65b0\u67b6\u6784 \u7684 React Native \u7ec4\u4ef6\uff0c\u8be5\u7ec4\u4ef6\u53ef\u4ee5\u5305\u88c5\u4e00\u4e2a Host Component\uff0c\u4f8b\u5982 Android \u4e0a\u7684 CheckBox\uff0c\u6216\u8005 iOS \u4e0a\u7684 UIButton\uff0c\u4f60\u5e94\u8be5\u4f7f\u7528 Fabric \u539f\u751f\u7ec4\u4ef6\u3002",source:"@site/versioned_docs/version-0.76/fabric-native-components.md",sourceDirName:".",slug:"/fabric-native-components-introduction",permalink:"/docs/fabric-native-components-introduction",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/fabric-native-components.md",tags:[],version:"0.76",frontMatter:{id:"fabric-native-components-introduction",title:"Fabric Native Components Introduction"},sidebar:"docs",previous:{title:"\u9ad8\u7ea7\uff1a\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b",permalink:"/docs/the-new-architecture/custom-cxx-types"},next:{title:"appendix",permalink:"/docs/appendix"}},g={},b=[{value:"\u521b\u5efa\u4e00\u4e2a WebView \u7ec4\u4ef6",id:"\u521b\u5efa\u4e00\u4e2a-webview-\u7ec4\u4ef6",level:2},{value:"1. \u5b9a\u4e49 Codegen \u89c4\u8303",id:"1-\u5b9a\u4e49-codegen-\u89c4\u8303",level:2},{value:"2. \u914d\u7f6e Codegen \u8fd0\u884c",id:"2-\u914d\u7f6e-codegen-\u8fd0\u884c",level:2},{value:"2. \u6784\u5efa\u539f\u751f\u4ee3\u7801",id:"2-\u6784\u5efa\u539f\u751f\u4ee3\u7801",level:2},{value:"3. \u4f7f\u7528\u4f60\u7684\u539f\u751f\u7ec4\u4ef6",id:"3-\u4f7f\u7528\u4f60\u7684\u539f\u751f\u7ec4\u4ef6",level:2},{value:"5. \u8fd0\u884c\u5e94\u7528\u4f7f\u7528 WebView \u7ec4\u4ef6",id:"5-\u8fd0\u884c\u5e94\u7528\u4f7f\u7528-webview-\u7ec4\u4ef6",level:2}];function v(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"\u539f\u751f\u7ec4\u4ef6",children:"\u539f\u751f\u7ec4\u4ef6"})}),"\n",(0,i.jsxs)(n.p,{children:["\u5982\u679c\u4f60\u60f3\u6784\u5efa\u4e00\u4e2a ",(0,i.jsx)(n.em,{children:"\u65b0\u67b6\u6784"})," \u7684 React Native \u7ec4\u4ef6\uff0c\u8be5\u7ec4\u4ef6\u53ef\u4ee5\u5305\u88c5\u4e00\u4e2a ",(0,i.jsx)(n.a,{href:"https://reactnative.dev/architecture/glossary#host-view-tree-and-host-view",children:"Host Component"}),"\uff0c\u4f8b\u5982 Android \u4e0a\u7684 ",(0,i.jsx)(n.a,{href:"https://developer.android.com/reference/androidx/appcompat/widget/AppCompatCheckBox",children:"CheckBox"}),"\uff0c\u6216\u8005 iOS \u4e0a\u7684 ",(0,i.jsx)(n.a,{href:"https://developer.apple.com/documentation/uikit/uibutton?language=objc",children:"UIButton"}),"\uff0c\u4f60\u5e94\u8be5\u4f7f\u7528 Fabric \u539f\u751f\u7ec4\u4ef6\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u672c\u6307\u5357\u5c06\u4ee5\u5b9e\u73b0\u4e00\u4e2a web \u89c6\u56fe\u7ec4\u4ef6\u4e3a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u6784\u5efa Fabric \u539f\u751f\u7ec4\u4ef6\u3002\u6b65\u9aa4\u5982\u4e0b\uff1a"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"\u4f7f\u7528 Flow \u6216 TypeScript \u5b9a\u4e49\u4e00\u4e2a JavaScript \u89c4\u8303\u3002"}),"\n",(0,i.jsx)(n.li,{children:"\u914d\u7f6e\u4f9d\u8d56\u7ba1\u7406\u7cfb\u7edf\u7684\u4ee3\u7801\u751f\u6210\u529f\u80fd\uff0c\u5e76\u81ea\u52a8\u94fe\u63a5\u3002"}),"\n",(0,i.jsx)(n.li,{children:"\u5b9e\u73b0\u539f\u751f\u4ee3\u7801\u3002"}),"\n",(0,i.jsx)(n.li,{children:"\u5728\u5e94\u7528\u4e2d\u4f7f\u7528\u8be5\u7ec4\u4ef6\u3002"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"\u4f60\u9700\u8981\u4e00\u4e2a\u666e\u901a\u7684\u6a21\u677f\u751f\u6210\u5e94\u7528\u6765\u4f7f\u7528\u8be5\u7ec4\u4ef6\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npx @react-native-community/cli@latest init Demo --install-pods false\n"})}),"\n",(0,i.jsx)(n.h2,{id:"\u521b\u5efa\u4e00\u4e2a-webview-\u7ec4\u4ef6",children:"\u521b\u5efa\u4e00\u4e2a WebView \u7ec4\u4ef6"}),"\n",(0,i.jsxs)(n.p,{children:["\u672c\u6307\u5357\u5c06\u5c55\u793a\u5982\u4f55\u521b\u5efa\u4e00\u4e2a Web View \u7ec4\u4ef6\u3002\u6211\u4eec\u5c06\u4f7f\u7528 Android \u7684 ",(0,i.jsx)(n.a,{href:"https://developer.android.com/reference/android/webkit/WebView",children:(0,i.jsx)(n.code,{children:"WebView"})})," \u7ec4\u4ef6\u548c iOS \u7684 ",(0,i.jsx)(n.a,{href:"https://developer.apple.com/documentation/webkit/wkwebview?language=objc",children:(0,i.jsx)(n.code,{children:"WKWebView"})})," \u7ec4\u4ef6\u6765\u521b\u5efa\u8be5\u7ec4\u4ef6\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u9996\u5148\uff0c\u521b\u5efa\u4e00\u4e2a\u6587\u4ef6\u5939\u7ed3\u6784\u6765\u5b58\u653e\u7ec4\u4ef6\u7684\u4ee3\u7801\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"mkdir -p Demo/{specs,android/app/src/main/java/com/webview}\n"})}),"\n",(0,i.jsx)(n.p,{children:"\u8fd9\u5c06\u521b\u5efa\u4ee5\u4e0b\u5e03\u5c40\uff0c\u4f60\u5c06\u5728\u5176\u4e2d\u5de5\u4f5c\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"Demo\n\u251c\u2500\u2500 android/app/src/main/java/com/webview\n\u2514\u2500\u2500 ios\n\u2514\u2500\u2500 spec\n"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"android/app/src/main/java/com/webview"})," \u6587\u4ef6\u5939\u662f\u5b58\u653e Android \u4ee3\u7801\u7684\u6587\u4ef6\u5939\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"ios"})," \u6587\u4ef6\u5939\u662f\u5b58\u653e iOS \u4ee3\u7801\u7684\u6587\u4ef6\u5939\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"spec"})," \u6587\u4ef6\u5939\u662f\u5b58\u653e Codegen \u89c4\u8303\u6587\u4ef6\u7684\u6587\u4ef6\u5939\u3002"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"1-\u5b9a\u4e49-codegen-\u89c4\u8303",children:"1. \u5b9a\u4e49 Codegen \u89c4\u8303"}),"\n",(0,i.jsxs)(n.p,{children:["\u4f60\u7684\u89c4\u8303\u5fc5\u987b\u4f7f\u7528 ",(0,i.jsx)(n.a,{href:"https://www.typescriptlang.org/",children:"TypeScript"})," \u6216 ",(0,i.jsx)(n.a,{href:"https://flow.org/",children:"Flow"})," \u5b9a\u4e49\uff08\u66f4\u591a\u8be6\u60c5\u8bf7\u53c2\u9605 ",(0,i.jsx)(n.a,{href:"the-new-architecture/what-is-codegen",children:"Codegen"})," \u6587\u6863\uff09\u3002\u8fd9\u662f\u7531 Codegen \u751f\u6210 C++\u3001Objective-C++ \u548c Java \u4ee3\u7801\uff0c\u4ee5\u8fde\u63a5\u4f60\u7684\u5e73\u53f0\u4ee3\u7801\u5230 React \u8fd0\u884c\u7684 JavaScript \u8fd0\u884c\u65f6\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u89c4\u8303\u6587\u4ef6\u5fc5\u987b\u547d\u540d\u4e3a ",(0,i.jsx)(n.code,{children:"NativeComponent.{ts|js}"})," \u624d\u80fd\u88ab Codegen \u8bc6\u522b\u3002",(0,i.jsx)(n.code,{children:"NativeComponent"})," \u540e\u7f00\u4e0d\u4ec5\u662f\u4e00\u4e2a\u7ea6\u5b9a\uff0c\u5b9e\u9645\u4e0a\u662f\u7531 Codegen \u7528\u4e8e\u68c0\u6d4b\u89c4\u8303\u6587\u4ef6\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u4f7f\u7528\u4ee5\u4e0b\u89c4\u8303\u6587\u4ef6\u6765\u521b\u5efa WebView \u7ec4\u4ef6\uff1a"}),"\n",(0,i.jsxs)(r.A,{groupId:"language",queryString:!0,defaultValue:c.A.defaultJavaScriptSpecLanguage,values:c.A.javaScriptSpecLanguages,children:[(0,i.jsx)(o.A,{value:"typescript",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:'title="Demo/specs/WebViewNativeComponent.ts"',children:"import type {HostComponent, ViewProps} from 'react-native';\nimport type {BubblingEventHandler} from 'react-native/Libraries/Types/CodegenTypes';\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\n\ntype WebViewScriptLoadedEvent = {\n result: 'success' | 'error';\n};\n\nexport interface NativeProps extends ViewProps {\n sourceURL?: string;\n onScriptLoaded?: BubblingEventHandler | null;\n}\n\nexport default codegenNativeComponent(\n 'CustomWebView',\n) as HostComponent;\n"})})}),(0,i.jsx)(o.A,{value:"flow",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",metastring:'title="Demo/RCTWebView/js/RCTWebViewNativeComponent.js":',children:"// @flow strict-local\n\nimport type {HostComponent, ViewProps} from 'react-native';\nimport type {BubblingEventHandler} from 'react-native/Libraries/Types/CodegenTypes';\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\n\ntype WebViewScriptLoadedEvent = $ReadOnly<{|\n result: \"success\" | \"error\",\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n sourceURL?: string;\n onScriptLoaded?: BubblingEventHandler?;\n|}>;\n\nexport default (codegenNativeComponent(\n 'CustomWebView',\n): HostComponent);\n\n"})})})]}),"\n",(0,i.jsx)(n.p,{children:"\u8be5\u89c4\u8303\u6587\u4ef6\u7531\u4e09\u90e8\u5206\u7ec4\u6210\uff0c\u4e0d\u5305\u62ec\u5bfc\u5165\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"WebViewScriptLoadedEvent"})," \u662f\u4e00\u4e2a\u652f\u6301\u7684\u6570\u636e\u7c7b\u578b\uff0c\u7528\u4e8e\u5c06\u6570\u636e\u4ece\u539f\u751f\u4ee3\u7801\u4f20\u9012\u5230 JavaScript\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"NativeProps"})," \u662f\u5b9a\u4e49\u53ef\u4ee5\u5728\u7ec4\u4ef6\u4e0a\u8bbe\u7f6e\u7684\u5c5e\u6027\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"codegenNativeComponent"})," \u8bed\u53e5\u5141\u8bb8\u6211\u4eec\u4e3a\u81ea\u5b9a\u4e49\u7ec4\u4ef6\u751f\u6210\u4ee3\u7801\uff0c\u5e76\u5b9a\u4e49\u7528\u4e8e\u5339\u914d\u539f\u751f\u5b9e\u73b0\u7684\u540d\u79f0\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["\u4e0e\u539f\u751f\u6a21\u5757\u4e00\u6837\uff0c\u4f60\u53ef\u4ee5\u5728 ",(0,i.jsx)(n.code,{children:"specs/"})," \u76ee\u5f55\u4e2d\u62e5\u6709\u591a\u4e2a\u89c4\u8303\u6587\u4ef6\u3002\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u9605 ",(0,i.jsx)(n.a,{href:"/docs/appendix#codegen-typings",children:"\u9644\u5f55"}),"\u3002"]}),"\n",(0,i.jsx)(n.h2,{id:"2-\u914d\u7f6e-codegen-\u8fd0\u884c",children:"2. \u914d\u7f6e Codegen \u8fd0\u884c"}),"\n",(0,i.jsxs)(n.p,{children:["\u8be5\u89c4\u8303\u6587\u4ef6\u7528\u4e8e React Native \u7684 Codegen \u5de5\u5177\u751f\u6210\u5e73\u53f0\u7279\u5b9a\u7684\u63a5\u53e3\u548c\u6837\u677f\u4ee3\u7801\u3002\u4e3a\u6b64\uff0cCodegen \u9700\u8981\u77e5\u9053\u5728\u54ea\u91cc\u627e\u5230\u6211\u4eec\u7684\u89c4\u8303\u6587\u4ef6\u4ee5\u53ca\u5982\u4f55\u5904\u7406\u5b83\u3002\u66f4\u65b0\u4f60\u7684 ",(0,i.jsx)(n.code,{children:"package.json"})," \u6587\u4ef6\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",metastring:"package.json",children:' "start": "react-native start",\n "test": "jest"\n },\n // highlight-start\n "codegenConfig": {\n "name": "AppSpec",\n "type": "components",\n "jsSrcsDir": "specs",\n "android": {\n "javaPackageName": "com.webview"\n }\n },\n // highlight-end\n "dependencies": {\n'})}),"\n",(0,i.jsx)(n.p,{children:"\u914d\u7f6e\u597d Codegen \u540e\uff0c\u6211\u4eec\u9700\u8981\u51c6\u5907\u539f\u751f\u4ee3\u7801\u4ee5\u8fde\u63a5\u5230\u751f\u6210\u7684\u4ee3\u7801\u3002"}),"\n",(0,i.jsx)(n.h2,{id:"2-\u6784\u5efa\u539f\u751f\u4ee3\u7801",children:"2. \u6784\u5efa\u539f\u751f\u4ee3\u7801"}),"\n",(0,i.jsx)(n.p,{children:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u539f\u751f\u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u5f53 React \u9700\u8981\u6e32\u67d3\u89c6\u56fe\u65f6\uff0c\u5e73\u53f0\u53ef\u4ee5\u521b\u5efa\u6b63\u786e\u7684\u539f\u751f\u89c6\u56fe\u5e76\u5728\u5c4f\u5e55\u4e0a\u6e32\u67d3\u5b83\u3002"}),"\n",(0,i.jsx)(n.p,{children:"\u4f60\u5e94\u8be5\u5206\u522b\u5728 Android \u548c iOS \u5e73\u53f0\u4e0a\u5de5\u4f5c\u3002"}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["\u672c\u6307\u5357\u5c55\u793a\u4e86\u5982\u4f55\u521b\u5efa\u4e00\u4e2a\u4ec5\u9002\u7528\u4e8e\u65b0\u67b6\u6784\u7684\u539f\u751f\u7ec4\u4ef6\u3002\u5982\u679c\u4f60\u9700\u8981\u540c\u65f6\u652f\u6301\u65b0\u67b6\u6784\u548c\u65e7\u67b6\u6784\uff0c\u8bf7\u53c2\u9605\u6211\u4eec\u7684",(0,i.jsx)(n.a,{href:"https://github.com/reactwg/react-native-new-architecture/blob/main/docs/backwards-compat.md",children:"\u5411\u540e\u517c\u5bb9\u6307\u5357"}),"\u3002"]})}),"\n",(0,i.jsxs)(r.A,{groupId:"platforms",queryString:!0,defaultValue:c.A.defaultPlatform,children:[(0,i.jsx)(o.A,{value:"android",label:"Android",children:(0,i.jsx)(p,{})}),(0,i.jsx)(o.A,{value:"ios",label:"iOS",children:(0,i.jsx)(l,{})})]}),"\n",(0,i.jsx)(n.h2,{id:"3-\u4f7f\u7528\u4f60\u7684\u539f\u751f\u7ec4\u4ef6",children:"3. \u4f7f\u7528\u4f60\u7684\u539f\u751f\u7ec4\u4ef6"}),"\n",(0,i.jsxs)(n.p,{children:["\u6700\u540e\uff0c\u4f60\u53ef\u4ee5\u5728\u5e94\u7528\u4e2d\u4f7f\u7528\u8be5\u7ec4\u4ef6\u3002\u66f4\u65b0\u4f60\u7684\u751f\u6210 ",(0,i.jsx)(n.code,{children:"App.tsx"})," \u6587\u4ef6\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-javascript",metastring:'title="Demo/App.tsx"',children:"import React from 'react';\nimport {Alert, StyleSheet, View} from 'react-native';\nimport WebView from './specs/WebViewNativeComponent';\n\nfunction App(): React.JSX.Element {\n return (\n \n {\n Alert.alert('Page Loaded');\n }}\n />\n \n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'center',\n alignContent: 'center',\n },\n webview: {\n width: '100%',\n height: '100%',\n },\n});\n\nexport default App;\n"})}),"\n",(0,i.jsxs)(n.p,{children:["\u8be5\u4ee3\u7801\u521b\u5efa\u4e86\u4e00\u4e2a\u4f7f\u7528\u6211\u4eec\u521b\u5efa\u7684 ",(0,i.jsx)(n.code,{children:"WebView"})," \u7ec4\u4ef6\u6765\u52a0\u8f7d ",(0,i.jsx)(n.code,{children:"react.dev"})," \u7f51\u7ad9\u7684\u5e94\u7528\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u8be5\u5e94\u7528\u8fd8\u663e\u793a\u4e86\u4e00\u4e2a\u5f53\u7f51\u9875\u52a0\u8f7d\u5b8c\u6210\u65f6\u5f39\u51fa\u7684\u8b66\u544a\u3002"}),"\n",(0,i.jsx)(n.h2,{id:"5-\u8fd0\u884c\u5e94\u7528\u4f7f\u7528-webview-\u7ec4\u4ef6",children:"5. \u8fd0\u884c\u5e94\u7528\u4f7f\u7528 WebView \u7ec4\u4ef6"}),"\n",(0,i.jsxs)(r.A,{groupId:"platforms",queryString:!0,defaultValue:c.A.defaultPlatform,children:[(0,i.jsx)(o.A,{value:"android",label:"Android",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn run android\n"})})}),(0,i.jsx)(o.A,{value:"ios",label:"iOS",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn run ios\n"})})})]}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"Android"}),(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"iOS"})]})}),(0,i.jsx)(n.tbody,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:(0,i.jsx)("img",{style:{"max-height":"600px"},src:"/docs/assets/webview-android.webp"})}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:(0,i.jsx)("img",{style:{"max-height":"600px"},src:"/docs/assets/webview-ios.webp"})})]})})]})]})}function x(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(v,{...e})}):v(e)}},64034:(e,n,t)=>{t.d(n,{A:()=>o});var i=t(1448);const a=!!i.A.canUseDOM&&navigator.platform.startsWith("Mac"),r=!!i.A.canUseDOM&&navigator.platform.startsWith("Win"),o={defaultGuide:"native",defaultJsDebugger:"flipper",defaultOs:a?"macos":r?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:a?"ios":"android",defaultSyntax:"functional",defaultAndroidLanguage:"java",defaultAppleLanguage:"objc",defaultJavaScriptSpecLanguages:"typescript",getDevNotesTabs:(e=["android","ios","web","windows"])=>[e.includes("android")?{label:"Android",value:"android"}:void 0,e.includes("ios")?{label:"iOS",value:"ios"}:void 0,e.includes("web")?{label:"Web",value:"web"}:void 0,e.includes("windows")?{label:"Windows",value:"windows"}:void 0].filter(Boolean),guides:[{label:"\u5b8c\u6574\u539f\u751f\u73af\u5883",value:"native"},{label:"\u7b80\u6613\u6c99\u76d2\u73af\u5883",value:"quickstart"}],oses:[{label:"macOS",value:"macos"},{label:"Windows",value:"windows"},{label:"Linux",value:"linux"}],packageManagers:[{label:"npm",value:"npm"},{label:"Yarn",value:"yarn"}],platforms:[{label:"Android",value:"android"},{label:"iOS",value:"ios"}],syntax:[{label:"\u51fd\u6570\u5f0f\u7ec4\u4ef6",value:"functional"},{label:"Class \u7ec4\u4ef6",value:"classical"}],androidLanguages:[{label:"Java",value:"java"},{label:"Kotlin",value:"kotlin"}],appleLanguages:[{label:"ObjectiveC",value:"objc"},{label:"Swift",value:"swift"}],javaScriptSpecLanguages:[{label:"TypeScript",value:"typescript"},{label:"Flow",value:"flow"}],jsDebuggers:[{label:"Hermes Debugger / Expo",value:"hermes"},{label:"Flipper",value:"flipper"},{label:"New Debugger (Experimental)",value:"new-debugger"}],snackLanguages:[{label:"TypeScript",value:"typescript"},{label:"JavaScript",value:"javascript"}],defaultSnackLanguage:"typescript"}},49646:(e,n,t)=>{t.d(n,{A:()=>o});var i=t(62540),a=t(11750);const r={tabItem:"tabItem_wHwb"};function o({children:e,hidden:n,className:t}){return(0,i.jsx)("div",{role:"tabpanel",className:(0,a.A)(r.tabItem,t),hidden:n,children:e})}},44067:(e,n,t)=>{t.d(n,{A:()=>C});var i=t(62540),a=t(63696),r=t(11750),o=t(3101),c=t(49519),s=t(21750),d=t(87718),l=t(38807),p=t(17819);function u(e){return a.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??function(e){return u(e).map((({props:{value:e,label:n,attributes:t,default:i}})=>({value:e,label:n,attributes:t,default:i})))}(t);return function(e){const n=(0,l.XI)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function m({value:e,tabValues:n}){return n.some((n=>n.value===e))}function g({queryString:e=!1,groupId:n}){const t=(0,c.W6)(),i=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,d.aZ)(i),(0,a.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(t.location.search);n.set(i,e),t.replace({...t.location,search:n.toString()})}),[i,t])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:i}=e,r=h(e),[o,c]=(0,a.useState)((()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!m({value:e,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const t=n.find((e=>e.default))??n[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:r}))),[d,l]=g({queryString:t,groupId:i}),[u,b]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[t,i]=(0,p.Dv)(n);return[t,(0,a.useCallback)((e=>{n&&i.set(e)}),[n,i])]}({groupId:i}),v=(()=>{const e=d??u;return m({value:e,tabValues:r})?e:null})();(0,s.A)((()=>{v&&c(v)}),[v]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);c(e),l(e),b(e)}),[l,b,r]),tabValues:r}}var v=t(64062);const x={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};function w({className:e,block:n,selectedValue:t,selectValue:a,tabValues:c}){const s=[],{blockElementScrollPositionUntilNextRender:d}=(0,o.a_)(),l=e=>{const n=e.currentTarget,i=s.indexOf(n),r=c[i].value;r!==t&&(d(n),a(r))},p=e=>{let n=null;switch(e.key){case"Enter":l(e);break;case"ArrowRight":{const t=s.indexOf(e.currentTarget)+1;n=s[t]??s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;n=s[t]??s[s.length-1];break}}n?.focus()};return(0,i.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":n},e),children:c.map((({value:e,label:n,attributes:a})=>(0,i.jsx)("li",{role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>s.push(e),onKeyDown:p,onClick:l,...a,className:(0,r.A)("tabs__item",x.tabItem,a?.className,{"tabs__item--active":t===e}),children:n??e},e)))})}function j({lazy:e,children:n,selectedValue:t}){const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=o.find((e=>e.props.value===t));return e?(0,a.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,i.jsx)("div",{className:"margin-top--md",children:o.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==t})))})}function f(e){const n=b(e);return(0,i.jsxs)("div",{className:(0,r.A)("tabs-container",x.tabList),children:[(0,i.jsx)(w,{...n,...e}),(0,i.jsx)(j,{...n,...e})]})}function C(e){const n=(0,v.A)();return(0,i.jsx)(f,{...e,children:u(e.children)},String(n))}},43023:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>c});var i=t(63696);const a={},r=i.createContext(a);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[54007,31987,55378],{82030:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>m,frontMatter:()=>s,metadata:()=>l,toc:()=>u});var i=t(62540),a=t(43023),r=t(44067),o=t(49646),c=t(64034);const s={id:"fabric-native-components-android",title:"Fabric Native Modules: Android"},d=void 0,l={id:"fabric-native-components-android",title:"Fabric Native Modules: Android",description:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b Android \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a",source:"@site/versioned_docs/version-0.76/fabric-native-components-android.md",sourceDirName:".",slug:"/fabric-native-components-android",permalink:"/docs/fabric-native-components-android",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/fabric-native-components-android.md",tags:[],version:"0.76",frontMatter:{id:"fabric-native-components-android",title:"Fabric Native Modules: Android"}},p={},u=[{value:"1. \u4f7f\u7528 Gradle \u8fd0\u884c Codegen",id:"1-\u4f7f\u7528-gradle-\u8fd0\u884c-codegen",level:3},{value:"2. \u7f16\u5199 ReactWebView",id:"2-\u7f16\u5199-reactwebview",level:3},{value:"3. Write the WebViewManager",id:"3-write-the-webviewmanager",level:3},{value:"4. Write the ReactWebViewPackage",id:"4-write-the-reactwebviewpackage",level:3},{value:"5. Register the ReactWebViewPackage in the application",id:"5-register-the-reactwebviewpackage-in-the-application",level:3}];function h(e){const n={code:"code",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b Android \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u8fd0\u884c Codegen"}),"\n",(0,i.jsxs)(n.li,{children:["\u7f16\u5199 ",(0,i.jsx)(n.code,{children:"ReactWebView"})," \u7684\u4ee3\u7801"]}),"\n",(0,i.jsxs)(n.li,{children:["\u7f16\u5199 ",(0,i.jsx)(n.code,{children:"ReactWebViewManager"})," \u7684\u4ee3\u7801"]}),"\n",(0,i.jsxs)(n.li,{children:["\u7f16\u5199 ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," \u7684\u4ee3\u7801"]}),"\n",(0,i.jsxs)(n.li,{children:["\u5728\u5e94\u7528\u4e2d\u6ce8\u518c ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"1-\u4f7f\u7528-gradle-\u8fd0\u884c-codegen",children:"1. \u4f7f\u7528 Gradle \u8fd0\u884c Codegen"}),"\n",(0,i.jsx)(n.p,{children:"\u8fd0\u884c\u4e00\u6b21\u4ee5\u751f\u6210\u4f60\u7684 IDE \u53ef\u4ee5\u4f7f\u7528\u7684\u6837\u677f\u4ee3\u7801\u3002"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",metastring:'title="Demo/"',children:"cd android\n./gradlew generateCodegenArtifactsFromSchema\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Codegen \u5c06\u751f\u6210\u4f60\u9700\u8981\u5b9e\u73b0 ",(0,i.jsx)(n.code,{children:"ViewManager"})," \u63a5\u53e3\u548c ",(0,i.jsx)(n.code,{children:"ViewManager"})," \u59d4\u6258\u7684 web \u89c6\u56fe\u3002"]}),"\n",(0,i.jsxs)(n.h3,{id:"2-\u7f16\u5199-reactwebview",children:["2. \u7f16\u5199 ",(0,i.jsx)(n.code,{children:"ReactWebView"})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ReactWebView"})," \u662f\u5305\u88c5 Android \u539f\u751f\u89c6\u56fe\u7684\u7ec4\u4ef6\uff0cReact Native \u5c06\u5728\u4f7f\u7528\u81ea\u5b9a\u4e49\u7ec4\u4ef6\u65f6\u6e32\u67d3\u5b83\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u5728 ",(0,i.jsx)(n.code,{children:"android/src/main/java/com/webview"})," \u6587\u4ef6\u5939\u4e2d\u521b\u5efa\u4e00\u4e2a ",(0,i.jsx)(n.code,{children:"ReactWebView.java"})," \u6216 ",(0,i.jsx)(n.code,{children:"ReactWebView.kt"})," \u6587\u4ef6\uff0c\u5e76\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\uff1a"]}),"\n",(0,i.jsxs)(r.A,{groupId:"android-language",queryString:!0,defaultValue:c.A.defaultAndroidLanguage,values:c.A.androidLanguages,children:[(0,i.jsx)(o.A,{value:"java",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebView.java"',children:'package com.webview;\n\nimport android.content.Context;\nimport android.util.AttributeSet;\nimport android.webkit.WebView;\nimport android.webkit.WebViewClient;\n\nimport com.facebook.react.bridge.Arguments;\nimport com.facebook.react.bridge.WritableMap;\nimport com.facebook.react.bridge.ReactContext;\nimport com.facebook.react.uimanager.UIManagerHelper;\nimport com.facebook.react.uimanager.events.Event;\n\npublic class ReactWebView extends WebView {\n public ReactWebView(Context context) {\n super(context);\n configureComponent();\n }\n\n public ReactWebView(Context context, AttributeSet attrs) {\n super(context, attrs);\n configureComponent();\n }\n\n public ReactWebView(Context context, AttributeSet attrs, int defStyleAttr) {\n super(context, attrs, defStyleAttr);\n configureComponent();\n }\n\n private void configureComponent() {\n this.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));\n this.setWebViewClient(new WebViewClient() {\n @Override\n public void onPageFinished(WebView view, String url) {\n emitOnScriptLoaded(OnScriptLoadedEventResult.success);\n }\n });\n }\n\n public void emitOnScriptLoaded(OnScriptLoadedEventResult result) {\n ReactContext reactContext = (ReactContext) context;\n int surfaceId = UIManagerHelper.getSurfaceId(reactContext);\n EventDispatcher eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, getId());\n WritableMap payload = Arguments.createMap();\n payload.putString("result", result.name());\n\n OnScriptLoadedEvent event = new OnScriptLoadedEvent(surfaceId, getId(), payload);\n if (eventDispatcher != null) {\n eventDispatcher.dispatchEvent(event);\n }\n }\n\n public enum OnScriptLoadedEventResult {\n success,\n error\n }\n\n private class OnScriptLoadedEvent extends Event {\n private final WritableMap payload;\n\n OnScriptLoadedEvent(int surfaceId, int viewId, WritableMap payload) {\n super(surfaceId, viewId);\n this.payload = payload;\n }\n\n @Override\n public String getEventName() {\n return "onScriptLoaded";\n }\n\n @Override\n public WritableMap getEventData() {\n return payload;\n }\n }\n}\n'})})}),(0,i.jsx)(o.A,{value:"kotlin",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-kotlin",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebView.kt"',children:'package com.webview\n\nimport android.content.Context\nimport android.util.AttributeSet\nimport android.webkit.WebView\nimport android.webkit.WebViewClient\nimport com.facebook.react.bridge.Arguments\nimport com.facebook.react.bridge.WritableMap\nimport com.facebook.react.bridge.ReactContext\nimport com.facebook.react.uimanager.UIManagerHelper\nimport com.facebook.react.uimanager.events.Event\n\nclass ReactWebView: WebView {\n constructor(context: Context) : super(context) {\n configureComponent()\n }\n\n constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {\n configureComponent()\n }\n\n constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {\n configureComponent()\n }\n\n private fun configureComponent() {\n this.layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)\n this.webViewClient = object : WebViewClient() {\n override fun onPageFinished(view: WebView, url: String) {\n emitOnScriptLoaded(OnScriptLoadedEventResult.success)\n }\n }\n }\n\n fun emitOnScriptLoaded(result: OnScriptLoadedEventResult) {\n val reactContext = context as ReactContext\n val surfaceId = UIManagerHelper.getSurfaceId(reactContext)\n val eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, id)\n val payload =\n Arguments.createMap().apply {\n putString("result", result.name)\n }\n val event = OnScriptLoadedEvent(surfaceId, id, payload)\n\n eventDispatcher?.dispatchEvent(event)\n }\n\n enum class OnScriptLoadedEventResult() {\n success(),\n error()\n }\n\n inner class OnScriptLoadedEvent(\n surfaceId: Int,\n viewId: Int,\n private val payload: WritableMap\n ) : Event(surfaceId, viewId) {\n override fun getEventName() = "onScriptLoaded"\n\n override fun getEventData() = payload\n }\n}\n'})})})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ReactWebView"})," \u6269\u5c55\u4e86 Android ",(0,i.jsx)(n.code,{children:"WebView"}),"\uff0c\u56e0\u6b64\u4f60\u53ef\u4ee5\u8f7b\u677e\u5730\u91cd\u7528\u5e73\u53f0\u5df2\u7ecf\u5b9a\u4e49\u7684\u6240\u6709\u5c5e\u6027\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u8be5\u7c7b\u5b9a\u4e49\u4e86\u4e09\u4e2a Android \u6784\u9020\u51fd\u6570\uff0c\u4f46\u5c06\u5b83\u4eec\u7684\u5b9e\u9645\u5b9e\u73b0\u63a8\u8fdf\u5230\u79c1\u6709 ",(0,i.jsx)(n.code,{children:"configureComponent"})," \u51fd\u6570\u3002\u6b64\u51fd\u6570\u8d1f\u8d23\u521d\u59cb\u5316\u6240\u6709\u7ec4\u4ef6\u7684\u7279\u5b9a\u5c5e\u6027\uff1a\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u4f60\u6b63\u5728\u8bbe\u7f6e ",(0,i.jsx)(n.code,{children:"WebView"})," \u7684\u5e03\u5c40\uff0c\u5e76\u5b9a\u4e49\u4f60\u7528\u4e8e\u81ea\u5b9a\u4e49 ",(0,i.jsx)(n.code,{children:"WebView"})," \u884c\u4e3a\u7684 ",(0,i.jsx)(n.code,{children:"WebClient"}),"\u3002\u5728\u6b64\u4ee3\u7801\u4e2d\uff0c",(0,i.jsx)(n.code,{children:"ReactWebView"})," \u5728\u9875\u9762\u52a0\u8f7d\u5b8c\u6210\u540e\u901a\u8fc7\u5b9e\u73b0 ",(0,i.jsx)(n.code,{children:"WebClient"})," \u7684 ",(0,i.jsx)(n.code,{children:"onPageFinished"})," \u65b9\u6cd5\u6765\u53d1\u51fa\u4e8b\u4ef6\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u7136\u540e\uff0c\u4ee3\u7801\u5b9a\u4e49\u4e86\u4e00\u4e2a\u5b9e\u9645\u53d1\u51fa\u4e8b\u4ef6\u7684\u5e2e\u52a9\u51fd\u6570\u3002\u8981\u53d1\u51fa\u4e8b\u4ef6\uff0c\u4f60\u5fc5\u987b\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\u83b7\u53d6 ",(0,i.jsx)(n.code,{children:"ReactContext"})," \u7684\u5f15\u7528\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:["retrieve the ",(0,i.jsx)(n.code,{children:"surfaceId"})," of the view that you are presenting;"]}),"\n",(0,i.jsxs)(n.li,{children:["grab a reference to the ",(0,i.jsx)(n.code,{children:"eventDispatcher"})," associated with the view;"]}),"\n",(0,i.jsxs)(n.li,{children:["build the payload for the event using a ",(0,i.jsx)(n.code,{children:"WritableMap"})," object;"]}),"\n",(0,i.jsx)(n.li,{children:"create the event object that you need to send to JavaScript;"}),"\n",(0,i.jsxs)(n.li,{children:["call the ",(0,i.jsx)(n.code,{children:"eventDispatcher.dispatchEvent"})," to send the event."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"The last part of the file contains the definition of the data types you need to send the event:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The ",(0,i.jsx)(n.code,{children:"OnScriptLoadedEventResult"}),", with the possible outcomes of the ",(0,i.jsx)(n.code,{children:"OnScriptLoaded"})," event."]}),"\n",(0,i.jsxs)(n.li,{children:["The actual ``OnScriptLoadedEvent",(0,i.jsx)(n.code,{children:"that needs to extend the React Native's"}),"Event` class."]}),"\n"]}),"\n",(0,i.jsxs)(n.h3,{id:"3-write-the-webviewmanager",children:["3. Write the ",(0,i.jsx)(n.code,{children:"WebViewManager"})]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"WebViewManager"})," is the class that connects the React Native runtime with the native view."]}),"\n",(0,i.jsx)(n.p,{children:"When React receives the instruction from the app to render a specific component, React uses the registered view manager to create the view and to pass all the required properties."}),"\n",(0,i.jsxs)(n.p,{children:["This is the code of the ",(0,i.jsx)(n.code,{children:"ReactWebViewManager"}),"."]}),"\n",(0,i.jsxs)(r.A,{groupId:"android-language",queryString:!0,defaultValue:c.A.defaultAndroidLanguage,values:c.A.androidLanguages,children:[(0,i.jsx)(o.A,{value:"java",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebViewManager.java"',children:'package com.webview;\n\nimport com.facebook.react.bridge.ReactApplicationContext;\nimport com.facebook.react.module.annotations.ReactModule;\nimport com.facebook.react.uimanager.SimpleViewManager;\nimport com.facebook.react.uimanager.ThemedReactContext;\nimport com.facebook.react.uimanager.ViewManagerDelegate;\nimport com.facebook.react.uimanager.annotations.ReactProp;\nimport com.facebook.react.viewmanagers.CustomWebViewManagerInterface;\nimport com.facebook.react.viewmanagers.CustomWebViewManagerDelegate;\n\nimport java.util.HashMap;\nimport java.util.Map;\n\n@ReactModule(name = ReactWebViewManager.REACT_CLASS)\nclass ReactWebViewManager extends SimpleViewManager implements CustomWebViewManagerInterface {\n private final CustomWebViewManagerDelegate delegate =\n new CustomWebViewManagerDelegate<>(this);\n\n @Override\n public ViewManagerDelegate getDelegate() {\n return delegate;\n }\n\n @Override\n public String getName() {\n return REACT_CLASS;\n }\n\n @Override\n public ReactWebView createViewInstance(ThemedReactContext context) {\n return new ReactWebView(context);\n }\n\n @ReactProp(name = "sourceUrl")\n @Override\n public void setSourceURL(ReactWebView view, String sourceURL) {\n if (sourceURL == null) {\n view.emitOnScriptLoaded(ReactWebView.OnScriptLoadedEventResult.error);\n return;\n }\n view.loadUrl(sourceURL, new HashMap<>());\n }\n\n public static final String REACT_CLASS = "CustomWebView";\n\n @Override\n public Map getExportedCustomBubblingEventTypeConstants() {\n Map map = new HashMap<>();\n Map bubblingMap = new HashMap<>();\n bubblingMap.put("phasedRegistrationNames", new HashMap() {{\n put("bubbled", "onScriptLoaded");\n put("captured", "onScriptLoadedCapture");\n }});\n map.put("onScriptLoaded", bubblingMap);\n return map;\n }\n}\n'})})}),(0,i.jsx)(o.A,{value:"kotlin",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-kotlin",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebViewManager.kt"',children:'package com.webview\n\nimport com.facebook.react.bridge.ReactApplicationContext;\nimport com.facebook.react.module.annotations.ReactModule;\nimport com.facebook.react.uimanager.SimpleViewManager;\nimport com.facebook.react.uimanager.ThemedReactContext;\nimport com.facebook.react.uimanager.ViewManagerDelegate;\nimport com.facebook.react.uimanager.annotations.ReactProp;\nimport com.facebook.react.viewmanagers.CustomWebViewManagerInterface;\nimport com.facebook.react.viewmanagers.CustomWebViewManagerDelegate;\n\n@ReactModule(name = ReactWebViewManager.REACT_CLASS)\nclass ReactWebViewManager(context: ReactApplicationContext) : SimpleViewManager(), CustomWebViewManagerInterface {\n private val delegate: CustomWebViewManagerDelegate =\n CustomWebViewManagerDelegate(this)\n\n override fun getDelegate(): ViewManagerDelegate = delegate\n\n override fun getName(): String = REACT_CLASS\n\n override fun createViewInstance(context: ThemedReactContext): ReactWebView = ReactWebView(context)\n\n @ReactProp(name = "sourceUrl")\n override fun setSourceURL(view: ReactWebView, sourceURL: String?) {\n if (sourceURL == null) {\n view.emitOnScriptLoaded(ReactWebView.OnScriptLoadedEventResult.error)\n return;\n }\n view.loadUrl(sourceURL, emptyMap())\n }\n\n companion object {\n const val REACT_CLASS = "CustomWebView"\n }\n\n override fun getExportedCustomBubblingEventTypeConstants(): Map =\n mapOf(\n "onScriptLoaded" to\n mapOf(\n "phasedRegistrationNames" to\n mapOf(\n "bubbled" to "onScriptLoaded",\n "captured" to "onScriptLoadedCapture"\n )))\n}\n'})})})]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"ReactWebViewManager"})," extends the ",(0,i.jsx)(n.code,{children:"SimpleViewManager"})," class from React and implements the ",(0,i.jsx)(n.code,{children:"CustomWebViewManagerInterface"}),", generated by Codegen."]}),"\n",(0,i.jsxs)(n.p,{children:["It holds a reference of the ",(0,i.jsx)(n.code,{children:"CustomWebViewManagerDelegate"}),", another element generated by Codegen."]}),"\n",(0,i.jsxs)(n.p,{children:["It then overrides the ",(0,i.jsx)(n.code,{children:"getName"})," function, which must return the same name used in the spec's ",(0,i.jsx)(n.code,{children:"codegenNativeComponent"})," function call."]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"createViewInstance"})," function is responsible to instantiate a new ",(0,i.jsx)(n.code,{children:"ReactWebView"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Then, the ViewManager needs to define how all the React's compnoents props will update the native view. In the example, you need to decide how to handle the ",(0,i.jsx)(n.code,{children:"sourceURL"})," property that React will set on the ",(0,i.jsx)(n.code,{children:"WebView"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Finally, if the component can emit an event, you need to map the event name by overriding the ",(0,i.jsx)(n.code,{children:"getExportedCustomBubblingEventTypeConstants"})," for bubbling events, or the ",(0,i.jsx)(n.code,{children:"getExportedCustomDirectEventTypeConstants"})," for direct events."]}),"\n",(0,i.jsxs)(n.h3,{id:"4-write-the-reactwebviewpackage",children:["4. Write the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})]}),"\n",(0,i.jsxs)(n.p,{children:["As you do with Native Modules, Native Components also need to implement the ",(0,i.jsx)(n.code,{children:"ReactPackage"})," class. This is an object that you can use to register the component in the React Native runtime."]}),"\n",(0,i.jsxs)(n.p,{children:["This is the code for the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"}),":"]}),"\n",(0,i.jsxs)(r.A,{groupId:"android-language",queryString:!0,defaultValue:c.A.defaultAndroidLanguage,values:c.A.androidLanguages,children:[(0,i.jsx)(o.A,{value:"java",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebViewPackage.java"',children:"package com.webview;\n\nimport com.facebook.react.TurboReactPackage;\nimport com.facebook.react.bridge.NativeModule;\nimport com.facebook.react.bridge.ReactApplicationContext;\nimport com.facebook.react.module.model.ReactModuleInfo;\nimport com.facebook.react.module.model.ReactModuleInfoProvider;\nimport com.facebook.react.uimanager.ViewManager;\n\nimport java.util.Collections;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class ReactWebViewPackage extends TurboReactPackage {\n @Override\n public List> createViewManagers(ReactApplicationContext reactContext) {\n return Collections.singletonList(new ReactWebViewManager(reactContext));\n }\n\n @Override\n public NativeModule getModule(String s, ReactApplicationContext reactApplicationContext) {\n if (ReactWebViewManager.REACT_CLASS.equals(s)) {\n return new ReactWebViewManager(reactApplicationContext);\n }\n return null;\n }\n\n @Override\n public ReactModuleInfoProvider getReactModuleInfoProvider() {\n return new ReactModuleInfoProvider() {\n @Override\n public Map get() {\n Map map = new HashMap<>();\n map.put(ReactWebViewManager.REACT_CLASS, new ReactModuleInfo(\n ReactWebViewManager.REACT_CLASS, // name\n ReactWebViewManager.REACT_CLASS, // className\n false, // canOverrideExistingModule\n false, // needsEagerInit\n false, // isCxxModule\n true // isTurboModule\n ));\n return map;\n }\n };\n }\n}\n"})})}),(0,i.jsx)(o.A,{value:"kotlin",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-kotlin",metastring:'title="Demo/android/src/main/java/com/webview/ReactWebView.kt"',children:"package com.webview\n\nimport com.facebook.react.TurboReactPackage\nimport com.facebook.react.bridge.NativeModule\nimport com.facebook.react.bridge.ReactApplicationContext\nimport com.facebook.react.module.model.ReactModuleInfo\nimport com.facebook.react.module.model.ReactModuleInfoProvider\nimport com.facebook.react.uimanager.ViewManager\n\nclass ReactWebViewPackage : TurboReactPackage() {\n override fun createViewManagers(reactContext: ReactApplicationContext): List> {\n return listOf(ReactWebViewManager(reactContext))\n }\n\n override fun getModule(s: String, reactApplicationContext: ReactApplicationContext): NativeModule? {\n when (s) {\n ReactWebViewManager.REACT_CLASS -> ReactWebViewManager(reactApplicationContext)\n }\n return null\n }\n\n override fun getReactModuleInfoProvider(): ReactModuleInfoProvider = ReactModuleInfoProvider {\n mapOf(ReactWebViewManager.REACT_CLASS to ReactModuleInfo(\n _name = ReactWebViewManager.REACT_CLASS,\n _className = ReactWebViewManager.REACT_CLASS,\n _canOverrideExistingModule = false,\n _needsEagerInit = false,\n isCxxModule = false,\n isTurboModule = true,\n )\n )\n }\n}\n"})})})]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," extends the ",(0,i.jsx)(n.code,{children:"TurboReactPackage"})," and implements all the methods required to properly register our component."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"createViewManagers"})," method is the factory method that creates the ",(0,i.jsx)(n.code,{children:"ViewManager"})," that manage the custom views."]}),"\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"getModule"})," method returns the proper ViewManager depending on the View that React Native needs to render."]}),"\n",(0,i.jsxs)(n.li,{children:["the ",(0,i.jsx)(n.code,{children:"getReactModuleInfoProvider"})," provides all the information required when registering the module in the runtime,"]}),"\n"]}),"\n",(0,i.jsxs)(n.h3,{id:"5-register-the-reactwebviewpackage-in-the-application",children:["5. Register the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," in the application"]}),"\n",(0,i.jsxs)(n.p,{children:["Finally, you need to register the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," in the application. We do that by modifying the ",(0,i.jsx)(n.code,{children:"MainApplication"})," file by adding the ",(0,i.jsx)(n.code,{children:"ReactWebViewPackage"})," to the list of packages returned by the ",(0,i.jsx)(n.code,{children:"getPackages"})," function."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-kotlin",metastring:'title="Demo/app/src/main/java/com/demo/MainApplication.kt"',children:'package com.demo\n\nimport android.app.Application\nimport com.facebook.react.PackageList\nimport com.facebook.react.ReactApplication\nimport com.facebook.react.ReactHost\nimport com.facebook.react.ReactNativeHost\nimport com.facebook.react.ReactPackage\nimport com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load\nimport com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\nimport com.facebook.react.defaults.DefaultReactNativeHost\nimport com.facebook.react.soloader.OpenSourceMergedSoMapping\nimport com.facebook.soloader.SoLoader\n// highlight-next-line\nimport com.webview.ReactWebViewPackage\n\nclass MainApplication : Application(), ReactApplication {\n\n override val reactNativeHost: ReactNativeHost =\n object : DefaultReactNativeHost(this) {\n override fun getPackages(): List =\n PackageList(this).packages.apply {\n // highlight-next-line\n add(ReactWebViewPackage())\n }\n\n override fun getJSMainModuleName(): String = "index"\n\n override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG\n\n override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED\n override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED\n }\n\n override val reactHost: ReactHost\n get() = getDefaultReactHost(applicationContext, reactNativeHost)\n\n override fun onCreate() {\n super.onCreate()\n SoLoader.init(this, OpenSourceMergedSoMapping)\n if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n load()\n }\n }\n}\n\n'})})]})}function m(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},4608:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var i=t(62540),a=t(43023);t(44067),t(49646),t(64034);const r={id:"fabric-native-components-ios",title:"Fabric Native Components: iOS"},o=void 0,c={id:"fabric-native-components-ios",title:"Fabric Native Components: iOS",description:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b iOS \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a",source:"@site/versioned_docs/version-0.76/fabric-native-components-ios.md",sourceDirName:".",slug:"/fabric-native-components-ios",permalink:"/docs/fabric-native-components-ios",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/fabric-native-components-ios.md",tags:[],version:"0.76",frontMatter:{id:"fabric-native-components-ios",title:"Fabric Native Components: iOS"}},s={},d=[{value:"1. \u8fd0\u884c Codegen",id:"1-\u8fd0\u884c-codegen",level:3},{value:"3. \u7f16\u5199 RCTWebView",id:"3-\u7f16\u5199-rctwebview",level:3},{value:"AppDelegate.mm",id:"appdelegatemm",level:4}];function l(e){const n={a:"a",admonition:"admonition",code:"code",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b iOS \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u8fd0\u884c Codegen\u3002"}),"\n",(0,i.jsxs)(n.li,{children:["\u7f16\u5199 ",(0,i.jsx)(n.code,{children:"RCTWebView"})," \u7684\u4ee3\u7801"]}),"\n",(0,i.jsxs)(n.li,{children:["\u5728\u5e94\u7528\u4e2d\u6ce8\u518c ",(0,i.jsx)(n.code,{children:"RCTWebView"})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"1-\u8fd0\u884c-codegen",children:"1. \u8fd0\u884c Codegen"}),"\n",(0,i.jsxs)(n.p,{children:["\u4f60\u53ef\u4ee5",(0,i.jsx)(n.a,{href:"the-new-architecture/codegen-cli",children:"\u624b\u52a8\u8fd0\u884c"})," Codegen\uff0c\u5f53\u7136\u76f4\u63a5\u4f7f\u7528\u4f60\u5c06\u8981\u6f14\u793a\u7ec4\u4ef6\u7684\u5e94\u7528\u6765\u5b8c\u6210\u6b64\u64cd\u4f5c\u4f1a\u66f4\u7b80\u5355\u3002"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"cd ios\nbundle install\nbundle exec pod install\n"})}),"\n",(0,i.jsx)(n.p,{children:"\u91cd\u8981\u7684\u662f\u4f60\u4f1a\u770b\u5230 Codegen \u7684\u65e5\u5fd7\u8f93\u51fa\uff0c\u6211\u4eec\u5c06\u5728 Xcode \u4e2d\u4f7f\u7528\u5b83\u6765\u6784\u5efa WebView \u539f\u751f\u7ec4\u4ef6\u3002"}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["\u6ce8\u610f\u4e0d\u8981\u5c06\u751f\u6210\u7684\u4ee3\u7801\u63d0\u4ea4\u5230\u4f60\u7684\u4ed3\u5e93\u4e2d\u3002\u751f\u6210\u7684\u4ee3\u7801\u4e0e React Native \u7684\u7248\u672c\u76f8\u5173\u3002\u4f7f\u7528 npm ",(0,i.jsx)(n.a,{href:"https://nodejs.org/en/blog/npm/peer-dependencies",children:"peerDependencies"})," \u6765\u7ea6\u675f\u4e0e React Native \u7248\u672c\u7684\u517c\u5bb9\u6027\u3002"]})}),"\n",(0,i.jsxs)(n.h3,{id:"3-\u7f16\u5199-rctwebview",children:["3. \u7f16\u5199 ",(0,i.jsx)(n.code,{children:"RCTWebView"})]}),"\n",(0,i.jsxs)(n.p,{children:["\u6211\u4eec\u9700\u8981\u4f7f\u7528 Xcode \u5b8c\u6210\u4ee5\u4e0b ",(0,i.jsx)(n.strong,{children:"5 \u6b65"}),"\uff1a"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"\u6253\u5f00 CocoPods \u751f\u6210\u7684 Xcode workspace \u6587\u4ef6\uff1a"}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"cd ios\nopen Demo.xcworkspace\n"})}),"\n",(0,i.jsx)("img",{class:"half-size",alt:"Open Xcode Workspace",src:"/docs/assets/fabric-native-components/1.webp"}),"\n",(0,i.jsxs)(n.ol,{start:"2",children:["\n",(0,i.jsxs)(n.li,{children:["\u53f3\u952e\u70b9\u51fb\u5e94\u7528\uff0c\u9009\u62e9 ",(0,i.jsx)("code",{children:"New Group"}),"\uff0c\u5c06\u65b0\u7ec4\u547d\u540d\u4e3a ",(0,i.jsx)(n.code,{children:"WebView"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)("img",{class:"half-size",alt:"Right click on app and select New Group",src:"/docs/assets/fabric-native-components/2.webp"}),"\n",(0,i.jsxs)(n.ol,{start:"3",children:["\n",(0,i.jsxs)(n.li,{children:["\u5728 ",(0,i.jsx)(n.code,{children:"WebView"})," \u7ec4\u4e2d\uff0c\u521b\u5efa ",(0,i.jsx)("code",{children:"New"}),"\u2192",(0,i.jsx)("code",{children:"File from Template"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)("img",{class:"half-size",alt:"Create a new file using the Cocoa Touch Classs template",src:"/docs/assets/fabric-native-components/3.webp"}),"\n",(0,i.jsxs)(n.ol,{start:"4",children:["\n",(0,i.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,i.jsx)("code",{children:"Objective-C File"})," \u6a21\u677f\uff0c\u5e76\u547d\u540d\u4e3a ",(0,i.jsx)("code",{children:"RCTWebView"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)("img",{class:"half-size",alt:"Create an Objective-C RCTWebView class",src:"/docs/assets/fabric-native-components/4.webp"}),"\n",(0,i.jsxs)(n.ol,{start:"5",children:["\n",(0,i.jsxs)(n.li,{children:["\u5c06 ",(0,i.jsx)("code",{children:"RCTWebView.m"})," \u91cd\u547d\u540d\u4e3a ",(0,i.jsx)("code",{children:"RCTWebView.mm"}),"\uff0c\u4f7f\u5176\u6210\u4e3a Objective-C++ \u6587\u4ef6\u3002"]}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-text",metastring:'title="Demo/ios"',children:"Podfile\n...\nDemo\n\u251c\u2500\u2500 AppDelegate.h\n\u251c\u2500\u2500 AppDelegate.mm\n...\n// highlight-start\n\u251c\u2500\u2500 RCTWebView.h\n\u251c\u2500\u2500 RCTWebView.mm\n// highlight-end\n\u2514\u2500\u2500 main.m\n"})}),"\n",(0,i.jsx)(n.p,{children:"\u521b\u5efa\u5934\u6587\u4ef6\u548c\u5b9e\u73b0\u6587\u4ef6\u540e\uff0c\u53ef\u4ee5\u5f00\u59cb\u5b9e\u73b0\u5b83\u4eec\u3002"}),"\n",(0,i.jsxs)(n.p,{children:["\u4ee5\u4e0b\u662f ",(0,i.jsx)(n.code,{children:"RCTWebView.h"})," \u6587\u4ef6\u7684\u4ee3\u7801\uff0c\u58f0\u660e\u4e86\u7ec4\u4ef6\u63a5\u53e3\u3002"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-objc",metastring:'title="Demo/RCTWebView/RTNWebView.h"',children:"#import \n#import \n\nNS_ASSUME_NONNULL_BEGIN\n\n@interface RCTWebView : RCTViewComponentView\n\n// \u4f60\u53ef\u4ee5\u5728\u89c6\u56fe\u4e2d\u58f0\u660e\u4f60\u60f3\u8981\u8bbf\u95ee\u7684\u539f\u751f\u65b9\u6cd5\n\n@end\n\nNS_ASSUME_NONNULL_END\n"})}),"\n",(0,i.jsxs)(n.p,{children:["\u8fd9\u4e2a\u7c7b\u5b9a\u4e49\u4e86\u4e00\u4e2a ",(0,i.jsx)(n.code,{children:"RCTWebView"}),"\uff0c\u5b83\u6269\u5c55\u4e86 ",(0,i.jsx)(n.code,{children:"RCTViewComponentView"})," \u7c7b\u3002\u8fd9\u662f\u6240\u6709\u539f\u751f\u7ec4\u4ef6\u7684\u57fa\u7840\u7c7b\uff0c\u7531 React Native \u63d0\u4f9b\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u4ee5\u4e0b\u662f\u5b9e\u73b0\u6587\u4ef6 (",(0,i.jsx)(n.code,{children:"RCTWebView.mm"}),") \u7684\u4ee3\u7801\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-objc",metastring:'title="Demo/RCTWebView/RCTWebView.mm"',children:'#import "RCTWebView.h"\n\n#import \n#import \n#import \n#import \n// highlight-next-line\n#import \n\nusing namespace facebook::react;\n\n@interface RCTWebView () \n@end\n\n@implementation RCTWebView {\n NSURL * _sourceURL;\n WKWebView * _webView;\n}\n\n-(instancetype)init\n{\n if(self = [super init]) {\n // highlight-start\n _webView = [WKWebView new];\n _webView.navigationDelegate = self;\n [self addSubview:_webView];\n // highlight-end\n }\n return self;\n}\n\n- (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &)oldProps\n{\n const auto &oldViewProps = *std::static_pointer_cast(_props);\n const auto &newViewProps = *std::static_pointer_cast(props);\n\n // Handle your props here\n if (oldViewProps.sourceURL != newViewProps.sourceURL) {\n NSString *urlString = [NSString stringWithCString:newViewProps.sourceURL.c_str() encoding:NSUTF8StringEncoding];\n _sourceURL = [NSURL URLWithString:urlString];\n // highlight-start\n if ([self urlIsValid:newViewProps.sourceURL]) {\n [_webView loadRequest:[NSURLRequest requestWithURL:_sourceURL]];\n }\n // highlight-end\n }\n\n [super updateProps:props oldProps:oldProps];\n}\n\n-(void)layoutSubviews\n{\n [super layoutSubviews];\n _webView.frame = self.bounds;\n\n}\n\n#pragma mark - WKNavigationDelegate\n\n// highlight-start\n-(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation\n{\n CustomWebViewEventEmitter::OnScriptLoaded result = CustomWebViewEventEmitter::OnScriptLoaded{CustomWebViewEventEmitter::OnScriptLoadedResult::Success};\n self.eventEmitter.onScriptLoaded(result);\n}\n\n- (BOOL)urlIsValid:(std::string)propString\n{\n if (propString.length() > 0 && !_sourceURL) {\n CustomWebViewEventEmitter::OnScriptLoaded result = CustomWebViewEventEmitter::OnScriptLoaded{CustomWebViewEventEmitter::OnScriptLoadedResult::Error};\n\n self.eventEmitter.onScriptLoaded(result);\n return NO;\n }\n return YES;\n}\n\n// Event emitter convenience method\n- (const CustomWebViewEventEmitter &)eventEmitter\n{\n return static_cast(*_eventEmitter);\n}\n// highlight-end\n\n+ (ComponentDescriptorProvider)componentDescriptorProvider\n{\n return concreteComponentDescriptorProvider();\n}\n\nClass WebViewCls(void)\n{\n return RCTWebView.class;\n}\n\n@end\n'})}),"\n",(0,i.jsx)(n.p,{children:"\u8fd9\u6bb5\u4ee3\u7801\u662f\u7528 Objective-C++ \u7f16\u5199\u7684\uff0c\u5305\u542b\u4ee5\u4e0b\u7ec6\u8282\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"@interface"})," \u5b9e\u73b0\u4e86\u4e24\u4e2a\u534f\u8bae\uff1a","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"RCTCustomWebViewViewProtocol"}),", generated by Codegen;"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"WKNavigationDelegate"}),", \u7531 WebKit \u6846\u67b6\u63d0\u4f9b\uff0c\u7528\u4e8e\u5904\u7406 web \u89c6\u56fe\u5bfc\u822a\u4e8b\u4ef6\uff1b"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"init"})," \u65b9\u6cd5\u5b9e\u4f8b\u5316 ",(0,i.jsx)(n.code,{children:"WKWebView"}),"\uff0c\u5c06\u5176\u6dfb\u52a0\u5230\u5b50\u89c6\u56fe\uff0c\u5e76\u8bbe\u7f6e ",(0,i.jsx)(n.code,{children:"navigationDelegate"}),"\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"updateProps"})," \u65b9\u6cd5\uff0c\u7531 React Native \u5728\u7ec4\u4ef6\u7684\u5c5e\u6027\u53d8\u5316\u65f6\u8c03\u7528\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"layoutSubviews"})," \u65b9\u6cd5\uff0c\u63cf\u8ff0\u4e86\u81ea\u5b9a\u4e49\u89c6\u56fe\u9700\u8981\u5982\u4f55\u5e03\u5c40\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"webView:didFinishNavigation:"})," \u65b9\u6cd5\uff0c\u7528\u4e8e\u5904\u7406 ",(0,i.jsx)(n.code,{children:"WKWebView"})," \u5b8c\u6210\u52a0\u8f7d\u9875\u9762\u65f6\u9700\u8981\u6267\u884c\u7684\u64cd\u4f5c\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"urlIsValid:(std::string)propString"})," \u65b9\u6cd5\u68c0\u67e5\u63a5\u6536\u5230\u7684 URL \u5c5e\u6027\u662f\u5426\u6709\u6548\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"eventEmitter"})," \u65b9\u6cd5\uff0c\u7528\u4e8e\u68c0\u7d22\u5f3a\u7c7b\u578b\u7684 ",(0,i.jsx)(n.code,{children:"eventEmitter"})," \u5b9e\u4f8b\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"componentDescriptorProvider"})," \u65b9\u6cd5\uff0c\u8fd4\u56de\u7531 Codegen \u751f\u6210\u7684 ",(0,i.jsx)(n.code,{children:"ComponentDescriptor"}),"\uff1b"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"WebViewCls"})," \u65b9\u6cd5\uff0c\u7528\u4e8e\u5728\u5e94\u7528\u4e2d\u6ce8\u518c ",(0,i.jsx)(n.code,{children:"RCTWebView"}),"\u3002"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"appdelegatemm",children:"AppDelegate.mm"}),"\n",(0,i.jsxs)(n.p,{children:["\u6700\u540e\uff0c\u53ef\u4ee5\u5728\u5e94\u7528\u4e2d\u6ce8\u518c\u7ec4\u4ef6\u3002\u66f4\u65b0 ",(0,i.jsx)(n.code,{children:"AppDelegate.mm"})," \u6587\u4ef6\uff0c\u4f7f\u5e94\u7528\u610f\u8bc6\u5230\u81ea\u5b9a\u4e49\u7684 WebView \u7ec4\u4ef6\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-objc",metastring:'title="Demo/ios/Demo/AppDelegate.mm"',children:'#import "AppDelegate.h"\n\n#import \n// highlight-start\n#import \n#import "RCTWebView.h"\n// highlight-end\n@implementation AppDelegate\n// ...\n// highlight-start\n- (NSDictionary> *)thirdPartyFabricComponents\n{\n NSMutableDictionary * dictionary = [super thirdPartyFabricComponents].mutableCopy;\n dictionary[@"CustomWebView"] = [RCTWebView class];\n return dictionary;\n}\n// highlight-end\n\n@end\n'})}),"\n",(0,i.jsxs)(n.p,{children:["\u8fd9\u6bb5\u4ee3\u7801\u901a\u8fc7\u83b7\u53d6\u6765\u81ea\u5176\u4ed6\u6765\u6e90\uff08\u5982\u7b2c\u4e09\u65b9\u5e93\uff09\u7684\u7b2c\u4e09\u65b9\u7ec4\u4ef6\u5b57\u5178\u7684\u53ef\u53d8\u526f\u672c\uff0c\u91cd\u5199\u4e86 ",(0,i.jsx)(n.code,{children:"thirdPartyFabricComponents"})," \u65b9\u6cd5\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u7136\u540e\uff0c\u5411\u5b57\u5178\u4e2d\u6dfb\u52a0\u4e00\u4e2a\u6761\u76ee\uff0c\u6761\u76ee\u540d\u79f0\u4e0e Codegen \u89c4\u8303\u6587\u4ef6\u4e2d\u4f7f\u7528\u7684\u540d\u79f0\u76f8\u540c\u3002\u8fd9\u6837\uff0c\u5f53 React \u9700\u8981\u52a0\u8f7d\u540d\u79f0 ",(0,i.jsx)(n.code,{children:"CustomWebView"})," \u7684\u7ec4\u4ef6\u65f6\uff0cReact Native \u5c06\u5b9e\u4f8b\u5316 ",(0,i.jsx)(n.code,{children:"RCTWebView"}),"\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u6700\u540e\uff0c\u8fd4\u56de\u65b0\u7684\u5b57\u5178\u3002"}),"\n",(0,i.jsxs)(n.admonition,{type:"warning",children:[(0,i.jsx)(n.p,{children:"\u6211\u4eec\u610f\u8bc6\u5230 iOS \u5b58\u5728\u4e00\u4e9b\u95ee\u9898\uff0c\u5f53\u4f7f\u7528\u81ea\u5b9a\u4e49 iOS \u7ec4\u4ef6\u6784\u5efa\u5e94\u7528\u65f6\u4f1a\u51fa\u73b0\u95ee\u9898\u3002"}),(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\u7ec4\u4ef6\u9700\u8981\u8bbf\u95ee ",(0,i.jsx)(n.code,{children:"yoga/style/Style.h"})," \u5934\u6587\u4ef6\uff0c\u4f46\u5f53\u524d\u5e94\u7528\u65e0\u6cd5\u8bbf\u95ee\u3002\u4e3a\u6b64\uff0c\u5c06 ",(0,i.jsx)(n.code,{children:"$(PODS_ROOT)/Headers/Private/Yoga"})," \u8def\u5f84\u6dfb\u52a0\u5230\u5e94\u7528\u7684\u5934\u6587\u4ef6\u641c\u7d22\u8def\u5f84\u6784\u5efa\u8bbe\u7f6e\u4e2d\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:["Codegen \u5728 ",(0,i.jsx)(n.code,{children:"RCTThirdPartyFabricComponentsProvider"})," \u4e2d\u751f\u6210\u4e86\u4e00\u884c\u4e0d\u9700\u8981\u751f\u6210\u7684\u4ee3\u7801\u3002\u5220\u9664 ",(0,i.jsx)(n.code,{children:"RCTThirdPartyFabricComponentsProvider.h"})," \u548c ",(0,i.jsx)(n.code,{children:"RCTThirdPartyFabricComponentsProvider.mm"})," \u6587\u4ef6\u4e2d\u5e26\u6709 ",(0,i.jsx)(n.code,{children:"WebViewCls"})," \u7b26\u53f7\u7684\u884c\u3002"]}),"\n"]}),(0,i.jsx)(n.p,{children:"\u6211\u4eec\u5df2\u7ecf\u4fee\u590d\u4e86\u8fd9\u4e9b\u95ee\u9898\uff0c\u5b83\u4eec\u5c06\u5728 React Native 0.76.1 \u4e2d\u53d1\u5e03\u3002"})]})]})}function p(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},27768:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>g,contentTitle:()=>h,default:()=>x,frontMatter:()=>u,metadata:()=>m,toc:()=>b});var i=t(62540),a=t(43023),r=t(44067),o=t(49646),c=t(64034),s=t(4608),d=t(82030);function l(){return(0,i.jsx)(s.default,{})}function p(){return(0,i.jsx)(d.default,{})}const u={id:"fabric-native-components-introduction",title:"Fabric Native Components Introduction"},h="\u539f\u751f\u7ec4\u4ef6",m={id:"fabric-native-components-introduction",title:"Fabric Native Components Introduction",description:"\u5982\u679c\u4f60\u60f3\u6784\u5efa\u4e00\u4e2a \u65b0\u67b6\u6784 \u7684 React Native \u7ec4\u4ef6\uff0c\u8be5\u7ec4\u4ef6\u53ef\u4ee5\u5305\u88c5\u4e00\u4e2a Host Component\uff0c\u4f8b\u5982 Android \u4e0a\u7684 CheckBox\uff0c\u6216\u8005 iOS \u4e0a\u7684 UIButton\uff0c\u4f60\u5e94\u8be5\u4f7f\u7528 Fabric \u539f\u751f\u7ec4\u4ef6\u3002",source:"@site/versioned_docs/version-0.76/fabric-native-components.md",sourceDirName:".",slug:"/fabric-native-components-introduction",permalink:"/docs/fabric-native-components-introduction",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/fabric-native-components.md",tags:[],version:"0.76",frontMatter:{id:"fabric-native-components-introduction",title:"Fabric Native Components Introduction"},sidebar:"docs",previous:{title:"\u9ad8\u7ea7\uff1a\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b",permalink:"/docs/the-new-architecture/custom-cxx-types"},next:{title:"\u9644\u5f55",permalink:"/docs/appendix"}},g={},b=[{value:"\u521b\u5efa\u4e00\u4e2a WebView \u7ec4\u4ef6",id:"\u521b\u5efa\u4e00\u4e2a-webview-\u7ec4\u4ef6",level:2},{value:"1. \u5b9a\u4e49 Codegen \u89c4\u8303",id:"1-\u5b9a\u4e49-codegen-\u89c4\u8303",level:2},{value:"2. \u914d\u7f6e Codegen \u8fd0\u884c",id:"2-\u914d\u7f6e-codegen-\u8fd0\u884c",level:2},{value:"2. \u6784\u5efa\u539f\u751f\u4ee3\u7801",id:"2-\u6784\u5efa\u539f\u751f\u4ee3\u7801",level:2},{value:"3. \u4f7f\u7528\u4f60\u7684\u539f\u751f\u7ec4\u4ef6",id:"3-\u4f7f\u7528\u4f60\u7684\u539f\u751f\u7ec4\u4ef6",level:2},{value:"5. \u8fd0\u884c\u5e94\u7528\u4f7f\u7528 WebView \u7ec4\u4ef6",id:"5-\u8fd0\u884c\u5e94\u7528\u4f7f\u7528-webview-\u7ec4\u4ef6",level:2}];function v(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"\u539f\u751f\u7ec4\u4ef6",children:"\u539f\u751f\u7ec4\u4ef6"})}),"\n",(0,i.jsxs)(n.p,{children:["\u5982\u679c\u4f60\u60f3\u6784\u5efa\u4e00\u4e2a ",(0,i.jsx)(n.em,{children:"\u65b0\u67b6\u6784"})," \u7684 React Native \u7ec4\u4ef6\uff0c\u8be5\u7ec4\u4ef6\u53ef\u4ee5\u5305\u88c5\u4e00\u4e2a ",(0,i.jsx)(n.a,{href:"https://reactnative.dev/architecture/glossary#host-view-tree-and-host-view",children:"Host Component"}),"\uff0c\u4f8b\u5982 Android \u4e0a\u7684 ",(0,i.jsx)(n.a,{href:"https://developer.android.com/reference/androidx/appcompat/widget/AppCompatCheckBox",children:"CheckBox"}),"\uff0c\u6216\u8005 iOS \u4e0a\u7684 ",(0,i.jsx)(n.a,{href:"https://developer.apple.com/documentation/uikit/uibutton?language=objc",children:"UIButton"}),"\uff0c\u4f60\u5e94\u8be5\u4f7f\u7528 Fabric \u539f\u751f\u7ec4\u4ef6\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u672c\u6307\u5357\u5c06\u4ee5\u5b9e\u73b0\u4e00\u4e2a web \u89c6\u56fe\u7ec4\u4ef6\u4e3a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u6784\u5efa Fabric \u539f\u751f\u7ec4\u4ef6\u3002\u6b65\u9aa4\u5982\u4e0b\uff1a"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"\u4f7f\u7528 Flow \u6216 TypeScript \u5b9a\u4e49\u4e00\u4e2a JavaScript \u89c4\u8303\u3002"}),"\n",(0,i.jsx)(n.li,{children:"\u914d\u7f6e\u4f9d\u8d56\u7ba1\u7406\u7cfb\u7edf\u7684\u4ee3\u7801\u751f\u6210\u529f\u80fd\uff0c\u5e76\u81ea\u52a8\u94fe\u63a5\u3002"}),"\n",(0,i.jsx)(n.li,{children:"\u5b9e\u73b0\u539f\u751f\u4ee3\u7801\u3002"}),"\n",(0,i.jsx)(n.li,{children:"\u5728\u5e94\u7528\u4e2d\u4f7f\u7528\u8be5\u7ec4\u4ef6\u3002"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"\u4f60\u9700\u8981\u4e00\u4e2a\u666e\u901a\u7684\u6a21\u677f\u751f\u6210\u5e94\u7528\u6765\u4f7f\u7528\u8be5\u7ec4\u4ef6\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npx @react-native-community/cli@latest init Demo --install-pods false\n"})}),"\n",(0,i.jsx)(n.h2,{id:"\u521b\u5efa\u4e00\u4e2a-webview-\u7ec4\u4ef6",children:"\u521b\u5efa\u4e00\u4e2a WebView \u7ec4\u4ef6"}),"\n",(0,i.jsxs)(n.p,{children:["\u672c\u6307\u5357\u5c06\u5c55\u793a\u5982\u4f55\u521b\u5efa\u4e00\u4e2a Web View \u7ec4\u4ef6\u3002\u6211\u4eec\u5c06\u4f7f\u7528 Android \u7684 ",(0,i.jsx)(n.a,{href:"https://developer.android.com/reference/android/webkit/WebView",children:(0,i.jsx)(n.code,{children:"WebView"})})," \u7ec4\u4ef6\u548c iOS \u7684 ",(0,i.jsx)(n.a,{href:"https://developer.apple.com/documentation/webkit/wkwebview?language=objc",children:(0,i.jsx)(n.code,{children:"WKWebView"})})," \u7ec4\u4ef6\u6765\u521b\u5efa\u8be5\u7ec4\u4ef6\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u9996\u5148\uff0c\u521b\u5efa\u4e00\u4e2a\u6587\u4ef6\u5939\u7ed3\u6784\u6765\u5b58\u653e\u7ec4\u4ef6\u7684\u4ee3\u7801\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"mkdir -p Demo/{specs,android/app/src/main/java/com/webview}\n"})}),"\n",(0,i.jsx)(n.p,{children:"\u8fd9\u5c06\u521b\u5efa\u4ee5\u4e0b\u5e03\u5c40\uff0c\u4f60\u5c06\u5728\u5176\u4e2d\u5de5\u4f5c\uff1a"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"Demo\n\u251c\u2500\u2500 android/app/src/main/java/com/webview\n\u2514\u2500\u2500 ios\n\u2514\u2500\u2500 spec\n"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"android/app/src/main/java/com/webview"})," \u6587\u4ef6\u5939\u662f\u5b58\u653e Android \u4ee3\u7801\u7684\u6587\u4ef6\u5939\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"ios"})," \u6587\u4ef6\u5939\u662f\u5b58\u653e iOS \u4ee3\u7801\u7684\u6587\u4ef6\u5939\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"spec"})," \u6587\u4ef6\u5939\u662f\u5b58\u653e Codegen \u89c4\u8303\u6587\u4ef6\u7684\u6587\u4ef6\u5939\u3002"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"1-\u5b9a\u4e49-codegen-\u89c4\u8303",children:"1. \u5b9a\u4e49 Codegen \u89c4\u8303"}),"\n",(0,i.jsxs)(n.p,{children:["\u4f60\u7684\u89c4\u8303\u5fc5\u987b\u4f7f\u7528 ",(0,i.jsx)(n.a,{href:"https://www.typescriptlang.org/",children:"TypeScript"})," \u6216 ",(0,i.jsx)(n.a,{href:"https://flow.org/",children:"Flow"})," \u5b9a\u4e49\uff08\u66f4\u591a\u8be6\u60c5\u8bf7\u53c2\u9605 ",(0,i.jsx)(n.a,{href:"the-new-architecture/what-is-codegen",children:"Codegen"})," \u6587\u6863\uff09\u3002\u8fd9\u662f\u7531 Codegen \u751f\u6210 C++\u3001Objective-C++ \u548c Java \u4ee3\u7801\uff0c\u4ee5\u8fde\u63a5\u4f60\u7684\u5e73\u53f0\u4ee3\u7801\u5230 React \u8fd0\u884c\u7684 JavaScript \u8fd0\u884c\u65f6\u3002"]}),"\n",(0,i.jsxs)(n.p,{children:["\u89c4\u8303\u6587\u4ef6\u5fc5\u987b\u547d\u540d\u4e3a ",(0,i.jsx)(n.code,{children:"NativeComponent.{ts|js}"})," \u624d\u80fd\u88ab Codegen \u8bc6\u522b\u3002",(0,i.jsx)(n.code,{children:"NativeComponent"})," \u540e\u7f00\u4e0d\u4ec5\u662f\u4e00\u4e2a\u7ea6\u5b9a\uff0c\u5b9e\u9645\u4e0a\u662f\u7531 Codegen \u7528\u4e8e\u68c0\u6d4b\u89c4\u8303\u6587\u4ef6\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u4f7f\u7528\u4ee5\u4e0b\u89c4\u8303\u6587\u4ef6\u6765\u521b\u5efa WebView \u7ec4\u4ef6\uff1a"}),"\n",(0,i.jsxs)(r.A,{groupId:"language",queryString:!0,defaultValue:c.A.defaultJavaScriptSpecLanguage,values:c.A.javaScriptSpecLanguages,children:[(0,i.jsx)(o.A,{value:"typescript",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:'title="Demo/specs/WebViewNativeComponent.ts"',children:"import type {HostComponent, ViewProps} from 'react-native';\nimport type {BubblingEventHandler} from 'react-native/Libraries/Types/CodegenTypes';\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\n\ntype WebViewScriptLoadedEvent = {\n result: 'success' | 'error';\n};\n\nexport interface NativeProps extends ViewProps {\n sourceURL?: string;\n onScriptLoaded?: BubblingEventHandler | null;\n}\n\nexport default codegenNativeComponent(\n 'CustomWebView',\n) as HostComponent;\n"})})}),(0,i.jsx)(o.A,{value:"flow",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",metastring:'title="Demo/RCTWebView/js/RCTWebViewNativeComponent.js":',children:"// @flow strict-local\n\nimport type {HostComponent, ViewProps} from 'react-native';\nimport type {BubblingEventHandler} from 'react-native/Libraries/Types/CodegenTypes';\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\n\ntype WebViewScriptLoadedEvent = $ReadOnly<{|\n result: \"success\" | \"error\",\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n sourceURL?: string;\n onScriptLoaded?: BubblingEventHandler?;\n|}>;\n\nexport default (codegenNativeComponent(\n 'CustomWebView',\n): HostComponent);\n\n"})})})]}),"\n",(0,i.jsx)(n.p,{children:"\u8be5\u89c4\u8303\u6587\u4ef6\u7531\u4e09\u90e8\u5206\u7ec4\u6210\uff0c\u4e0d\u5305\u62ec\u5bfc\u5165\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"WebViewScriptLoadedEvent"})," \u662f\u4e00\u4e2a\u652f\u6301\u7684\u6570\u636e\u7c7b\u578b\uff0c\u7528\u4e8e\u5c06\u6570\u636e\u4ece\u539f\u751f\u4ee3\u7801\u4f20\u9012\u5230 JavaScript\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"NativeProps"})," \u662f\u5b9a\u4e49\u53ef\u4ee5\u5728\u7ec4\u4ef6\u4e0a\u8bbe\u7f6e\u7684\u5c5e\u6027\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"codegenNativeComponent"})," \u8bed\u53e5\u5141\u8bb8\u6211\u4eec\u4e3a\u81ea\u5b9a\u4e49\u7ec4\u4ef6\u751f\u6210\u4ee3\u7801\uff0c\u5e76\u5b9a\u4e49\u7528\u4e8e\u5339\u914d\u539f\u751f\u5b9e\u73b0\u7684\u540d\u79f0\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["\u4e0e\u539f\u751f\u6a21\u5757\u4e00\u6837\uff0c\u4f60\u53ef\u4ee5\u5728 ",(0,i.jsx)(n.code,{children:"specs/"})," \u76ee\u5f55\u4e2d\u62e5\u6709\u591a\u4e2a\u89c4\u8303\u6587\u4ef6\u3002\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u9605 ",(0,i.jsx)(n.a,{href:"/docs/appendix#codegen-typings",children:"\u9644\u5f55"}),"\u3002"]}),"\n",(0,i.jsx)(n.h2,{id:"2-\u914d\u7f6e-codegen-\u8fd0\u884c",children:"2. \u914d\u7f6e Codegen \u8fd0\u884c"}),"\n",(0,i.jsxs)(n.p,{children:["\u8be5\u89c4\u8303\u6587\u4ef6\u7528\u4e8e React Native \u7684 Codegen \u5de5\u5177\u751f\u6210\u5e73\u53f0\u7279\u5b9a\u7684\u63a5\u53e3\u548c\u6837\u677f\u4ee3\u7801\u3002\u4e3a\u6b64\uff0cCodegen \u9700\u8981\u77e5\u9053\u5728\u54ea\u91cc\u627e\u5230\u6211\u4eec\u7684\u89c4\u8303\u6587\u4ef6\u4ee5\u53ca\u5982\u4f55\u5904\u7406\u5b83\u3002\u66f4\u65b0\u4f60\u7684 ",(0,i.jsx)(n.code,{children:"package.json"})," \u6587\u4ef6\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",metastring:"package.json",children:' "start": "react-native start",\n "test": "jest"\n },\n // highlight-start\n "codegenConfig": {\n "name": "AppSpec",\n "type": "components",\n "jsSrcsDir": "specs",\n "android": {\n "javaPackageName": "com.webview"\n }\n },\n // highlight-end\n "dependencies": {\n'})}),"\n",(0,i.jsx)(n.p,{children:"\u914d\u7f6e\u597d Codegen \u540e\uff0c\u6211\u4eec\u9700\u8981\u51c6\u5907\u539f\u751f\u4ee3\u7801\u4ee5\u8fde\u63a5\u5230\u751f\u6210\u7684\u4ee3\u7801\u3002"}),"\n",(0,i.jsx)(n.h2,{id:"2-\u6784\u5efa\u539f\u751f\u4ee3\u7801",children:"2. \u6784\u5efa\u539f\u751f\u4ee3\u7801"}),"\n",(0,i.jsx)(n.p,{children:"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u539f\u751f\u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u5f53 React \u9700\u8981\u6e32\u67d3\u89c6\u56fe\u65f6\uff0c\u5e73\u53f0\u53ef\u4ee5\u521b\u5efa\u6b63\u786e\u7684\u539f\u751f\u89c6\u56fe\u5e76\u5728\u5c4f\u5e55\u4e0a\u6e32\u67d3\u5b83\u3002"}),"\n",(0,i.jsx)(n.p,{children:"\u4f60\u5e94\u8be5\u5206\u522b\u5728 Android \u548c iOS \u5e73\u53f0\u4e0a\u5de5\u4f5c\u3002"}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["\u672c\u6307\u5357\u5c55\u793a\u4e86\u5982\u4f55\u521b\u5efa\u4e00\u4e2a\u4ec5\u9002\u7528\u4e8e\u65b0\u67b6\u6784\u7684\u539f\u751f\u7ec4\u4ef6\u3002\u5982\u679c\u4f60\u9700\u8981\u540c\u65f6\u652f\u6301\u65b0\u67b6\u6784\u548c\u65e7\u67b6\u6784\uff0c\u8bf7\u53c2\u9605\u6211\u4eec\u7684",(0,i.jsx)(n.a,{href:"https://github.com/reactwg/react-native-new-architecture/blob/main/docs/backwards-compat.md",children:"\u5411\u540e\u517c\u5bb9\u6307\u5357"}),"\u3002"]})}),"\n",(0,i.jsxs)(r.A,{groupId:"platforms",queryString:!0,defaultValue:c.A.defaultPlatform,children:[(0,i.jsx)(o.A,{value:"android",label:"Android",children:(0,i.jsx)(p,{})}),(0,i.jsx)(o.A,{value:"ios",label:"iOS",children:(0,i.jsx)(l,{})})]}),"\n",(0,i.jsx)(n.h2,{id:"3-\u4f7f\u7528\u4f60\u7684\u539f\u751f\u7ec4\u4ef6",children:"3. \u4f7f\u7528\u4f60\u7684\u539f\u751f\u7ec4\u4ef6"}),"\n",(0,i.jsxs)(n.p,{children:["\u6700\u540e\uff0c\u4f60\u53ef\u4ee5\u5728\u5e94\u7528\u4e2d\u4f7f\u7528\u8be5\u7ec4\u4ef6\u3002\u66f4\u65b0\u4f60\u7684\u751f\u6210 ",(0,i.jsx)(n.code,{children:"App.tsx"})," \u6587\u4ef6\uff1a"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-javascript",metastring:'title="Demo/App.tsx"',children:"import React from 'react';\nimport {Alert, StyleSheet, View} from 'react-native';\nimport WebView from './specs/WebViewNativeComponent';\n\nfunction App(): React.JSX.Element {\n return (\n \n {\n Alert.alert('Page Loaded');\n }}\n />\n \n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'center',\n alignContent: 'center',\n },\n webview: {\n width: '100%',\n height: '100%',\n },\n});\n\nexport default App;\n"})}),"\n",(0,i.jsxs)(n.p,{children:["\u8be5\u4ee3\u7801\u521b\u5efa\u4e86\u4e00\u4e2a\u4f7f\u7528\u6211\u4eec\u521b\u5efa\u7684 ",(0,i.jsx)(n.code,{children:"WebView"})," \u7ec4\u4ef6\u6765\u52a0\u8f7d ",(0,i.jsx)(n.code,{children:"react.dev"})," \u7f51\u7ad9\u7684\u5e94\u7528\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u8be5\u5e94\u7528\u8fd8\u663e\u793a\u4e86\u4e00\u4e2a\u5f53\u7f51\u9875\u52a0\u8f7d\u5b8c\u6210\u65f6\u5f39\u51fa\u7684\u8b66\u544a\u3002"}),"\n",(0,i.jsx)(n.h2,{id:"5-\u8fd0\u884c\u5e94\u7528\u4f7f\u7528-webview-\u7ec4\u4ef6",children:"5. \u8fd0\u884c\u5e94\u7528\u4f7f\u7528 WebView \u7ec4\u4ef6"}),"\n",(0,i.jsxs)(r.A,{groupId:"platforms",queryString:!0,defaultValue:c.A.defaultPlatform,children:[(0,i.jsx)(o.A,{value:"android",label:"Android",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn run android\n"})})}),(0,i.jsx)(o.A,{value:"ios",label:"iOS",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"yarn run ios\n"})})})]}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"Android"}),(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"iOS"})]})}),(0,i.jsx)(n.tbody,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:(0,i.jsx)("img",{style:{"max-height":"600px"},src:"/docs/assets/webview-android.webp"})}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:(0,i.jsx)("img",{style:{"max-height":"600px"},src:"/docs/assets/webview-ios.webp"})})]})})]})]})}function x(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(v,{...e})}):v(e)}},64034:(e,n,t)=>{t.d(n,{A:()=>o});var i=t(1448);const a=!!i.A.canUseDOM&&navigator.platform.startsWith("Mac"),r=!!i.A.canUseDOM&&navigator.platform.startsWith("Win"),o={defaultGuide:"native",defaultJsDebugger:"flipper",defaultOs:a?"macos":r?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:a?"ios":"android",defaultSyntax:"functional",defaultAndroidLanguage:"java",defaultAppleLanguage:"objc",defaultJavaScriptSpecLanguages:"typescript",getDevNotesTabs:(e=["android","ios","web","windows"])=>[e.includes("android")?{label:"Android",value:"android"}:void 0,e.includes("ios")?{label:"iOS",value:"ios"}:void 0,e.includes("web")?{label:"Web",value:"web"}:void 0,e.includes("windows")?{label:"Windows",value:"windows"}:void 0].filter(Boolean),guides:[{label:"\u5b8c\u6574\u539f\u751f\u73af\u5883",value:"native"},{label:"\u7b80\u6613\u6c99\u76d2\u73af\u5883",value:"quickstart"}],oses:[{label:"macOS",value:"macos"},{label:"Windows",value:"windows"},{label:"Linux",value:"linux"}],packageManagers:[{label:"npm",value:"npm"},{label:"Yarn",value:"yarn"}],platforms:[{label:"Android",value:"android"},{label:"iOS",value:"ios"}],syntax:[{label:"\u51fd\u6570\u5f0f\u7ec4\u4ef6",value:"functional"},{label:"Class \u7ec4\u4ef6",value:"classical"}],androidLanguages:[{label:"Java",value:"java"},{label:"Kotlin",value:"kotlin"}],appleLanguages:[{label:"ObjectiveC",value:"objc"},{label:"Swift",value:"swift"}],javaScriptSpecLanguages:[{label:"TypeScript",value:"typescript"},{label:"Flow",value:"flow"}],jsDebuggers:[{label:"Hermes Debugger / Expo",value:"hermes"},{label:"Flipper",value:"flipper"},{label:"New Debugger (Experimental)",value:"new-debugger"}],snackLanguages:[{label:"TypeScript",value:"typescript"},{label:"JavaScript",value:"javascript"}],defaultSnackLanguage:"typescript"}},49646:(e,n,t)=>{t.d(n,{A:()=>o});var i=t(62540),a=t(11750);const r={tabItem:"tabItem_wHwb"};function o({children:e,hidden:n,className:t}){return(0,i.jsx)("div",{role:"tabpanel",className:(0,a.A)(r.tabItem,t),hidden:n,children:e})}},44067:(e,n,t)=>{t.d(n,{A:()=>C});var i=t(62540),a=t(63696),r=t(11750),o=t(3101),c=t(49519),s=t(21750),d=t(87718),l=t(38807),p=t(17819);function u(e){return a.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??function(e){return u(e).map((({props:{value:e,label:n,attributes:t,default:i}})=>({value:e,label:n,attributes:t,default:i})))}(t);return function(e){const n=(0,l.XI)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function m({value:e,tabValues:n}){return n.some((n=>n.value===e))}function g({queryString:e=!1,groupId:n}){const t=(0,c.W6)(),i=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,d.aZ)(i),(0,a.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(t.location.search);n.set(i,e),t.replace({...t.location,search:n.toString()})}),[i,t])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:i}=e,r=h(e),[o,c]=(0,a.useState)((()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!m({value:e,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const t=n.find((e=>e.default))??n[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:r}))),[d,l]=g({queryString:t,groupId:i}),[u,b]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[t,i]=(0,p.Dv)(n);return[t,(0,a.useCallback)((e=>{n&&i.set(e)}),[n,i])]}({groupId:i}),v=(()=>{const e=d??u;return m({value:e,tabValues:r})?e:null})();(0,s.A)((()=>{v&&c(v)}),[v]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);c(e),l(e),b(e)}),[l,b,r]),tabValues:r}}var v=t(64062);const x={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};function w({className:e,block:n,selectedValue:t,selectValue:a,tabValues:c}){const s=[],{blockElementScrollPositionUntilNextRender:d}=(0,o.a_)(),l=e=>{const n=e.currentTarget,i=s.indexOf(n),r=c[i].value;r!==t&&(d(n),a(r))},p=e=>{let n=null;switch(e.key){case"Enter":l(e);break;case"ArrowRight":{const t=s.indexOf(e.currentTarget)+1;n=s[t]??s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;n=s[t]??s[s.length-1];break}}n?.focus()};return(0,i.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":n},e),children:c.map((({value:e,label:n,attributes:a})=>(0,i.jsx)("li",{role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>s.push(e),onKeyDown:p,onClick:l,...a,className:(0,r.A)("tabs__item",x.tabItem,a?.className,{"tabs__item--active":t===e}),children:n??e},e)))})}function j({lazy:e,children:n,selectedValue:t}){const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=o.find((e=>e.props.value===t));return e?(0,a.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,i.jsx)("div",{className:"margin-top--md",children:o.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==t})))})}function f(e){const n=b(e);return(0,i.jsxs)("div",{className:(0,r.A)("tabs-container",x.tabList),children:[(0,i.jsx)(w,{...n,...e}),(0,i.jsx)(j,{...n,...e})]})}function C(e){const n=(0,v.A)();return(0,i.jsx)(f,{...e,children:u(e.children)},String(n))}},43023:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>c});var i=t(63696);const a={},r=i.createContext(a);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6fad45aa.37c8e229.js b/assets/js/6fad45aa.1c791c5e.js similarity index 99% rename from assets/js/6fad45aa.37c8e229.js rename to assets/js/6fad45aa.1c791c5e.js index 10fa57f8157..02ff1c39295 100644 --- a/assets/js/6fad45aa.37c8e229.js +++ b/assets/js/6fad45aa.1c791c5e.js @@ -820,7 +820,7 @@ const metadata = { "permalink": "/docs/the-new-architecture/custom-cxx-types" }, "next": { - "title": "appendix", + "title": "附录", "permalink": "/docs/appendix" } }; diff --git a/assets/js/8d5eac66.3699878a.js b/assets/js/8d5eac66.3dafeea7.js similarity index 95% rename from assets/js/8d5eac66.3699878a.js rename to assets/js/8d5eac66.3dafeea7.js index 9120121f79f..a91c3083126 100644 --- a/assets/js/8d5eac66.3699878a.js +++ b/assets/js/8d5eac66.3dafeea7.js @@ -91,21 +91,21 @@ function _createMdxContent(props) { }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.admonition, { type: "note", children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, { - children: "你可能以前熟悉:" + children: "你可能曾经用过:" }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.ul, { children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.li, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, { href: "./legacy/native-modules-intro", - children: "Legacy Native Modules" + children: "传统原生模块" }), ";"] }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.li, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, { href: "./legacy/native-components-android", - children: "Legacy Native Components" + children: "传统原生 UI 组件" }), ";"] }), "\n"] }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, { - children: "这些是我们弃用的原生模块和组件 API。你可以继续使用许多这些遗留库,感谢我们的互操作层。你应该考虑:" + children: "这些是我们即将弃用的原生模块和组件 API。由于我们引入了向后兼容的互操作层,所以你仍然可以继续使用许多这些遗留库。但即便如此,你还是应该考虑:" }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.ul, { children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, { children: "使用替代库," @@ -121,12 +121,12 @@ function _createMdxContent(props) { children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, { href: "/docs/turbo-native-modules-introduction", - children: "Android & iOS" + children: "Android 与 iOS 的原生模块" }) }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, { href: "/docs/the-new-architecture/pure-cxx-modules", - children: "跨平台使用 C++" + children: "使用 C++ 实现跨平台的原生模块" }) }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, { @@ -140,7 +140,7 @@ function _createMdxContent(props) { children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, { href: "/docs/fabric-native-components-introduction", - children: "Android & iOS" + children: "Android 与 iOS 的原生 UI 组件" }) }), "\n"] }), "\n"] diff --git a/assets/js/8d5eac66.be7ceefa.js b/assets/js/8d5eac66.6b34e6af.js similarity index 53% rename from assets/js/8d5eac66.be7ceefa.js rename to assets/js/8d5eac66.6b34e6af.js index da9f2773709..2a284be0192 100644 --- a/assets/js/8d5eac66.be7ceefa.js +++ b/assets/js/8d5eac66.6b34e6af.js @@ -1 +1 @@ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[14533],{80560:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>h,frontMatter:()=>c,metadata:()=>o,toc:()=>l});var i=t(62540),r=t(43023);const c={id:"native-platform",title:"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b"},s=void 0,o={id:"native-platform",title:"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b",description:"\u4f60\u7684\u5e94\u7528\u53ef\u80fd\u9700\u8981\u8bbf\u95ee React Native \u6216\u793e\u533a\u7ef4\u62a4\u7684\u6570\u767e\u4e2a \u7b2c\u4e09\u65b9\u5e93 \u4e2d\u672a\u76f4\u63a5\u63d0\u4f9b\u7684\u5e73\u53f0\u529f\u80fd\u3002\u4e5f\u8bb8\u4f60\u60f3\u8981\u91cd\u7528\u4e00\u4e9b\u73b0\u6709\u7684 Objective-C\u3001Swift\u3001Java\u3001Kotlin \u6216 C++ \u4ee3\u7801\u3002\u65e0\u8bba\u4f60\u7684\u539f\u56e0\u662f\u4ec0\u4e48\uff0cReact Native \u90fd\u63d0\u4f9b\u4e86\u4e00\u7ec4\u5f3a\u5927\u7684 API \u6765\u8fde\u63a5\u4f60\u7684\u539f\u751f\u4ee3\u7801\u548c JavaScript \u5e94\u7528\u4ee3\u7801\u3002",source:"@site/versioned_docs/version-0.76/native-platforms.md",sourceDirName:".",slug:"/native-platform",permalink:"/docs/native-platform",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/native-platforms.md",tags:[],version:"0.76",frontMatter:{id:"native-platform",title:"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b"},sidebar:"docs",previous:{title:"Codegen \u547d\u4ee4\u884c\u5de5\u5177",permalink:"/docs/the-new-architecture/codegen-cli"},next:{title:"Turbo \u539f\u751f\u6a21\u5757\u4ecb\u7ecd",permalink:"/docs/turbo-native-modules-introduction"}},a={},l=[];function d(e){const n={a:"a",admonition:"admonition",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["\u4f60\u7684\u5e94\u7528\u53ef\u80fd\u9700\u8981\u8bbf\u95ee React Native \u6216\u793e\u533a\u7ef4\u62a4\u7684\u6570\u767e\u4e2a ",(0,i.jsx)(n.a,{href:"https://reactnative.directory/",children:"\u7b2c\u4e09\u65b9\u5e93"})," \u4e2d\u672a\u76f4\u63a5\u63d0\u4f9b\u7684\u5e73\u53f0\u529f\u80fd\u3002\u4e5f\u8bb8\u4f60\u60f3\u8981\u91cd\u7528\u4e00\u4e9b\u73b0\u6709\u7684 Objective-C\u3001Swift\u3001Java\u3001Kotlin \u6216 C++ \u4ee3\u7801\u3002\u65e0\u8bba\u4f60\u7684\u539f\u56e0\u662f\u4ec0\u4e48\uff0cReact Native \u90fd\u63d0\u4f9b\u4e86\u4e00\u7ec4\u5f3a\u5927\u7684 API \u6765\u8fde\u63a5\u4f60\u7684\u539f\u751f\u4ee3\u7801\u548c JavaScript \u5e94\u7528\u4ee3\u7801\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u672c\u6307\u5357\u4ecb\u7ecd\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u539f\u751f\u6a21\u5757:"})," \u6ca1\u6709\u7528\u6237\u754c\u9762\u7684\u539f\u751f\u5e93\u3002\u4f8b\u5982\uff1a\u6301\u4e45\u5b58\u50a8\u3001\u901a\u77e5\u3001\u7f51\u7edc\u4e8b\u4ef6\u3002\u8fd9\u4e9b\u53ef\u4ee5\u901a\u8fc7 JavaScript \u51fd\u6570\u548c\u5bf9\u8c61\u8bbf\u95ee\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u539f\u751f\u7ec4\u4ef6:"})," \u539f\u751f\u5e73\u53f0\u89c6\u56fe\u3001\u5c0f\u90e8\u4ef6\u548c\u63a7\u5236\u5668\uff0c\u901a\u8fc7 React \u7ec4\u4ef6\u53ef\u4f9b\u4f60\u7684\u5e94\u7528\u7684 JavaScript \u4ee3\u7801\u4f7f\u7528\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(n.admonition,{type:"note",children:[(0,i.jsx)(n.p,{children:"\u4f60\u53ef\u80fd\u4ee5\u524d\u719f\u6089\uff1a"}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"./legacy/native-modules-intro",children:"Legacy Native Modules"}),";"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"./legacy/native-components-android",children:"Legacy Native Components"}),";"]}),"\n"]}),(0,i.jsx)(n.p,{children:"\u8fd9\u4e9b\u662f\u6211\u4eec\u5f03\u7528\u7684\u539f\u751f\u6a21\u5757\u548c\u7ec4\u4ef6 API\u3002\u4f60\u53ef\u4ee5\u7ee7\u7eed\u4f7f\u7528\u8bb8\u591a\u8fd9\u4e9b\u9057\u7559\u5e93\uff0c\u611f\u8c22\u6211\u4eec\u7684\u4e92\u64cd\u4f5c\u5c42\u3002\u4f60\u5e94\u8be5\u8003\u8651\uff1a"}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u4f7f\u7528\u66ff\u4ee3\u5e93\uff0c"}),"\n",(0,i.jsx)(n.li,{children:"\u5347\u7ea7\u5230\u652f\u6301\u65b0\u67b6\u6784\u7684\u5e93\uff0c\u6216\u8005"}),"\n",(0,i.jsx)(n.li,{children:"\u5c06\u8fd9\u4e9b\u5e93\u79fb\u690d\u5230 Turbo \u539f\u751f\u6a21\u5757\u6216 Fabric \u539f\u751f\u7ec4\u4ef6\u3002"}),"\n"]})]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Turbo \u539f\u751f\u6a21\u5757","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/turbo-native-modules-introduction",children:"Android & iOS"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/the-new-architecture/pure-cxx-modules",children:"\u8de8\u5e73\u53f0\u4f7f\u7528 C++"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/the-new-architecture/custom-cxx-types",children:"\u9ad8\u7ea7\uff1a\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b"})}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Fabric \u539f\u751f\u7ec4\u4ef6","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/fabric-native-components-introduction",children:"Android & iOS"})}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>o});var i=t(63696);const r={},c=i.createContext(r);function s(e){const n=i.useContext(c);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[14533],{80560:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>c,metadata:()=>o,toc:()=>a});var i=t(62540),r=t(43023);const c={id:"native-platform",title:"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b"},s=void 0,o={id:"native-platform",title:"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b",description:"\u4f60\u7684\u5e94\u7528\u53ef\u80fd\u9700\u8981\u8bbf\u95ee React Native \u6216\u793e\u533a\u7ef4\u62a4\u7684\u6570\u767e\u4e2a \u7b2c\u4e09\u65b9\u5e93 \u4e2d\u672a\u76f4\u63a5\u63d0\u4f9b\u7684\u5e73\u53f0\u529f\u80fd\u3002\u4e5f\u8bb8\u4f60\u60f3\u8981\u91cd\u7528\u4e00\u4e9b\u73b0\u6709\u7684 Objective-C\u3001Swift\u3001Java\u3001Kotlin \u6216 C++ \u4ee3\u7801\u3002\u65e0\u8bba\u4f60\u7684\u539f\u56e0\u662f\u4ec0\u4e48\uff0cReact Native \u90fd\u63d0\u4f9b\u4e86\u4e00\u7ec4\u5f3a\u5927\u7684 API \u6765\u8fde\u63a5\u4f60\u7684\u539f\u751f\u4ee3\u7801\u548c JavaScript \u5e94\u7528\u4ee3\u7801\u3002",source:"@site/versioned_docs/version-0.76/native-platforms.md",sourceDirName:".",slug:"/native-platform",permalink:"/docs/native-platform",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/native-platforms.md",tags:[],version:"0.76",frontMatter:{id:"native-platform",title:"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b"},sidebar:"docs",previous:{title:"Codegen \u547d\u4ee4\u884c\u5de5\u5177",permalink:"/docs/the-new-architecture/codegen-cli"},next:{title:"Turbo \u539f\u751f\u6a21\u5757\u4ecb\u7ecd",permalink:"/docs/turbo-native-modules-introduction"}},l={},a=[];function d(e){const n={a:"a",admonition:"admonition",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["\u4f60\u7684\u5e94\u7528\u53ef\u80fd\u9700\u8981\u8bbf\u95ee React Native \u6216\u793e\u533a\u7ef4\u62a4\u7684\u6570\u767e\u4e2a ",(0,i.jsx)(n.a,{href:"https://reactnative.directory/",children:"\u7b2c\u4e09\u65b9\u5e93"})," \u4e2d\u672a\u76f4\u63a5\u63d0\u4f9b\u7684\u5e73\u53f0\u529f\u80fd\u3002\u4e5f\u8bb8\u4f60\u60f3\u8981\u91cd\u7528\u4e00\u4e9b\u73b0\u6709\u7684 Objective-C\u3001Swift\u3001Java\u3001Kotlin \u6216 C++ \u4ee3\u7801\u3002\u65e0\u8bba\u4f60\u7684\u539f\u56e0\u662f\u4ec0\u4e48\uff0cReact Native \u90fd\u63d0\u4f9b\u4e86\u4e00\u7ec4\u5f3a\u5927\u7684 API \u6765\u8fde\u63a5\u4f60\u7684\u539f\u751f\u4ee3\u7801\u548c JavaScript \u5e94\u7528\u4ee3\u7801\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u672c\u6307\u5357\u4ecb\u7ecd\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u539f\u751f\u6a21\u5757:"})," \u6ca1\u6709\u7528\u6237\u754c\u9762\u7684\u539f\u751f\u5e93\u3002\u4f8b\u5982\uff1a\u6301\u4e45\u5b58\u50a8\u3001\u901a\u77e5\u3001\u7f51\u7edc\u4e8b\u4ef6\u3002\u8fd9\u4e9b\u53ef\u4ee5\u901a\u8fc7 JavaScript \u51fd\u6570\u548c\u5bf9\u8c61\u8bbf\u95ee\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u539f\u751f\u7ec4\u4ef6:"})," \u539f\u751f\u5e73\u53f0\u89c6\u56fe\u3001\u5c0f\u90e8\u4ef6\u548c\u63a7\u5236\u5668\uff0c\u901a\u8fc7 React \u7ec4\u4ef6\u53ef\u4f9b\u4f60\u7684\u5e94\u7528\u7684 JavaScript \u4ee3\u7801\u4f7f\u7528\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(n.admonition,{type:"note",children:[(0,i.jsx)(n.p,{children:"\u4f60\u53ef\u80fd\u66fe\u7ecf\u7528\u8fc7\uff1a"}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"./legacy/native-modules-intro",children:"\u4f20\u7edf\u539f\u751f\u6a21\u5757"}),";"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"./legacy/native-components-android",children:"\u4f20\u7edf\u539f\u751f UI \u7ec4\u4ef6"}),";"]}),"\n"]}),(0,i.jsx)(n.p,{children:"\u8fd9\u4e9b\u662f\u6211\u4eec\u5373\u5c06\u5f03\u7528\u7684\u539f\u751f\u6a21\u5757\u548c\u7ec4\u4ef6 API\u3002\u7531\u4e8e\u6211\u4eec\u5f15\u5165\u4e86\u5411\u540e\u517c\u5bb9\u7684\u4e92\u64cd\u4f5c\u5c42\uff0c\u6240\u4ee5\u4f60\u4ecd\u7136\u53ef\u4ee5\u7ee7\u7eed\u4f7f\u7528\u8bb8\u591a\u8fd9\u4e9b\u9057\u7559\u5e93\u3002\u4f46\u5373\u4fbf\u5982\u6b64\uff0c\u4f60\u8fd8\u662f\u5e94\u8be5\u8003\u8651\uff1a"}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u4f7f\u7528\u66ff\u4ee3\u5e93\uff0c"}),"\n",(0,i.jsx)(n.li,{children:"\u5347\u7ea7\u5230\u652f\u6301\u65b0\u67b6\u6784\u7684\u5e93\uff0c\u6216\u8005"}),"\n",(0,i.jsx)(n.li,{children:"\u5c06\u8fd9\u4e9b\u5e93\u79fb\u690d\u5230 Turbo \u539f\u751f\u6a21\u5757\u6216 Fabric \u539f\u751f\u7ec4\u4ef6\u3002"}),"\n"]})]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Turbo \u539f\u751f\u6a21\u5757","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/turbo-native-modules-introduction",children:"Android \u4e0e iOS \u7684\u539f\u751f\u6a21\u5757"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/the-new-architecture/pure-cxx-modules",children:"\u4f7f\u7528 C++ \u5b9e\u73b0\u8de8\u5e73\u53f0\u7684\u539f\u751f\u6a21\u5757"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/the-new-architecture/custom-cxx-types",children:"\u9ad8\u7ea7\uff1a\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b"})}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Fabric \u539f\u751f\u7ec4\u4ef6","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/fabric-native-components-introduction",children:"Android \u4e0e iOS \u7684\u539f\u751f UI \u7ec4\u4ef6"})}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>o});var i=t(63696);const r={},c=i.createContext(r);function s(e){const n=i.useContext(c);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a079babe.3b0535c1.js b/assets/js/a079babe.492f35ca.js similarity index 96% rename from assets/js/a079babe.3b0535c1.js rename to assets/js/a079babe.492f35ca.js index d8a6f15f4a3..d4f1c238424 100644 --- a/assets/js/a079babe.3b0535c1.js +++ b/assets/js/a079babe.492f35ca.js @@ -91,21 +91,21 @@ function _createMdxContent(props) { }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.admonition, { type: "note", children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, { - children: "你可能以前熟悉:" + children: "你可能曾经用过:" }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.ul, { children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.li, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, { href: "./legacy/native-modules-intro", - children: "Legacy Native Modules" + children: "传统原生模块" }), ";"] }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.li, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.a, { href: "./legacy/native-components-android", - children: "Legacy Native Components" + children: "传统原生 UI 组件" }), ";"] }), "\n"] }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.p, { - children: "这些是我们弃用的原生模块和组件 API。你可以继续使用许多这些遗留库,感谢我们的互操作层。你应该考虑:" + children: "这些是我们即将弃用的原生模块和组件 API。由于我们引入了向后兼容的互操作层,所以你仍然可以继续使用许多这些遗留库。但即便如此,你还是应该考虑:" }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.ul, { children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.li, { children: "使用替代库," diff --git a/assets/js/a079babe.305ab967.js b/assets/js/a079babe.4e572a42.js similarity index 53% rename from assets/js/a079babe.305ab967.js rename to assets/js/a079babe.4e572a42.js index 6c5b2967fe9..c5a8eca39cc 100644 --- a/assets/js/a079babe.305ab967.js +++ b/assets/js/a079babe.4e572a42.js @@ -1 +1 @@ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[37616],{92564:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>h,frontMatter:()=>c,metadata:()=>o,toc:()=>l});var i=t(62540),r=t(43023);const c={id:"native-platform",title:"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b"},s=void 0,o={id:"native-platform",title:"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b",description:"\u4f60\u7684\u5e94\u7528\u53ef\u80fd\u9700\u8981\u8bbf\u95ee React Native \u6216\u793e\u533a\u7ef4\u62a4\u7684\u6570\u767e\u4e2a \u7b2c\u4e09\u65b9\u5e93 \u4e2d\u672a\u76f4\u63a5\u63d0\u4f9b\u7684\u5e73\u53f0\u529f\u80fd\u3002\u4e5f\u8bb8\u4f60\u60f3\u8981\u91cd\u7528\u4e00\u4e9b\u73b0\u6709\u7684 Objective-C\u3001Swift\u3001Java\u3001Kotlin \u6216 C++ \u4ee3\u7801\u3002\u65e0\u8bba\u4f60\u7684\u539f\u56e0\u662f\u4ec0\u4e48\uff0cReact Native \u90fd\u63d0\u4f9b\u4e86\u4e00\u7ec4\u5f3a\u5927\u7684 API \u6765\u8fde\u63a5\u4f60\u7684\u539f\u751f\u4ee3\u7801\u548c JavaScript \u5e94\u7528\u4ee3\u7801\u3002",source:"@site/../cndocs/native-platforms.md",sourceDirName:".",slug:"/native-platform",permalink:"/docs/next/native-platform",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/native-platforms.md",tags:[],version:"current",frontMatter:{id:"native-platform",title:"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b"},sidebar:"docs",previous:{title:"Codegen \u547d\u4ee4\u884c\u5de5\u5177",permalink:"/docs/next/the-new-architecture/codegen-cli"},next:{title:"Turbo \u539f\u751f\u6a21\u5757\u4ecb\u7ecd",permalink:"/docs/next/turbo-native-modules-introduction"}},a={},l=[];function d(e){const n={a:"a",admonition:"admonition",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["\u4f60\u7684\u5e94\u7528\u53ef\u80fd\u9700\u8981\u8bbf\u95ee React Native \u6216\u793e\u533a\u7ef4\u62a4\u7684\u6570\u767e\u4e2a ",(0,i.jsx)(n.a,{href:"https://reactnative.directory/",children:"\u7b2c\u4e09\u65b9\u5e93"})," \u4e2d\u672a\u76f4\u63a5\u63d0\u4f9b\u7684\u5e73\u53f0\u529f\u80fd\u3002\u4e5f\u8bb8\u4f60\u60f3\u8981\u91cd\u7528\u4e00\u4e9b\u73b0\u6709\u7684 Objective-C\u3001Swift\u3001Java\u3001Kotlin \u6216 C++ \u4ee3\u7801\u3002\u65e0\u8bba\u4f60\u7684\u539f\u56e0\u662f\u4ec0\u4e48\uff0cReact Native \u90fd\u63d0\u4f9b\u4e86\u4e00\u7ec4\u5f3a\u5927\u7684 API \u6765\u8fde\u63a5\u4f60\u7684\u539f\u751f\u4ee3\u7801\u548c JavaScript \u5e94\u7528\u4ee3\u7801\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u672c\u6307\u5357\u4ecb\u7ecd\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u539f\u751f\u6a21\u5757:"})," \u6ca1\u6709\u7528\u6237\u754c\u9762\u7684\u539f\u751f\u5e93\u3002\u4f8b\u5982\uff1a\u6301\u4e45\u5b58\u50a8\u3001\u901a\u77e5\u3001\u7f51\u7edc\u4e8b\u4ef6\u3002\u8fd9\u4e9b\u53ef\u4ee5\u901a\u8fc7 JavaScript \u51fd\u6570\u548c\u5bf9\u8c61\u8bbf\u95ee\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u539f\u751f\u7ec4\u4ef6:"})," \u539f\u751f\u5e73\u53f0\u89c6\u56fe\u3001\u5c0f\u90e8\u4ef6\u548c\u63a7\u5236\u5668\uff0c\u901a\u8fc7 React \u7ec4\u4ef6\u53ef\u4f9b\u4f60\u7684\u5e94\u7528\u7684 JavaScript \u4ee3\u7801\u4f7f\u7528\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(n.admonition,{type:"note",children:[(0,i.jsx)(n.p,{children:"\u4f60\u53ef\u80fd\u4ee5\u524d\u719f\u6089\uff1a"}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"./legacy/native-modules-intro",children:"Legacy Native Modules"}),";"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"./legacy/native-components-android",children:"Legacy Native Components"}),";"]}),"\n"]}),(0,i.jsx)(n.p,{children:"\u8fd9\u4e9b\u662f\u6211\u4eec\u5f03\u7528\u7684\u539f\u751f\u6a21\u5757\u548c\u7ec4\u4ef6 API\u3002\u4f60\u53ef\u4ee5\u7ee7\u7eed\u4f7f\u7528\u8bb8\u591a\u8fd9\u4e9b\u9057\u7559\u5e93\uff0c\u611f\u8c22\u6211\u4eec\u7684\u4e92\u64cd\u4f5c\u5c42\u3002\u4f60\u5e94\u8be5\u8003\u8651\uff1a"}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u4f7f\u7528\u66ff\u4ee3\u5e93\uff0c"}),"\n",(0,i.jsx)(n.li,{children:"\u5347\u7ea7\u5230\u652f\u6301\u65b0\u67b6\u6784\u7684\u5e93\uff0c\u6216\u8005"}),"\n",(0,i.jsx)(n.li,{children:"\u5c06\u8fd9\u4e9b\u5e93\u79fb\u690d\u5230 Turbo \u539f\u751f\u6a21\u5757\u6216 Fabric \u539f\u751f\u7ec4\u4ef6\u3002"}),"\n"]})]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Turbo \u539f\u751f\u6a21\u5757","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/next/turbo-native-modules-introduction",children:"Android \u4e0e iOS \u7684\u539f\u751f\u6a21\u5757"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/next/the-new-architecture/pure-cxx-modules",children:"\u4f7f\u7528 C++ \u5b9e\u73b0\u8de8\u5e73\u53f0\u7684\u539f\u751f\u6a21\u5757"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/next/the-new-architecture/custom-cxx-types",children:"\u9ad8\u7ea7\uff1a\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b"})}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Fabric \u539f\u751f\u7ec4\u4ef6","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/next/fabric-native-components-introduction",children:"Android \u4e0e iOS \u7684\u539f\u751f UI \u7ec4\u4ef6"})}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>o});var i=t(63696);const r={},c=i.createContext(r);function s(e){const n=i.useContext(c);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[37616],{92564:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>c,metadata:()=>o,toc:()=>a});var i=t(62540),r=t(43023);const c={id:"native-platform",title:"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b"},s=void 0,o={id:"native-platform",title:"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b",description:"\u4f60\u7684\u5e94\u7528\u53ef\u80fd\u9700\u8981\u8bbf\u95ee React Native \u6216\u793e\u533a\u7ef4\u62a4\u7684\u6570\u767e\u4e2a \u7b2c\u4e09\u65b9\u5e93 \u4e2d\u672a\u76f4\u63a5\u63d0\u4f9b\u7684\u5e73\u53f0\u529f\u80fd\u3002\u4e5f\u8bb8\u4f60\u60f3\u8981\u91cd\u7528\u4e00\u4e9b\u73b0\u6709\u7684 Objective-C\u3001Swift\u3001Java\u3001Kotlin \u6216 C++ \u4ee3\u7801\u3002\u65e0\u8bba\u4f60\u7684\u539f\u56e0\u662f\u4ec0\u4e48\uff0cReact Native \u90fd\u63d0\u4f9b\u4e86\u4e00\u7ec4\u5f3a\u5927\u7684 API \u6765\u8fde\u63a5\u4f60\u7684\u539f\u751f\u4ee3\u7801\u548c JavaScript \u5e94\u7528\u4ee3\u7801\u3002",source:"@site/../cndocs/native-platforms.md",sourceDirName:".",slug:"/native-platform",permalink:"/docs/next/native-platform",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/native-platforms.md",tags:[],version:"current",frontMatter:{id:"native-platform",title:"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b"},sidebar:"docs",previous:{title:"Codegen \u547d\u4ee4\u884c\u5de5\u5177",permalink:"/docs/next/the-new-architecture/codegen-cli"},next:{title:"Turbo \u539f\u751f\u6a21\u5757\u4ecb\u7ecd",permalink:"/docs/next/turbo-native-modules-introduction"}},l={},a=[];function d(e){const n={a:"a",admonition:"admonition",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["\u4f60\u7684\u5e94\u7528\u53ef\u80fd\u9700\u8981\u8bbf\u95ee React Native \u6216\u793e\u533a\u7ef4\u62a4\u7684\u6570\u767e\u4e2a ",(0,i.jsx)(n.a,{href:"https://reactnative.directory/",children:"\u7b2c\u4e09\u65b9\u5e93"})," \u4e2d\u672a\u76f4\u63a5\u63d0\u4f9b\u7684\u5e73\u53f0\u529f\u80fd\u3002\u4e5f\u8bb8\u4f60\u60f3\u8981\u91cd\u7528\u4e00\u4e9b\u73b0\u6709\u7684 Objective-C\u3001Swift\u3001Java\u3001Kotlin \u6216 C++ \u4ee3\u7801\u3002\u65e0\u8bba\u4f60\u7684\u539f\u56e0\u662f\u4ec0\u4e48\uff0cReact Native \u90fd\u63d0\u4f9b\u4e86\u4e00\u7ec4\u5f3a\u5927\u7684 API \u6765\u8fde\u63a5\u4f60\u7684\u539f\u751f\u4ee3\u7801\u548c JavaScript \u5e94\u7528\u4ee3\u7801\u3002"]}),"\n",(0,i.jsx)(n.p,{children:"\u672c\u6307\u5357\u4ecb\u7ecd\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u539f\u751f\u6a21\u5757:"})," \u6ca1\u6709\u7528\u6237\u754c\u9762\u7684\u539f\u751f\u5e93\u3002\u4f8b\u5982\uff1a\u6301\u4e45\u5b58\u50a8\u3001\u901a\u77e5\u3001\u7f51\u7edc\u4e8b\u4ef6\u3002\u8fd9\u4e9b\u53ef\u4ee5\u901a\u8fc7 JavaScript \u51fd\u6570\u548c\u5bf9\u8c61\u8bbf\u95ee\u3002"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u539f\u751f\u7ec4\u4ef6:"})," \u539f\u751f\u5e73\u53f0\u89c6\u56fe\u3001\u5c0f\u90e8\u4ef6\u548c\u63a7\u5236\u5668\uff0c\u901a\u8fc7 React \u7ec4\u4ef6\u53ef\u4f9b\u4f60\u7684\u5e94\u7528\u7684 JavaScript \u4ee3\u7801\u4f7f\u7528\u3002"]}),"\n"]}),"\n",(0,i.jsxs)(n.admonition,{type:"note",children:[(0,i.jsx)(n.p,{children:"\u4f60\u53ef\u80fd\u66fe\u7ecf\u7528\u8fc7\uff1a"}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"./legacy/native-modules-intro",children:"\u4f20\u7edf\u539f\u751f\u6a21\u5757"}),";"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"./legacy/native-components-android",children:"\u4f20\u7edf\u539f\u751f UI \u7ec4\u4ef6"}),";"]}),"\n"]}),(0,i.jsx)(n.p,{children:"\u8fd9\u4e9b\u662f\u6211\u4eec\u5373\u5c06\u5f03\u7528\u7684\u539f\u751f\u6a21\u5757\u548c\u7ec4\u4ef6 API\u3002\u7531\u4e8e\u6211\u4eec\u5f15\u5165\u4e86\u5411\u540e\u517c\u5bb9\u7684\u4e92\u64cd\u4f5c\u5c42\uff0c\u6240\u4ee5\u4f60\u4ecd\u7136\u53ef\u4ee5\u7ee7\u7eed\u4f7f\u7528\u8bb8\u591a\u8fd9\u4e9b\u9057\u7559\u5e93\u3002\u4f46\u5373\u4fbf\u5982\u6b64\uff0c\u4f60\u8fd8\u662f\u5e94\u8be5\u8003\u8651\uff1a"}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u4f7f\u7528\u66ff\u4ee3\u5e93\uff0c"}),"\n",(0,i.jsx)(n.li,{children:"\u5347\u7ea7\u5230\u652f\u6301\u65b0\u67b6\u6784\u7684\u5e93\uff0c\u6216\u8005"}),"\n",(0,i.jsx)(n.li,{children:"\u5c06\u8fd9\u4e9b\u5e93\u79fb\u690d\u5230 Turbo \u539f\u751f\u6a21\u5757\u6216 Fabric \u539f\u751f\u7ec4\u4ef6\u3002"}),"\n"]})]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Turbo \u539f\u751f\u6a21\u5757","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/next/turbo-native-modules-introduction",children:"Android \u4e0e iOS \u7684\u539f\u751f\u6a21\u5757"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/next/the-new-architecture/pure-cxx-modules",children:"\u4f7f\u7528 C++ \u5b9e\u73b0\u8de8\u5e73\u53f0\u7684\u539f\u751f\u6a21\u5757"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/next/the-new-architecture/custom-cxx-types",children:"\u9ad8\u7ea7\uff1a\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b"})}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Fabric \u539f\u751f\u7ec4\u4ef6","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/next/fabric-native-components-introduction",children:"Android \u4e0e iOS \u7684\u539f\u751f UI \u7ec4\u4ef6"})}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},43023:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>o});var i=t(63696);const r={},c=i.createContext(r);function s(e){const n=i.useContext(c);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bf1307fc.2e803da5.js b/assets/js/bf1307fc.2e803da5.js deleted file mode 100644 index 50353da8a6e..00000000000 --- a/assets/js/bf1307fc.2e803da5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[9525],{31413:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":"unreleased","badge":true,"noIndex":false,"className":"docs-version-current","isLast":false,"docsSidebars":{"docs":[{"type":"category","label":"\u5165\u95e8\u57fa\u7840","items":[{"type":"link","label":"\u7b80\u4ecb","href":"/docs/next/getting-started","docId":"getting-started","unlisted":false},{"type":"link","label":"\u6838\u5fc3\u7ec4\u4ef6\u4e0e\u539f\u751f\u7ec4\u4ef6","href":"/docs/next/intro-react-native-components","docId":"intro-react-native-components","unlisted":false},{"type":"link","label":"React \u57fa\u7840","href":"/docs/next/intro-react","docId":"intro-react","unlisted":false},{"type":"link","label":"\u5904\u7406\u6587\u672c\u8f93\u5165","href":"/docs/next/handling-text-input","docId":"handling-text-input","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u6eda\u52a8\u89c6\u56fe","href":"/docs/next/using-a-scrollview","docId":"using-a-scrollview","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u957f\u5217\u8868","href":"/docs/next/using-a-listview","docId":"using-a-listview","unlisted":false},{"type":"link","label":"\u7279\u5b9a\u5e73\u53f0\u4ee3\u7801","href":"/docs/next/platform-specific-code","docId":"platform-specific-code","unlisted":false},{"type":"link","label":"\u5176\u4ed6\u53c2\u8003\u8d44\u6e90","href":"/docs/next/more-resources","docId":"more-resources","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u73af\u5883\u642d\u5efa","items":[{"type":"link","label":"\u642d\u5efa\u5f00\u53d1\u73af\u5883","href":"/docs/next/environment-setup","docId":"environment-setup","unlisted":false},{"type":"link","label":"\u96c6\u6210\u5230\u73b0\u6709\u539f\u751f\u5e94\u7528","href":"/docs/next/integration-with-existing-apps","docId":"integration-with-existing-apps","unlisted":false},{"type":"link","label":"\u96c6\u6210\u5230 Android Fragment","href":"/docs/next/integration-with-android-fragment","docId":"integration-with-android-fragment","unlisted":false},{"type":"link","label":"\u4e3a\u7535\u89c6\u548c\u673a\u9876\u76d2\u5236\u4f5c\u5e94\u7528","href":"/docs/next/building-for-tv","docId":"building-for-tv","unlisted":false},{"type":"link","label":"\u591a\u5e73\u53f0\u652f\u6301","href":"/docs/next/out-of-tree-platforms","docId":"out-of-tree-platforms","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u5f00\u53d1\u6d41\u7a0b","items":[{"type":"link","label":"\u5728\u8bbe\u5907\u4e0a\u8fd0\u884c","href":"/docs/next/running-on-device","docId":"running-on-device","unlisted":false},{"type":"link","label":"\u5feb\u901f\u5237\u65b0","href":"/docs/next/fast-refresh","docId":"fast-refresh","unlisted":false},{"type":"link","label":"Metro","href":"/docs/next/metro","docId":"metro","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u7b2c\u4e09\u65b9\u5e93","href":"/docs/next/libraries","docId":"libraries","unlisted":false},{"type":"link","label":"\u4f7f\u7528 TypeScript","href":"/docs/next/typescript","docId":"typescript","unlisted":false},{"type":"link","label":"\u66f4\u65b0","href":"/docs/next/upgrading","docId":"upgrading","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u754c\u9762\u4e0e\u4ea4\u4e92","items":[{"type":"link","label":"\u6837\u5f0f","href":"/docs/next/style","docId":"style","unlisted":false},{"type":"link","label":"\u9ad8\u5ea6\u4e0e\u5bbd\u5ea6","href":"/docs/next/height-and-width","docId":"height-and-width","unlisted":false},{"type":"link","label":"\u4f7f\u7528 Flexbox \u5e03\u5c40","href":"/docs/next/flexbox","docId":"flexbox","unlisted":false},{"type":"link","label":"\u56fe\u7247","href":"/docs/next/images","docId":"images","unlisted":false},{"type":"link","label":"\u989c\u8272","href":"/docs/next/colors","docId":"colors","unlisted":false},{"type":"category","label":"\u4ea4\u4e92","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u5904\u7406\u89e6\u6478\u4e8b\u4ef6","href":"/docs/next/handling-touches","docId":"handling-touches","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u5bfc\u822a\u5668\u8df3\u8f6c\u9875\u9762","href":"/docs/next/navigation","docId":"navigation","unlisted":false},{"type":"link","label":"\u52a8\u753b","href":"/docs/next/animations","docId":"animations","unlisted":false},{"type":"link","label":"\u624b\u52bf\u54cd\u5e94\u7cfb\u7edf","href":"/docs/next/gesture-responder-system","docId":"gesture-responder-system","unlisted":false}]},{"type":"category","label":"\u7f51\u7edc\u8fde\u63a5","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u8bbf\u95ee\u7f51\u7edc","href":"/docs/next/network","docId":"network","unlisted":false},{"type":"link","label":"\u7f51\u7edc\u5b89\u5168\u7b56\u7565","href":"/docs/next/security","docId":"security","unlisted":false}]},{"type":"category","label":"\u5305\u5bb9\u6027","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u65e0\u969c\u788d\u529f\u80fd","href":"/docs/next/accessibility","docId":"accessibility","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u8c03\u8bd5","items":[{"type":"link","label":"\u8c03\u8bd5","href":"/docs/next/debugging","docId":"debugging","unlisted":false},{"type":"link","label":"React Native \u5f00\u53d1\u8005\u5de5\u5177","href":"/docs/next/react-native-devtools","docId":"react-native-devtools","unlisted":false},{"type":"link","label":"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801","href":"/docs/next/debugging-native-code","docId":"debugging-native-code","unlisted":false},{"type":"link","label":"\u8c03\u8bd5\u53d1\u884c\u7248\u672c","href":"/docs/next/debugging-release-builds","docId":"debugging-release-builds","unlisted":false},{"type":"link","label":"\u5176\u4ed6\u8c03\u8bd5\u65b9\u6cd5","href":"/docs/next/other-debugging-methods","docId":"other-debugging-methods","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u6d4b\u8bd5","items":[{"type":"link","label":"Testing","href":"/docs/next/testing-overview","docId":"testing-overview","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u6027\u80fd\u8c03\u4f18","items":[{"type":"link","label":"\u6027\u80fd\u7efc\u8ff0","href":"/docs/next/performance","docId":"performance","unlisted":false},{"type":"link","label":"\u4f18\u5316\u7f16\u8bd1\u901f\u5ea6","href":"/docs/next/build-speed","docId":"build-speed","unlisted":false},{"type":"link","label":"\u5217\u8868\u914d\u7f6e\u4f18\u5316","href":"/docs/next/optimizing-flatlist-configuration","docId":"optimizing-flatlist-configuration","unlisted":false},{"type":"link","label":"Optimizing JavaScript loading","href":"/docs/next/optimizing-javascript-loading","docId":"optimizing-javascript-loading","unlisted":false},{"type":"link","label":"Profiling","href":"/docs/next/profiling","docId":"profiling","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"JavaScript \u8fd0\u884c\u73af\u5883","items":[{"type":"link","label":"JavaScript \u73af\u5883","href":"/docs/next/javascript-environment","docId":"javascript-environment","unlisted":false},{"type":"link","label":"\u5b9a\u65f6\u5668","href":"/docs/next/timers","docId":"timers","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u65b0\u7684 Hermes \u5f15\u64ce","href":"/docs/next/hermes","docId":"hermes","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Codegen","items":[{"type":"link","label":"\u4ec0\u4e48\u662f Codegen\uff1f","href":"/docs/next/the-new-architecture/what-is-codegen","docId":"the-new-architecture/what-is-codegen","unlisted":false},{"type":"link","label":"\u4f7f\u7528 Codegen","href":"/docs/next/the-new-architecture/using-codegen","docId":"the-new-architecture/using-codegen","unlisted":false},{"type":"link","label":"Codegen \u547d\u4ee4\u884c\u5de5\u5177","href":"/docs/next/the-new-architecture/codegen-cli","docId":"the-new-architecture/codegen-cli","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u539f\u751f\u5f00\u53d1","items":[{"type":"link","label":"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b","href":"/docs/next/native-platform","docId":"native-platform","unlisted":false},{"type":"category","label":"\u539f\u751f\u6a21\u5757","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Turbo \u539f\u751f\u6a21\u5757\u4ecb\u7ecd","href":"/docs/next/turbo-native-modules-introduction","docId":"turbo-native-modules-introduction","unlisted":false},{"type":"link","label":"\u4f7f\u7528 C++ \u5b9e\u73b0\u8de8\u5e73\u53f0\u7684\u539f\u751f\u6a21\u5757","href":"/docs/next/the-new-architecture/pure-cxx-modules","docId":"the-new-architecture/pure-cxx-modules","unlisted":false},{"type":"link","label":"\u9ad8\u7ea7\uff1a\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b","href":"/docs/next/the-new-architecture/custom-cxx-types","docId":"the-new-architecture/custom-cxx-types","unlisted":false}]},{"type":"category","label":"\u539f\u751f UI \u7ec4\u4ef6","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Fabric Native Components Introduction","href":"/docs/next/fabric-native-components-introduction","docId":"fabric-native-components-introduction","unlisted":false}]},{"type":"category","label":"\u5176\u4ed6","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"appendix","href":"/docs/next/appendix","docId":"appendix","unlisted":false},{"type":"link","label":"\u521b\u5efa\u6a21\u5757\u5e93","href":"/docs/next/the-new-architecture/create-module-library","docId":"the-new-architecture/create-module-library","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"Android \u4e0e iOS \u6307\u5357","items":[{"type":"category","label":"Android","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Headless JS\uff08\u540e\u53f0\u4efb\u52a1\uff09","href":"/docs/next/headless-js-android","docId":"headless-js-android","unlisted":false},{"type":"link","label":"\u6253\u5305\u53d1\u5e03","href":"/docs/next/signed-apk-android","docId":"signed-apk-android","unlisted":false},{"type":"link","label":"\u548c\u539f\u751f\u7aef\u901a\u4fe1","href":"/docs/next/communication-android","docId":"communication-android","unlisted":false},{"type":"link","label":"React Native Gradle Plugin","href":"/docs/next/react-native-gradle-plugin","docId":"react-native-gradle-plugin","unlisted":false}]},{"type":"category","label":"iOS","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u94fe\u63a5\u539f\u751f\u5e93","href":"/docs/next/linking-libraries-ios","docId":"linking-libraries-ios","unlisted":false},{"type":"link","label":"\u5728iOS\u6a21\u62df\u5668\u4e0a\u8fd0\u884c","href":"/docs/next/running-on-simulator-ios","docId":"running-on-simulator-ios","unlisted":false},{"type":"link","label":"\u548c\u539f\u751f\u7aef\u901a\u4fe1","href":"/docs/next/communication-ios","docId":"communication-ios","unlisted":false},{"type":"link","label":"iOS \u5e94\u7528\u5c0f\u7ec4\u4ef6","href":"/docs/next/app-extensions","docId":"app-extensions","unlisted":false},{"type":"link","label":"\u4e0a\u67b6 App Store","href":"/docs/next/publishing-to-app-store","docId":"publishing-to-app-store","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u65e7\u67b6\u6784","items":[{"type":"category","label":"\u539f\u751f\u6a21\u5757\uff08\u65e7\u67b6\u6784\uff09","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u539f\u751f\u6a21\u5757\u7b80\u4ecb","href":"/docs/next/legacy/native-modules-intro","docId":"legacy/native-modules-intro","unlisted":false},{"type":"link","label":"Android \u539f\u751f\u6a21\u5757","href":"/docs/next/legacy/native-modules-android","docId":"legacy/native-modules-android","unlisted":false},{"type":"link","label":"iOS \u539f\u751f\u6a21\u5757","href":"/docs/next/legacy/native-modules-ios","docId":"legacy/native-modules-ios","unlisted":false},{"type":"link","label":"Native Modules NPM Package Setup","href":"/docs/next/legacy/native-modules-setup","docId":"legacy/native-modules-setup","unlisted":false},{"type":"link","label":"Local libraries setup","href":"/docs/next/legacy/local-library-setup","docId":"legacy/local-library-setup","unlisted":false}]},{"type":"category","label":"\u539f\u751f UI \u7ec4\u4ef6\uff08\u65e7\u67b6\u6784\uff09","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Android \u539f\u751fUI\u7ec4\u4ef6","href":"/docs/next/legacy/native-components-android","docId":"legacy/native-components-android","unlisted":false},{"type":"link","label":"iOS \u539f\u751fUI\u7ec4\u4ef6","href":"/docs/next/legacy/native-components-ios","docId":"legacy/native-components-ios","unlisted":false},{"type":"link","label":"\u76f4\u63a5\u64cd\u4f5c","href":"/docs/next/legacy/direct-manipulation","docId":"legacy/direct-manipulation","unlisted":false}]}],"collapsed":true,"collapsible":true}],"api":[{"type":"category","label":"APIs","items":[{"type":"link","label":"AccessibilityInfo","href":"/docs/next/accessibilityinfo","docId":"accessibilityinfo","unlisted":false},{"type":"link","label":"Alert","href":"/docs/next/alert","docId":"alert","unlisted":false},{"type":"link","label":"Animated","href":"/docs/next/animated","docId":"animated","unlisted":false},{"type":"link","label":"Animated.Value","href":"/docs/next/animatedvalue","docId":"animatedvalue","unlisted":false},{"type":"link","label":"Animated.ValueXY","href":"/docs/next/animatedvaluexy","docId":"animatedvaluexy","unlisted":false},{"type":"link","label":"Appearance","href":"/docs/next/appearance","docId":"appearance","unlisted":false},{"type":"link","label":"AppRegistry","href":"/docs/next/appregistry","docId":"appregistry","unlisted":false},{"type":"link","label":"AppState","href":"/docs/next/appstate","docId":"appstate","unlisted":false},{"type":"link","label":"DevSettings","href":"/docs/next/devsettings","docId":"devsettings","unlisted":false},{"type":"link","label":"Dimensions","href":"/docs/next/dimensions","docId":"dimensions","unlisted":false},{"type":"link","label":"Easing","href":"/docs/next/easing","docId":"easing","unlisted":false},{"type":"link","label":"InteractionManager","href":"/docs/next/interactionmanager","docId":"interactionmanager","unlisted":false},{"type":"link","label":"Keyboard","href":"/docs/next/keyboard","docId":"keyboard","unlisted":false},{"type":"link","label":"LayoutAnimation","href":"/docs/next/layoutanimation","docId":"layoutanimation","unlisted":false},{"type":"link","label":"Linking","href":"/docs/next/linking","docId":"linking","unlisted":false},{"type":"link","label":"PanResponder","href":"/docs/next/panresponder","docId":"panresponder","unlisted":false},{"type":"link","label":"PixelRatio","href":"/docs/next/pixelratio","docId":"pixelratio","unlisted":false},{"type":"link","label":"Platform","href":"/docs/next/platform","docId":"platform","unlisted":false},{"type":"link","label":"PlatformColor","href":"/docs/next/platformcolor","docId":"platformcolor","unlisted":false},{"type":"link","label":"RootTag","href":"/docs/next/roottag","docId":"roottag","unlisted":false},{"type":"link","label":"Share","href":"/docs/next/share","docId":"share","unlisted":false},{"type":"link","label":"StyleSheet","href":"/docs/next/stylesheet","docId":"stylesheet","unlisted":false},{"type":"link","label":"Systrace","href":"/docs/next/systrace","docId":"systrace","unlisted":false},{"type":"link","label":"\u53d8\u6362\uff08Transform\uff09","href":"/docs/next/transforms","docId":"transforms","unlisted":false},{"type":"link","label":"Vibration","href":"/docs/next/vibration","docId":"vibration","unlisted":false},{"type":"category","label":"Hooks","collapsed":false,"items":[{"type":"link","label":"useColorScheme","href":"/docs/next/usecolorscheme","docId":"usecolorscheme","unlisted":false},{"type":"link","label":"useWindowDimensions","href":"/docs/next/usewindowdimensions","docId":"usewindowdimensions","unlisted":false}],"collapsible":true},{"type":"category","label":"Android API","collapsed":false,"items":[{"type":"link","label":"BackHandler","href":"/docs/next/backhandler","docId":"backhandler","unlisted":false},{"type":"link","label":"PermissionsAndroid","href":"/docs/next/permissionsandroid","docId":"permissionsandroid","unlisted":false},{"type":"link","label":"ToastAndroid","href":"/docs/next/toastandroid","docId":"toastandroid","unlisted":false}],"collapsible":true},{"type":"category","label":"iOS API","collapsed":false,"items":[{"type":"link","label":"ActionSheetIOS","href":"/docs/next/actionsheetios","docId":"actionsheetios","unlisted":false},{"type":"link","label":"DynamicColorIOS","href":"/docs/next/dynamiccolorios","docId":"dynamiccolorios","unlisted":false},{"type":"link","label":"Settings","href":"/docs/next/settings","docId":"settings","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true}],"\u7ec4\u4ef6":[{"type":"category","label":"\u6838\u5fc3\u7ec4\u4ef6","items":[{"type":"link","label":"\u6838\u5fc3\u7ec4\u4ef6\u548cAPI","href":"/docs/next/components-and-apis","docId":"components-and-apis","unlisted":false},{"type":"link","label":"ActivityIndicator","href":"/docs/next/activityindicator","docId":"activityindicator","unlisted":false},{"type":"link","label":"Button","href":"/docs/next/button","docId":"button","unlisted":false},{"type":"link","label":"FlatList","href":"/docs/next/flatlist","docId":"flatlist","unlisted":false},{"type":"link","label":"Image","href":"/docs/next/image","docId":"image","unlisted":false},{"type":"link","label":"ImageBackground","href":"/docs/next/imagebackground","docId":"imagebackground","unlisted":false},{"type":"link","label":"KeyboardAvoidingView","href":"/docs/next/keyboardavoidingview","docId":"keyboardavoidingview","unlisted":false},{"type":"link","label":"Modal","href":"/docs/next/modal","docId":"modal","unlisted":false},{"type":"link","label":"Pressable","href":"/docs/next/pressable","docId":"pressable","unlisted":false},{"type":"link","label":"RefreshControl","href":"/docs/next/refreshcontrol","docId":"refreshcontrol","unlisted":false},{"type":"link","label":"ScrollView","href":"/docs/next/scrollview","docId":"scrollview","unlisted":false},{"type":"link","label":"SectionList","href":"/docs/next/sectionlist","docId":"sectionlist","unlisted":false},{"type":"link","label":"StatusBar","href":"/docs/next/statusbar","docId":"statusbar","unlisted":false},{"type":"link","label":"Switch","href":"/docs/next/switch","docId":"switch","unlisted":false},{"type":"link","label":"Text","href":"/docs/next/text","docId":"text","unlisted":false},{"type":"link","label":"TextInput","href":"/docs/next/textinput","docId":"textinput","unlisted":false},{"type":"link","label":"TouchableHighlight","href":"/docs/next/touchablehighlight","docId":"touchablehighlight","unlisted":false},{"type":"link","label":"TouchableOpacity","href":"/docs/next/touchableopacity","docId":"touchableopacity","unlisted":false},{"type":"link","label":"TouchableWithoutFeedback","href":"/docs/next/touchablewithoutfeedback","docId":"touchablewithoutfeedback","unlisted":false},{"type":"link","label":"View","href":"/docs/next/view","docId":"view","unlisted":false},{"type":"link","label":"VirtualizedList","href":"/docs/next/virtualizedlist","docId":"virtualizedlist","unlisted":false},{"type":"category","label":"Android \u7ec4\u4ef6","collapsed":false,"items":[{"type":"link","label":"DrawerLayoutAndroid","href":"/docs/next/drawerlayoutandroid","docId":"drawerlayoutandroid","unlisted":false},{"type":"link","label":"TouchableNativeFeedback","href":"/docs/next/touchablenativefeedback","docId":"touchablenativefeedback","unlisted":false}],"collapsible":true},{"type":"category","label":"iOS \u7ec4\u4ef6","collapsed":false,"items":[{"type":"link","label":"InputAccessoryView","href":"/docs/next/inputaccessoryview","docId":"inputaccessoryview","unlisted":false},{"type":"link","label":"SafeAreaView","href":"/docs/next/safeareaview","docId":"safeareaview","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Props","items":[{"type":"link","label":"\u56fe\u7247\u6837\u5f0f\u5c5e\u6027","href":"/docs/next/image-style-props","docId":"image-style-props","unlisted":false},{"type":"link","label":"\u5e03\u5c40\u5c5e\u6027","href":"/docs/next/layout-props","docId":"layout-props","unlisted":false},{"type":"link","label":"\u9634\u5f71\u6837\u5f0f\u5c5e\u6027","href":"/docs/next/shadow-props","docId":"shadow-props","unlisted":false},{"type":"link","label":"Text \u6837\u5f0f\u5c5e\u6027","href":"/docs/next/text-style-props","docId":"text-style-props","unlisted":false},{"type":"link","label":"View \u6837\u5f0f\u5c5e\u6027","href":"/docs/next/view-style-props","docId":"view-style-props","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u5185\u90e8\u5bf9\u8c61\u7c7b\u578b","items":[{"type":"link","label":"\u5e03\u5c40\u4e8b\u4ef6\u5bf9\u8c61","href":"/docs/next/layoutevent","docId":"layoutevent","unlisted":false},{"type":"link","label":"\u70b9\u51fb\u4e8b\u4ef6\u5bf9\u8c61","href":"/docs/next/pressevent","docId":"pressevent","unlisted":false},{"type":"link","label":"React \u8282\u70b9\u5bf9\u8c61","href":"/docs/next/react-node","docId":"react-node","unlisted":false},{"type":"link","label":"\u77e9\u5f62\u533a\u57df\u5bf9\u8c61","href":"/docs/next/rect","docId":"rect","unlisted":false},{"type":"link","label":"ViewToken \u5bf9\u8c61","href":"/docs/next/viewtoken","docId":"viewtoken","unlisted":false}],"collapsed":true,"collapsible":true}]},"docs":{"accessibility":{"id":"accessibility","title":"\u65e0\u969c\u788d\u529f\u80fd","description":"\u8bd1\u6ce8\uff1aaccessibility \u4e00\u8bcd\u5e38\u89c1\u591a\u79cd\u8bd1\u6cd5\uff1a\u53ef\u8bbf\u95ee\u6027\u3001\u65e0\u969c\u788d\u6027\u3001\u8f85\u52a9\u529f\u80fd\u7b49\u7b49\uff0c\u5176\u4e2d\u6587\u610f\u601d\u90fd\u4e0d\u592a\u80fd\u51c6\u786e\u8868\u8fbe\u5176\u529f\u80fd\u7684\u672c\u8d28\u2014\u2014\u5373\u4e3a\u6b8b\u969c\u4eba\u58eb\u63d0\u4f9b\u4fbf\u5229\u3002\u672c\u6587\u4e3b\u8981\u91c7\u7528\u201c\u65e0\u969c\u788d\u529f\u80fd\u201d\u548c\u201c\u8f85\u52a9\u6280\u672f/\u670d\u52a1\u201d\u7684\u8bf4\u6cd5\u3002\u5982\u679c\u4f60\u6216\u4f60\u7684\u516c\u53f8\u6682\u65f6\u6ca1\u6709\u8d44\u6e90\u548c\u7cbe\u529b\u53bb\u670d\u52a1\u8fd9\u4e9b\u7528\u6237\uff0c\u90a3\u4e48\u4f60\u53ef\u4ee5\u8df3\u8fc7\u672c\u6587\u3002\u4f46\u662f\uff0c\u8bd1\u8005\u4e2a\u4eba\u5e0c\u671b\u501f\u672c\u6587\u6863\uff0c\u547c\u5401\u6709\u80fd\u529b\u6709\u8d44\u6e90\u7684\u5546\u4e1a\u516c\u53f8/\u7ec4\u7ec7/\u4e2a\u4eba\uff0c\u91cd\u89c6\u6b8b\u969c\u4eba\u58eb\u4f7f\u7528\u667a\u80fd\u624b\u673a\u7684\u6743\u5229\u3002","sidebar":"docs"},"accessibilityinfo":{"id":"accessibilityinfo","title":"AccessibilityInfo","description":"\u6709\u65f6\u5019\u6211\u4eec\u5e0c\u671b\u77e5\u9053\u7528\u6237\u7684\u8bbe\u5907\u662f\u5426\u6b63\u5728\u8fd0\u884c\u8bfb\u5c4f\u5e94\u7528\u3002AccessibilityInfo\u6b63\u662f\u7528\u4e8e\u6b64\u76ee\u7684\u3002\u4f60\u53ef\u4ee5\u7528\u5b83\u6765\u67e5\u8be2\u8bfb\u5c4f\u5e94\u7528\u7684\u5f53\u524d\u72b6\u6001\uff0c\u5e76\u4e14\u53ef\u4ee5\u76d1\u542c\u5176\u72b6\u6001\u53d8\u5316\u3002","sidebar":"api"},"actionsheetios":{"id":"actionsheetios","title":"ActionSheetIOS","description":"\u663e\u793a\u4e00\u4e2a iOS \u539f\u751f\u7684Action Sheet\u7ec4\u4ef6\u3002","sidebar":"api"},"activityindicator":{"id":"activityindicator","title":"ActivityIndicator","description":"\u663e\u793a\u4e00\u4e2a\u5706\u5f62\u7684 loading \u63d0\u793a\u7b26\u53f7\u3002","sidebar":"\u7ec4\u4ef6"},"alert":{"id":"alert","title":"Alert","description":"\u542f\u52a8\u4e00\u4e2a\u63d0\u793a\u5bf9\u8bdd\u6846\uff0c\u5305\u542b\u5bf9\u5e94\u7684\u6807\u9898\u548c\u4fe1\u606f\u3002","sidebar":"api"},"alertios":{"id":"alertios","title":"AlertIOS","description":"AlertIOS\u7528\u4e8e\u5f39\u51fa\u4e00\u4e2a iOS \u63d0\u793a\u5bf9\u8bdd\u6846\uff0c\u53ef\u4ee5\u901a\u77e5\u7528\u6237\u4e00\u4e9b\u4fe1\u606f\u6216\u662f\u63d0\u793a\u7528\u6237\u8f93\u5165\u4e00\u4e9b\u6587\u5b57\u3002"},"animated":{"id":"animated","title":"Animated","description":"Animated\u5e93\u65e8\u5728\u4f7f\u52a8\u753b\u53d8\u5f97\u6d41\u7545\uff0c\u5f3a\u5927\u5e76\u6613\u4e8e\u6784\u5efa\u548c\u7ef4\u62a4\u3002Animated\u4fa7\u91cd\u4e8e\u8f93\u5165\u548c\u8f93\u51fa\u4e4b\u95f4\u7684\u58f0\u660e\u6027\u5173\u7cfb\uff0c\u4ee5\u53ca\u4e24\u8005\u4e4b\u95f4\u7684\u53ef\u914d\u7f6e\u53d8\u6362\uff0c\u6b64\u5916\u8fd8\u63d0\u4f9b\u4e86\u7b80\u5355\u7684 start/stop\u65b9\u6cd5\u6765\u63a7\u5236\u57fa\u4e8e\u65f6\u95f4\u7684\u52a8\u753b\u6267\u884c\u3002","sidebar":"api"},"animatedvalue":{"id":"animatedvalue","title":"Animated.Value","description":"\u9a71\u52a8\u52a8\u753b\u7684\u4e00\u7ef4\u6807\u91cf\u503c. \u4e00\u4e2aAnimated.Value\u53ef\u4ee5\u540c\u6b65\u5730\u9a71\u52a8\u591a\u4e2a\u5c5e\u6027\uff0c\u4f46\u6bcf\u6b21\u53ea\u80fd\u4ee5\u4e00\u79cd\u52a8\u753b\u673a\u5236\u53d8\u5316\u3002\u5982\u679c\u6539\u7528\u4e86\u5176\u4ed6\u52a8\u753b\u673a\u5236\uff08\u4f8b\u5982\u5f00\u59cb\u4e00\u4e2a\u65b0\u7684\u52a8\u753b\u6216\u662f\u8c03\u7528setValue\uff09\uff0c\u5219\u4f1a\u505c\u6b62\u5148\u524d\u7684\u52a8\u753b\u3002","sidebar":"api"},"animatedvaluexy":{"id":"animatedvaluexy","title":"Animated.ValueXY","description":"2D \u503c\u7528\u4e8e\u9a71\u52a8 2D \u52a8\u753b\uff0c\u4f8b\u5982\u5e73\u79fb\u624b\u52bf\u3002\u4e0e\u666e\u901a\u7684Animated.Value\u51e0\u4e4e\u76f8\u540c\u7684 API\uff0c\u4f46\u662f\u53ef\u4ee5\u591a\u8def\u590d\u7528\u3002\u5728\u5185\u90e8\u5305\u542b\u4e24\u4e2a\u5e38\u89c4\u7684Animated.Value\u3002","sidebar":"api"},"animations":{"id":"animations","title":"\u52a8\u753b","description":"\u6d41\u7545\u3001\u6709\u610f\u4e49\u7684\u52a8\u753b\u5bf9\u4e8e\u79fb\u52a8\u5e94\u7528\u7528\u6237\u4f53\u9a8c\u6765\u8bf4\u662f\u975e\u5e38\u91cd\u8981\u7684\u3002\u73b0\u5b9e\u751f\u6d3b\u4e2d\u7684\u7269\u4f53\u5728\u5f00\u59cb\u79fb\u52a8\u548c\u505c\u4e0b\u6765\u7684\u65f6\u5019\u90fd\u5177\u6709\u4e00\u5b9a\u7684\u60ef\u6027\uff0c\u6211\u4eec\u5728\u754c\u9762\u4e2d\u4e5f\u53ef\u4ee5\u4f7f\u7528\u52a8\u753b\u6765\u5b9e\u73b0\u5951\u5408\u7269\u7406\u89c4\u5f8b\u7684\u4ea4\u4e92\u3002","sidebar":"docs"},"app-extensions":{"id":"app-extensions","title":"iOS \u5e94\u7528\u5c0f\u7ec4\u4ef6","description":"\u5c0f\u7ec4\u4ef6\u5141\u8bb8\u60a8\u5728\u4e3b\u8981\u5e94\u7528\u7a0b\u5e8f\u4e4b\u5916\u63d0\u4f9b\u81ea\u5b9a\u4e49\u529f\u80fd\u548c\u5185\u5bb9\u3002iOS\u4e0a\u6709\u4e0d\u540c\u7c7b\u578b\u7684\u5e94\u7528\u5c0f\u7ec4\u4ef6\uff0c\u5b83\u4eec\u90fd\u5728App Extension\u7f16\u7a0b\u6307\u5357\u4e2d\u8fdb\u884c\u4e86\u4ecb\u7ecd\u3002\u5728\u672c\u6307\u5357\u4e2d\uff0c\u6211\u4eec\u5c06\u7b80\u8981\u4ecb\u7ecd\u5982\u4f55\u5728iOS\u4e0a\u5229\u7528\u5e94\u7528\u5c0f\u7ec4\u4ef6\u7684\u4f18\u52bf\u3002","sidebar":"docs"},"appearance":{"id":"appearance","title":"Appearance","description":"Appearance \u6a21\u5757\u63d0\u4f9b\u4e86\u5173\u4e8e\u7528\u6237\u5916\u89c2\u504f\u597d\u7684\u4fe1\u606f\uff0c\u4f8b\u5982\u4ed6\u4eec\u559c\u6b22\u7684\u989c\u8272\u65b9\u6848\uff08\u660e\u4eae\u6216\u6697\u9ed1\uff09\u3002","sidebar":"api"},"appendix":{"id":"appendix","title":"appendix","description":"\u4e00\u3001\u672f\u8bed","sidebar":"docs"},"appregistry":{"id":"appregistry","title":"AppRegistry","description":"\u4ec5\u9002\u7528\u4e8e\u975e\u6c99\u76d2\u9879\u76ee","sidebar":"api"},"appstate":{"id":"appstate","title":"AppState","description":"AppState\u80fd\u544a\u8bc9\u4f60\u5e94\u7528\u5f53\u524d\u662f\u5728\u524d\u53f0\u8fd8\u662f\u5728\u540e\u53f0\uff0c\u5e76\u4e14\u80fd\u5728\u72b6\u6001\u53d8\u5316\u7684\u65f6\u5019\u901a\u77e5\u4f60\u3002","sidebar":"api"},"architecture-glossary":{"id":"architecture-glossary","title":"\u672f\u8bed\u8868","description":"Fabric \u6e32\u67d3\u5668\uff08Fabric Renderer\uff09"},"architecture-overview":{"id":"architecture-overview","title":"\u67b6\u6784\u6982\u89c8","description":"\u672c\u6587\u6863\u8fd8\u5728\u6301\u7eed\u66f4\u65b0\u4e2d\uff0c\u4f1a\u4ece\u6982\u5ff5\u4e0a\u4ecb\u7ecd React Native \u65b0\u67b6\u6784\u662f\u5982\u4f55\u5de5\u4f5c\u7684\u3002\u76ee\u6807\u8bfb\u8005\u5305\u62ec\u751f\u6001\u5e93\u7684\u5f00\u53d1\u8005\u3001\u6838\u5fc3\u8d21\u732e\u8005\u548c\u7279\u522b\u6709\u597d\u5947\u5fc3\u7684\u4eba\u3002"},"asyncstorage":{"id":"asyncstorage","title":"\ud83d\udea7 AsyncStorage","description":"\u5df2\u8fc7\u65f6\u3002 Use one of the community packages instead."},"backhandler":{"id":"backhandler","title":"BackHandler","description":"BackHandler API \u7528\u4e8e\u76d1\u542c\u8bbe\u5907\u4e0a\u7684\u540e\u9000\u6309\u94ae\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u8c03\u7528\u4f60\u81ea\u5df1\u7684\u51fd\u6570\u6765\u5904\u7406\u540e\u9000\u884c\u4e3a\u3002\u6b64 API \u4ec5\u80fd\u5728 Android \u4e0a\u4f7f\u7528\u3002","sidebar":"api"},"build-speed":{"id":"build-speed","title":"\u4f18\u5316\u7f16\u8bd1\u901f\u5ea6","description":"\u6784\u5efa React Native \u5e94\u7528\u53ef\u80fd\u4f1a\u975e\u5e38\u6602\u8d35\uff0c\u5e76\u4e14\u9700\u8981\u5f00\u53d1\u4eba\u5458\u82b1\u8d39\u6570\u5206\u949f\u7684\u65f6\u95f4\u3002","sidebar":"docs"},"building-for-tv":{"id":"building-for-tv","title":"\u4e3a\u7535\u89c6\u548c\u673a\u9876\u76d2\u5236\u4f5c\u5e94\u7528","description":"\u76ee\u524d\u7684 React Native \u5e94\u7528\u53ea\u9700\u5728 JavaScript \u7aef\u7b80\u5355\u4fee\u6539\u751a\u81f3\u65e0\u9700\u4fee\u6539\uff0c\u5728\u7535\u89c6\u548c\u673a\u9876\u76d2\u8bbe\u5907\u4e0a\u5c31\u57fa\u672c\u53ef\u7528\u4e86\u3002","sidebar":"docs"},"button":{"id":"button","title":"Button","description":"\u4e00\u4e2a\u7b80\u5355\u7684\u8de8\u5e73\u53f0\u7684\u6309\u94ae\u7ec4\u4ef6\u3002\u53ef\u4ee5\u8fdb\u884c\u4e00\u4e9b\u7b80\u5355\u7684\u5b9a\u5236\u3002","sidebar":"\u7ec4\u4ef6"},"checkbox":{"id":"checkbox","title":"\ud83d\udea7 CheckBox","description":"Removed. Use one of the community packages instead."},"clipboard":{"id":"clipboard","title":"\ud83d\udea7 Clipboard","description":"Deprecated. Use one of the community packages instead."},"colors":{"id":"colors","title":"\u989c\u8272","description":"React Native \u4e2d\u7684\u7ec4\u4ef6\u662f\u4f7f\u7528 JavaScript \u8fdb\u884c\u6837\u5f0f\u5316\u7684\u3002\u989c\u8272\u5c5e\u6027\u901a\u5e38\u4e0e Web \u4e0a\u7684 CSS \u5de5\u4f5c\u65b9\u5f0f\u76f8\u5339\u914d\u3002\u6bcf\u4e2a\u5e73\u53f0\u4e0a\u5173\u4e8e\u989c\u8272\u4f7f\u7528\u7684\u4e00\u822c\u6307\u5357\u5982\u4e0b\uff1a","sidebar":"docs"},"communication-android":{"id":"communication-android","title":"\u548c\u539f\u751f\u7aef\u901a\u4fe1","description":"\u901a\u8fc7\u690d\u5165\u539f\u751f\u5e94\u7528\u548c\u539f\u751f UI \u7ec4\u4ef6\u4e24\u7bc7\u6587\u6863\uff0c\u6211\u4eec\u5b66\u4e60\u4e86 React Native \u548c\u539f\u751f\u7ec4\u4ef6\u7684\u4e92\u76f8\u6574\u5408\u3002\u5728\u6574\u5408\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u4f1a\u9700\u8981\u5728\u4e24\u4e2a\u4e16\u754c\u95f4\u4e92\u76f8\u901a\u4fe1\u3002\u6709\u4e9b\u65b9\u6cd5\u5df2\u7ecf\u5728\u5176\u4ed6\u7684\u6307\u5357\u4e2d\u63d0\u5230\u4e86\uff0c\u8fd9\u7bc7\u6587\u7ae0\u603b\u7ed3\u4e86\u6240\u6709\u53ef\u884c\u7684\u6280\u672f\u3002","sidebar":"docs"},"communication-ios":{"id":"communication-ios","title":"\u548c\u539f\u751f\u7aef\u901a\u4fe1","description":"\u901a\u8fc7\u690d\u5165\u539f\u751f\u5e94\u7528\u548c\u539f\u751f UI \u7ec4\u4ef6\u4e24\u7bc7\u6587\u6863\uff0c\u6211\u4eec\u5b66\u4e60\u4e86 React Native \u548c\u539f\u751f\u7ec4\u4ef6\u7684\u4e92\u76f8\u6574\u5408\u3002\u5728\u6574\u5408\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u4f1a\u9700\u8981\u5728\u4e24\u4e2a\u4e16\u754c\u95f4\u4e92\u76f8\u901a\u4fe1\u3002\u6709\u4e9b\u65b9\u6cd5\u5df2\u7ecf\u5728\u5176\u4ed6\u7684\u6307\u5357\u4e2d\u63d0\u5230\u4e86\uff0c\u8fd9\u7bc7\u6587\u7ae0\u603b\u7ed3\u4e86\u6240\u6709\u53ef\u884c\u7684\u6280\u672f\u3002","sidebar":"docs"},"components-and-apis":{"id":"components-and-apis","title":"\u6838\u5fc3\u7ec4\u4ef6\u548cAPI","description":"React Native \u63d0\u4f9b\u4e86\u4e00\u4e9b\u5185\u7f6e\u7684\u6838\u5fc3\u7ec4\u4ef6\u4f9b\u4f60\u4f7f\u7528\u3002\u4f60\u53ef\u4ee5\u5728\u7f51\u7ad9\u7684\u5de6\u4fa7\u770b\u5230\u7ec4\u4ef6\u7684\u5b8c\u6574\u5217\u8868\u3002\u5982\u679c\u4f60\u4e0d\u77e5\u9053\u4ece\u54ea\u770b\u8d77\uff0c\u90a3\u4e48\u53ef\u4ee5\u5148\u770b\u4e00\u4e0b\u4e0b\u9762\u8fd9\u4e2a\u7b80\u5355\u7684\u5206\u7c7b\uff1a","sidebar":"\u7ec4\u4ef6"},"custom-webview-android":{"id":"custom-webview-android","title":"Custom WebView","description":"While the built-in web view has a lot of features, it is not possible to handle every use-case in React Native. You can, however, extend the web view with native code without forking React Native or duplicating all the existing web view code."},"custom-webview-ios":{"id":"custom-webview-ios","title":"Custom WebView","description":"While the built-in web view has a lot of features, it is not possible to handle every use-case in React Native. You can, however, extend the web view with native code without forking React Native or duplicating all the existing web view code."},"datepickerandroid":{"id":"datepickerandroid","title":"\ud83d\udea7 DatePickerAndroid","description":"Deprecated. Use one of the community packages instead."},"datepickerios":{"id":"datepickerios","title":"\ud83d\udea7 DatePickerIOS","description":"Deprecated. Use one of the community packages instead."},"debugging":{"id":"debugging","title":"\u8c03\u8bd5","description":"\u8bbf\u95ee App \u5185\u7684\u5f00\u53d1\u83dc\u5355","sidebar":"docs"},"debugging-native-code":{"id":"debugging-native-code","title":"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801","description":"Projects with Native Code Only","sidebar":"docs"},"debugging-release-builds":{"id":"debugging-release-builds","title":"\u8c03\u8bd5\u53d1\u884c\u7248\u672c","description":"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a","sidebar":"docs"},"devsettings":{"id":"devsettings","title":"DevSettings","description":"DevSettings \u6a21\u5757\u53ef\u4ee5\u5bf9\u5f00\u53d1\u8005\u83dc\u5355\u8fdb\u884c\u4e00\u4e9b\u81ea\u5b9a\u4e49\u3002","sidebar":"api"},"dimensions":{"id":"dimensions","title":"Dimensions","description":"\u672c\u6a21\u5757\u7528\u4e8e\u83b7\u53d6\u8bbe\u5907\u5c4f\u5e55\u7684\u5bbd\u9ad8\u3002","sidebar":"api"},"drawerlayoutandroid":{"id":"drawerlayoutandroid","title":"DrawerLayoutAndroid","description":"\u5c01\u88c5\u4e86 Android \u5e73\u53f0DrawerLayout\u7684 React \u7ec4\u4ef6\u3002\u62bd\u5c49\uff08\u901a\u5e38\u7528\u4e8e\u5bfc\u822a\u5207\u6362\uff09\u662f\u901a\u8fc7renderNavigationView\u65b9\u6cd5\u6e32\u67d3\u7684\uff0c\u5e76\u4e14 DrawerLayoutAndroid \u7684\u76f4\u63a5\u5b50\u89c6\u56fe\u4f1a\u6210\u4e3a\u4e3b\u89c6\u56fe\uff08\u7528\u4e8e\u653e\u7f6e\u5185\u5bb9\uff09\u3002\u5bfc\u822a\u89c6\u56fe\u4e00\u5f00\u59cb\u5728\u5c4f\u5e55\u4e0a\u5e76\u4e0d\u53ef\u89c1\uff0c\u4e0d\u8fc7\u53ef\u4ee5\u4ecedrawerPosition\u6307\u5b9a\u7684\u7a97\u53e3\u4fa7\u9762\u62d6\u62fd\u51fa\u6765\uff0c\u5e76\u4e14\u62bd\u5c49\u7684\u5bbd\u5ea6\u53ef\u4ee5\u4f7f\u7528drawerWidth\u5c5e\u6027\u6765\u6307\u5b9a\u3002","sidebar":"\u7ec4\u4ef6"},"dynamiccolorios":{"id":"dynamiccolorios","title":"DynamicColorIOS","description":"DynamicColorIOS\u51fd\u6570\u662f\u4e13\u95e8\u9488\u5bf9iOS\u5e73\u53f0\u7684\u989c\u8272\u7c7b\u578b\u3002","sidebar":"api"},"easing":{"id":"easing","title":"Easing","description":"Easing\u6a21\u5757\u5b9e\u73b0\u4e86\u5e38\u89c1\u7684\u52a8\u753b\u7f13\u52a8\u51fd\u6570\u3002 \u8fd9\u4e2a\u6a21\u5757\u88abAnimated.timing()\u7528\u4e8e\u5728\u52a8\u753b\u4e2d\u4f20\u8fbe\u771f\u5b9e\u53ef\u4fe1\u7684\u8fd0\u52a8\u3002","sidebar":"api"},"environment-setup":{"id":"environment-setup","title":"\u642d\u5efa\u5f00\u53d1\u73af\u5883","description":"\u6b22\u8fce\u4f7f\u7528 React Native\uff01\u8fd9\u7bc7\u6587\u6863\u4f1a\u5e2e\u52a9\u4f60\u642d\u5efa\u57fa\u672c\u7684 React Native \u5f00\u53d1\u73af\u5883\u3002","sidebar":"docs"},"fabric-native-components-android":{"id":"fabric-native-components-android","title":"Fabric Native Modules: Android","description":"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b Android \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a"},"fabric-native-components-introduction":{"id":"fabric-native-components-introduction","title":"Fabric Native Components Introduction","description":"\u5982\u679c\u4f60\u60f3\u6784\u5efa\u4e00\u4e2a \u65b0\u67b6\u6784 \u7684 React Native \u7ec4\u4ef6\uff0c\u8be5\u7ec4\u4ef6\u53ef\u4ee5\u5305\u88c5\u4e00\u4e2a Host Component\uff0c\u4f8b\u5982 Android \u4e0a\u7684 CheckBox\uff0c\u6216\u8005 iOS \u4e0a\u7684 UIButton\uff0c\u4f60\u5e94\u8be5\u4f7f\u7528 Fabric \u539f\u751f\u7ec4\u4ef6\u3002","sidebar":"docs"},"fabric-native-components-ios":{"id":"fabric-native-components-ios","title":"Fabric Native Components: iOS","description":"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b iOS \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a"},"fabric-renderer":{"id":"fabric-renderer","title":"Fabric \u6e32\u67d3\u5668","description":"Fabric \u662f React Native \u65b0\u67b6\u6784\u7684\u6e32\u67d3\u7cfb\u7edf\uff0c\u662f\u4ece\u8001\u67b6\u6784\u7684\u6e32\u67d3\u7cfb\u7edf\u6f14\u53d8\u800c\u6765\u7684\u3002\u6838\u5fc3\u539f\u7406\u662f\u5728 C++ \u5c42\u7edf\u4e00\u66f4\u591a\u7684\u6e32\u67d3\u903b\u8f91\uff0c\u63d0\u5347\u4e0e\u5bbf\u4e3b\u5e73\u53f0\uff08host platforms\uff09\u4e92\u64cd\u4f5c\u6027\uff0c\u5e76\u4e3a React Native \u89e3\u9501\u66f4\u591a\u80fd\u529b\u3002\u5176\u7814\u53d1\u59cb\u4e8e 2018 \u5e74\u3002\u4ece 2021 \u5e74\u5f00\u59cb\uff0c Facebook App \u4e2d\u7684 React Native \u542f\u7528\u4e86\u65b0\u7684\u6e32\u67d3\u5668\u3002"},"fast-refresh":{"id":"fast-refresh","title":"\u5feb\u901f\u5237\u65b0","description":"\u5feb\u901f\u5237\u65b0\u662f React Native \u4e00\u4e2a\u7279\u6027\uff0c\u5728\u4fee\u6539\u7ec4\u4ef6\u7684\u65f6\u5019\u5feb\u901f\u5237\u65b0\u4f1a\u7ed9\u4f60\u4e00\u4e2a\u5373\u65f6\u7684\u53cd\u9988\u3002\u5feb\u901f\u5237\u65b0\u9ed8\u8ba4\u662f\u5f00\u542f\u7684\uff0c\u53ef\u4ee5\u901a\u8fc7\u8c03\u6574 React Native \u5f00\u53d1\u8005\u83dc\u5355\u91cc\u9762\u7684 \\"Enable Fast Refresh\\" \u6765\u5f00\u542f\u6216\u5173\u95ed\u3002\u5728\u5feb\u901f\u5237\u65b0\u5f00\u542f\u7684\u65f6\u5019\uff0c\u5927\u591a\u6570\u7684\u4fee\u6539\u80fd\u5728\u4e00\u5230\u4e24\u79d2\u4e4b\u5185\u5448\u73b0\u3002","sidebar":"docs"},"flatlist":{"id":"flatlist","title":"FlatList","description":"\u9ad8\u6027\u80fd\u7684\u7b80\u5355\u5217\u8868\u7ec4\u4ef6\uff0c\u652f\u6301\u4e0b\u9762\u8fd9\u4e9b\u5e38\u7528\u7684\u529f\u80fd\uff1a","sidebar":"\u7ec4\u4ef6"},"flexbox":{"id":"flexbox","title":"\u4f7f\u7528 Flexbox \u5e03\u5c40","description":"\u6211\u4eec\u5728 React Native \u4e2d\u4f7f\u7528 flexbox \u89c4\u5219\u6765\u6307\u5b9a\u67d0\u4e2a\u7ec4\u4ef6\u7684\u5b50\u5143\u7d20\u7684\u5e03\u5c40\u3002Flexbox \u53ef\u4ee5\u5728\u4e0d\u540c\u5c4f\u5e55\u5c3a\u5bf8\u4e0a\u63d0\u4f9b\u4e00\u81f4\u7684\u5e03\u5c40\u7ed3\u6784\u3002","sidebar":"docs"},"gesture-responder-system":{"id":"gesture-responder-system","title":"\u624b\u52bf\u54cd\u5e94\u7cfb\u7edf","description":"\u79fb\u52a8\u8bbe\u5907\u4e0a\u7684\u624b\u52bf\u8bc6\u522b\u8981\u6bd4\u5728 web \u4e0a\u590d\u6742\u5f97\u591a\u3002\u7528\u6237\u7684\u4e00\u6b21\u89e6\u6478\u64cd\u4f5c\u7684\u771f\u5b9e\u610f\u56fe\u662f\u4ec0\u4e48\uff0cApp \u8981\u7ecf\u8fc7\u597d\u51e0\u4e2a\u9636\u6bb5\u624d\u80fd\u5224\u65ad\u3002\u6bd4\u5982 App \u9700\u8981\u5224\u65ad\u7528\u6237\u7684\u89e6\u6478\u5230\u5e95\u662f\u5728\u6eda\u52a8\u9875\u9762\uff0c\u8fd8\u662f\u6ed1\u52a8\u4e00\u4e2a widget\uff0c\u6216\u8005\u53ea\u662f\u4e00\u4e2a\u5355\u7eaf\u7684\u70b9\u51fb\u3002\u751a\u81f3\u968f\u7740\u6301\u7eed\u65f6\u95f4\u7684\u4e0d\u540c\uff0c\u8fd9\u4e9b\u64cd\u4f5c\u8fd8\u4f1a\u8f6c\u5316\u3002\u6b64\u5916\uff0c\u8fd8\u6709\u591a\u70b9\u540c\u65f6\u89e6\u63a7\u7684\u60c5\u51b5\u3002","sidebar":"docs"},"getting-started":{"id":"getting-started","title":"\u7b80\u4ecb","description":"\u6b22\u8fce\u5f00\u542f React Native \u7684\u65c5\u7a0b\uff01\u5982\u679c\u4f60\u5728\u627e\u5982\u4f55\u642d\u5efa\u73af\u5883\u7684\u6587\u6863\uff0c\u8bf7\u79fb\u6b65\u642d\u5efa\u5f00\u53d1\u73af\u5883\u3002 \u7ee7\u7eed\u5f80\u4e0b\u9605\u8bfb\u53ef\u4e86\u89e3\u5173\u4e8e\u6587\u6863\u7ed3\u6784\u3001\u539f\u751f\u7ec4\u4ef6\u3001React\u7b49\u76f8\u5173\u7684\u4e00\u4e9b\u4ecb\u7ecd\u3002","sidebar":"docs"},"handling-text-input":{"id":"handling-text-input","title":"\u5904\u7406\u6587\u672c\u8f93\u5165","description":"TextInput\u662f\u4e00\u4e2a\u5141\u8bb8\u7528\u6237\u8f93\u5165\u6587\u672c\u7684\u57fa\u7840\u7ec4\u4ef6\u3002\u5b83\u6709\u4e00\u4e2a\u540d\u4e3aonChangeText\u7684\u5c5e\u6027\uff0c\u6b64\u5c5e\u6027\u63a5\u53d7\u4e00\u4e2a\u51fd\u6570\uff0c\u800c\u6b64\u51fd\u6570\u4f1a\u5728\u6587\u672c\u53d8\u5316\u65f6\u88ab\u8c03\u7528\u3002\u53e6\u5916\u8fd8\u6709\u4e00\u4e2a\u540d\u4e3aonSubmitEditing\u7684\u5c5e\u6027\uff0c\u4f1a\u5728\u6587\u672c\u88ab\u63d0\u4ea4\u540e\uff08\u7528\u6237\u6309\u4e0b\u8f6f\u952e\u76d8\u4e0a\u7684\u63d0\u4ea4\u952e\uff09\u8c03\u7528\u3002","sidebar":"docs"},"handling-touches":{"id":"handling-touches","title":"\u5904\u7406\u89e6\u6478\u4e8b\u4ef6","description":"\u79fb\u52a8\u5e94\u7528\u4e0a\u7684\u7528\u6237\u4ea4\u4e92\u57fa\u672c\u9760\u201c\u6478\u201d\u3002\u5f53\u7136\uff0c\u201c\u6478\u201d\u4e5f\u662f\u6709\u5404\u79cd\u59ff\u52bf\u7684\uff1a\u5728\u4e00\u4e2a\u6309\u94ae\u4e0a\u70b9\u51fb\uff0c\u5728\u4e00\u4e2a\u5217\u8868\u4e0a\u6ed1\u52a8\uff0c\u6216\u662f\u5728\u4e00\u4e2a\u5730\u56fe\u4e0a\u7f29\u653e\u3002React Native \u63d0\u4f9b\u4e86\u53ef\u4ee5\u5904\u7406\u5e38\u89c1\u89e6\u6478\u624b\u52bf\uff08\u4f8b\u5982\u70b9\u51fb\u6216\u6ed1\u52a8\uff09\u7684\u7ec4\u4ef6\uff0c \u4ee5\u53ca\u53ef\u7528\u4e8e\u8bc6\u522b\u66f4\u590d\u6742\u7684\u624b\u52bf\u7684\u5b8c\u6574\u7684\u624b\u52bf\u54cd\u5e94\u7cfb\u7edf\u3002","sidebar":"docs"},"headless-js-android":{"id":"headless-js-android","title":"Headless JS\uff08\u540e\u53f0\u4efb\u52a1\uff09","description":"Headless JS \u662f\u4e00\u79cd\u4f7f\u7528 js \u5728\u540e\u53f0\u6267\u884c\u4efb\u52a1\u7684\u65b9\u6cd5\u3002\u5b83\u53ef\u4ee5\u7528\u6765\u5728\u540e\u53f0\u540c\u6b65\u6570\u636e\u3001\u5904\u7406\u63a8\u9001\u901a\u77e5\u6216\u662f\u64ad\u653e\u97f3\u4e50\u7b49\u7b49\u3002","sidebar":"docs"},"height-and-width":{"id":"height-and-width","title":"\u9ad8\u5ea6\u4e0e\u5bbd\u5ea6","description":"\u7ec4\u4ef6\u7684\u9ad8\u5ea6\u548c\u5bbd\u5ea6\u51b3\u5b9a\u4e86\u5176\u5728\u5c4f\u5e55\u4e0a\u663e\u793a\u7684\u5c3a\u5bf8\u3002","sidebar":"docs"},"hermes":{"id":"hermes","title":"\u4f7f\u7528\u65b0\u7684 Hermes \u5f15\u64ce","description":"Hermes \u662f\u4e13\u95e8\u9488\u5bf9 React Native \u5e94\u7528\u800c\u4f18\u5316\u7684\u5168\u65b0\u5f00\u6e90 JavaScript \u5f15\u64ce\u3002\u5bf9\u4e8e\u5f88\u591a\u5e94\u7528\u6765\u8bf4\uff0c\u542f\u7528 Hermes \u5f15\u64ce\u53ef\u4ee5\u4f18\u5316\u542f\u52a8\u65f6\u95f4\uff0c\u51cf\u5c11\u5185\u5b58\u5360\u7528\u4ee5\u53ca\u7a7a\u95f4\u5360\u7528\u3002\u4ece React Native 0.70 \u7248\u672c\u5f00\u59cb Hermes \u5df2\u7ecf\u9ed8\u8ba4\u542f\u7528\uff0c\u65e0\u9700\u5f00\u53d1\u8005\u518d\u505a\u4efb\u4f55\u914d\u7f6e\u3002","sidebar":"docs"},"image":{"id":"image","title":"Image","description":"\u7528\u4e8e\u663e\u793a\u591a\u79cd\u4e0d\u540c\u7c7b\u578b\u56fe\u7247\u7684 React \u7ec4\u4ef6\uff0c\u5305\u62ec\u7f51\u7edc\u56fe\u7247\u3001\u9759\u6001\u8d44\u6e90\u3001\u4e34\u65f6\u7684\u672c\u5730\u56fe\u7247\u3001\u4ee5\u53ca\u672c\u5730\u78c1\u76d8\u4e0a\u7684\u56fe\u7247\uff08\u5982\u76f8\u518c\uff09\u7b49\u3002","sidebar":"\u7ec4\u4ef6"},"image-style-props":{"id":"image-style-props","title":"\u56fe\u7247\u6837\u5f0f\u5c5e\u6027","description":"\u793a\u4f8b","sidebar":"\u7ec4\u4ef6"},"imagebackground":{"id":"imagebackground","title":"ImageBackground","description":"\u5bf9\u4e8e\u719f\u6089 Web \u5f00\u53d1\u7684\u5f00\u53d1\u4eba\u5458\u6765\u8bf4\uff0cbackground-image\u662f\u4e00\u4e2a\u5e38\u89c1\u7684\u529f\u80fd\u8bf7\u6c42\u3002\u4e3a\u4e86\u5904\u7406\u8fd9\u79cd\u60c5\u51b5\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528`\u7ec4\u4ef6\uff0c\u5b83\u5177\u6709\u4e0e`\u76f8\u540c\u7684\u5c5e\u6027\uff0c\u5e76\u4e14\u53ef\u4ee5\u6dfb\u52a0\u4efb\u4f55\u5b50\u5143\u7d20\u4ee5\u8986\u76d6\u5728\u5176\u4e0a\u9762\u3002","sidebar":"\u7ec4\u4ef6"},"imagepickerios":{"id":"imagepickerios","title":"\ud83d\udea7 ImagePickerIOS","description":"Deprecated. Use one of the community packages instead."},"images":{"id":"images","title":"\u56fe\u7247","description":"\u9759\u6001\u56fe\u7247\u8d44\u6e90","sidebar":"docs"},"improvingux":{"id":"improvingux","title":"\u6539\u8fdb\u7528\u6237\u4f53\u9a8c","description":"\u914d\u7f6e\u6587\u672c\u8f93\u5165"},"inputaccessoryview":{"id":"inputaccessoryview","title":"InputAccessoryView","description":"\u4e00\u4e2a\u53ef\u4ee5\u5728iOS\u4e0a\u81ea\u5b9a\u4e49\u952e\u76d8\u8f93\u5165\u8f85\u52a9\u89c6\u56fe\u7684\u7ec4\u4ef6\u3002\u5f53TextInput\u83b7\u5f97\u7126\u70b9\u65f6\uff0c\u8f93\u5165\u8f85\u52a9\u89c6\u56fe\u663e\u793a\u5728\u952e\u76d8\u4e0a\u65b9\u3002\u8be5\u7ec4\u4ef6\u53ef\u7528\u4e8e\u521b\u5efa\u81ea\u5b9a\u4e49\u5de5\u5177\u680f\u3002","sidebar":"\u7ec4\u4ef6"},"integration-with-android-fragment":{"id":"integration-with-android-fragment","title":"\u96c6\u6210\u5230 Android Fragment","description":"\u4e0e\u73b0\u6709\u5e94\u7528\u7a0b\u5e8f\u96c6\u6210\u6307\u5357\u4e2d\u8be6\u7ec6\u4ecb\u7ecd\u4e86\u5982\u4f55\u5c06\u5168\u5c4f React Native \u5e94\u7528\u7a0b\u5e8f\u4f5c\u4e3a Activity \u96c6\u6210\u5230\u73b0\u6709 Android \u5e94\u7528\u7a0b\u5e8f\u4e2d\u3002\u8981\u5728\u73b0\u6709\u5e94\u7528\u7a0b\u5e8f\u7684 Fragments \u4e2d\u4f7f\u7528 React Native \u7ec4\u4ef6\uff0c\u9700\u8981\u8fdb\u884c\u4e00\u4e9b\u989d\u5916\u7684\u8bbe\u7f6e\u3002\u8fd9\u6837\u505a\u7684\u597d\u5904\u662f\u5b83\u5141\u8bb8\u539f\u751f\u5e94\u7528\u7a0b\u5e8f\u5c06 React Native \u7ec4\u4ef6\u4e0e Activity \u4e2d\u7684\u539f\u751f Fragments \u96c6\u6210\u5728\u4e00\u8d77\u3002","sidebar":"docs"},"integration-with-existing-apps":{"id":"integration-with-existing-apps","title":"\u96c6\u6210\u5230\u73b0\u6709\u539f\u751f\u5e94\u7528","description":"\u5982\u679c\u4f60\u6b63\u51c6\u5907\u4ece\u5934\u5f00\u59cb\u5236\u4f5c\u4e00\u4e2a\u65b0\u7684\u5e94\u7528\uff0c\u90a3\u4e48 React Native \u4f1a\u662f\u4e2a\u975e\u5e38\u597d\u7684\u9009\u62e9\u3002\u4f46\u5982\u679c\u4f60\u53ea\u60f3\u7ed9\u73b0\u6709\u7684\u539f\u751f\u5e94\u7528\u4e2d\u6dfb\u52a0\u4e00\u4e24\u4e2a\u89c6\u56fe\u6216\u662f\u4e1a\u52a1\u6d41\u7a0b\uff0cReact Native \u4e5f\u540c\u6837\u4e0d\u5728\u8bdd\u4e0b\u3002\u53ea\u9700\u7b80\u5355\u51e0\u6b65\uff0c\u4f60\u5c31\u53ef\u4ee5\u7ed9\u539f\u6709\u5e94\u7528\u52a0\u4e0a\u65b0\u7684\u57fa\u4e8e React Native \u7684\u7279\u6027\u3001\u753b\u9762\u548c\u89c6\u56fe\u7b49\u3002","sidebar":"docs"},"interactionmanager":{"id":"interactionmanager","title":"InteractionManager","description":"Interactionmanager \u53ef\u4ee5\u5c06\u4e00\u4e9b\u8017\u65f6\u8f83\u957f\u7684\u5de5\u4f5c\u5b89\u6392\u5230\u6240\u6709\u4e92\u52a8\u6216\u52a8\u753b\u5b8c\u6210\u4e4b\u540e\u518d\u8fdb\u884c\u3002\u8fd9\u6837\u53ef\u4ee5\u4fdd\u8bc1 JavaScript \u52a8\u753b\u7684\u6d41\u7545\u8fd0\u884c\u3002","sidebar":"api"},"intro-react":{"id":"intro-react","title":"React \u57fa\u7840","description":"\u8981\u6df1\u5165\u7406\u89e3 React Native\uff0c\u9700\u8981\u624e\u5b9e\u7684React \u57fa\u7840\u77e5\u8bc6\u3002\u8fd9\u7bc7\u5c0f\u6559\u7a0b\u53ef\u4ee5\u5e2e\u52a9\u4f60\u5165\u95e8\u6216\u8005\u6e29\u4e60\u76f8\u5173\u77e5\u8bc6\u3002","sidebar":"docs"},"intro-react-native-components":{"id":"intro-react-native-components","title":"\u6838\u5fc3\u7ec4\u4ef6\u4e0e\u539f\u751f\u7ec4\u4ef6","description":"React Native \u4f7f\u7528\u5b8c\u5168\u539f\u751f\u7684\u7ec4\u4ef6\u6765\u6784\u5efa\u5e94\u7528\u754c\u9762\u3002\u5c24\u5176\u65b9\u4fbf\u7684\u662f\u5b83\u5df2\u7ecf\u5185\u7f6e\u4e86\u5927\u91cf\u76f4\u63a5\u4e0a\u624b\u53ef\u7528\u7684\u6838\u5fc3\u7ec4\u4ef6\u3002","sidebar":"docs"},"javascript-environment":{"id":"javascript-environment","title":"JavaScript \u73af\u5883","description":"JavaScript \u8fd0\u884c\u65f6\u73af\u5883","sidebar":"docs"},"keyboard":{"id":"keyboard","title":"Keyboard","description":"Keyboard\u6a21\u5757\u7528\u6765\u63a7\u5236\u952e\u76d8\u76f8\u5173\u7684\u4e8b\u4ef6\u3002","sidebar":"api"},"keyboardavoidingview":{"id":"keyboardavoidingview","title":"KeyboardAvoidingView","description":"\u672c\u7ec4\u4ef6\u7528\u4e8e\u89e3\u51b3\u4e00\u4e2a\u5e38\u89c1\u7684\u5c34\u5c2c\u95ee\u9898\uff1a\u624b\u673a\u4e0a\u5f39\u51fa\u7684\u952e\u76d8\u5e38\u5e38\u4f1a\u6321\u4f4f\u5f53\u524d\u7684\u89c6\u56fe\u3002\u672c\u7ec4\u4ef6\u53ef\u4ee5\u81ea\u52a8\u6839\u636e\u952e\u76d8\u7684\u9ad8\u5ea6\uff0c\u8c03\u6574\u81ea\u8eab\u7684 height \u6216\u5e95\u90e8\u7684 padding\uff0c\u4ee5\u907f\u514d\u88ab\u906e\u6321\u3002","sidebar":"\u7ec4\u4ef6"},"layout-props":{"id":"layout-props","title":"\u5e03\u5c40\u5c5e\u6027","description":"\u66f4\u591a\u5173\u4e8e\u8fd9\u4e9b\u5c5e\u6027\u7684\u8be6\u7ec6\u793a\u4f8b\u53ef\u4ee5\u5728Flexbox \u5e03\u5c40\u9875\u9762\u4e0a\u627e\u5230\u3002","sidebar":"\u7ec4\u4ef6"},"layoutanimation":{"id":"layoutanimation","title":"LayoutAnimation","description":"\u5f53\u5e03\u5c40\u53d8\u5316\u65f6\uff0c\u81ea\u52a8\u5c06\u89c6\u56fe\u8fd0\u52a8\u5230\u5b83\u4eec\u65b0\u7684\u4f4d\u7f6e\u4e0a\u3002","sidebar":"api"},"layoutevent":{"id":"layoutevent","title":"\u5e03\u5c40\u4e8b\u4ef6\u5bf9\u8c61","description":"LayoutEvent object is returned in the callback as a result of component layout change, for example onLayout in View component.","sidebar":"\u7ec4\u4ef6"},"legacy/direct-manipulation":{"id":"legacy/direct-manipulation","title":"\u76f4\u63a5\u64cd\u4f5c","description":"\u6709\u65f6\u5019\u6211\u4eec\u9700\u8981\u76f4\u63a5\u6539\u52a8\u7ec4\u4ef6\u5e76\u89e6\u53d1\u5c40\u90e8\u7684\u5237\u65b0\uff0c\u4f46\u4e0d\u4f7f\u7528 state \u6216\u662f props\u3002\u8b6c\u5982\u5728\u6d4f\u89c8\u5668\u4e2d\u4f7f\u7528 React \u5e93\uff0c\u6709\u65f6\u5019\u4f1a\u9700\u8981\u76f4\u63a5\u4fee\u6539\u4e00\u4e2a DOM \u8282\u70b9\uff0c\u800c\u5728\u624b\u673a App \u4e2d\u64cd\u4f5c View \u65f6\u4e5f\u4f1a\u78b0\u5230\u540c\u6837\u7684\u60c5\u51b5\u3002\u5728 React Native \u4e2d\uff0csetNativeProps\u5c31\u662f\u7b49\u4ef7\u4e8e\u76f4\u63a5\u64cd\u4f5c DOM \u8282\u70b9\u7684\u65b9\u6cd5\u3002","sidebar":"docs"},"legacy/local-library-setup":{"id":"legacy/local-library-setup","title":"Local libraries setup","description":"A local library is a library containing views or modules that\'s local to your app and not published to a registry. This is different from the traditional setup for view and modules in the sense that a local library is decoupled from your app\'s native code.","sidebar":"docs"},"legacy/native-components-android":{"id":"legacy/native-components-android","title":"Android \u539f\u751fUI\u7ec4\u4ef6","description":"\u5728\u5982\u4eca\u7684 App \u4e2d\uff0c\u5df2\u7ecf\u6709\u6210\u5343\u4e0a\u4e07\u7684\u539f\u751f UI \u90e8\u4ef6\u4e86\u2014\u2014\u5176\u4e2d\u7684\u4e00\u4e9b\u662f\u5e73\u53f0\u7684\u4e00\u90e8\u5206\uff0c\u53e6\u4e00\u4e9b\u53ef\u80fd\u6765\u81ea\u4e8e\u4e00\u4e9b\u7b2c\u4e09\u65b9\u5e93\uff0c\u800c\u4e14\u53ef\u80fd\u4f60\u81ea\u5df1\u8fd8\u6536\u85cf\u4e86\u5f88\u591a\u3002React Native \u5df2\u7ecf\u5c01\u88c5\u4e86\u5927\u90e8\u5206\u6700\u5e38\u89c1\u7684\u7ec4\u4ef6\uff0c\u8b6c\u5982ScrollView\u548cTextInput\uff0c\u4f46\u4e0d\u53ef\u80fd\u5c01\u88c5\u5168\u90e8\u7ec4\u4ef6\u3002\u800c\u4e14\uff0c\u8bf4\u4e0d\u5b9a\u4f60\u66fe\u7ecf\u4e3a\u81ea\u5df1\u4ee5\u524d\u7684 App \u8fd8\u5c01\u88c5\u8fc7\u4e00\u4e9b\u7ec4\u4ef6\uff0cReact Native \u80af\u5b9a\u6ca1\u6cd5\u5305\u542b\u5b83\u4eec\u3002\u5e78\u8fd0\u7684\u662f\uff0c\u5728 React Naitve \u5e94\u7528\u7a0b\u5e8f\u4e2d\u5c01\u88c5\u548c\u690d\u5165\u5df2\u6709\u7684\u7ec4\u4ef6\u975e\u5e38\u7b80\u5355\u3002","sidebar":"docs"},"legacy/native-components-ios":{"id":"legacy/native-components-ios","title":"iOS \u539f\u751fUI\u7ec4\u4ef6","description":"\u5728\u5982\u4eca\u7684 App \u4e2d\uff0c\u5df2\u7ecf\u6709\u6210\u5343\u4e0a\u4e07\u7684\u539f\u751f UI \u90e8\u4ef6\u4e86\u2014\u2014\u5176\u4e2d\u7684\u4e00\u4e9b\u662f\u5e73\u53f0\u7684\u4e00\u90e8\u5206\uff0c\u53e6\u4e00\u4e9b\u53ef\u80fd\u6765\u81ea\u4e8e\u4e00\u4e9b\u7b2c\u4e09\u65b9\u5e93\uff0c\u800c\u4e14\u53ef\u80fd\u4f60\u81ea\u5df1\u8fd8\u6536\u85cf\u4e86\u5f88\u591a\u3002React Native \u5df2\u7ecf\u5c01\u88c5\u4e86\u5927\u90e8\u5206\u6700\u5e38\u89c1\u7684\u7ec4\u4ef6\uff0c\u8b6c\u5982ScrollView\u548cTextInput\uff0c\u4f46\u4e0d\u53ef\u80fd\u5c01\u88c5\u5168\u90e8\u7ec4\u4ef6\u3002\u800c\u4e14\uff0c\u8bf4\u4e0d\u5b9a\u4f60\u66fe\u7ecf\u4e3a\u81ea\u5df1\u4ee5\u524d\u7684 App \u8fd8\u5c01\u88c5\u8fc7\u4e00\u4e9b\u7ec4\u4ef6\uff0cReact Native \u80af\u5b9a\u6ca1\u6cd5\u5305\u542b\u5b83\u4eec\u3002\u5e78\u8fd0\u7684\u662f\uff0c\u5728 React Naitve \u5e94\u7528\u7a0b\u5e8f\u4e2d\u5c01\u88c5\u548c\u690d\u5165\u5df2\u6709\u7684\u7ec4\u4ef6\u975e\u5e38\u7b80\u5355\u3002","sidebar":"docs"},"legacy/native-modules-android":{"id":"legacy/native-modules-android","title":"Android \u539f\u751f\u6a21\u5757","description":"\u6b22\u8fce\u6765\u5230 Android \u7684\u539f\u751f\u6a21\u5757\u3002\u8bf7\u5148\u9605\u8bfb \u539f\u751f\u6a21\u5757\u7b80\u4ecb \u4ee5\u4e86\u89e3\u539f\u751f\u6a21\u5757\u7684\u57fa\u672c\u6982\u5ff5\u3002","sidebar":"docs"},"legacy/native-modules-intro":{"id":"legacy/native-modules-intro","title":"\u539f\u751f\u6a21\u5757\u7b80\u4ecb","description":"\u6709\u65f6\u5019 App \u9700\u8981\u8bbf\u95ee\u5e73\u53f0 API\uff0c\u4f46 React Native \u53ef\u80fd\u8fd8\u6ca1\u6709\u76f8\u5e94\u7684\u6a21\u5757\u5305\u88c5\uff1b\u6216\u8005\u4f60\u9700\u8981\u590d\u7528\u4e00\u4e9b Java \u4ee3\u7801\uff0c\u800c\u4e0d\u662f\u7528 Javascript \u91cd\u65b0\u5b9e\u73b0\u4e00\u904d\uff1b\u53c8\u6216\u8005\u4f60\u9700\u8981\u5b9e\u73b0\u67d0\u4e9b\u9ad8\u6027\u80fd\u7684\u3001\u591a\u7ebf\u7a0b\u7684\u4ee3\u7801\uff0c\u8b6c\u5982\u56fe\u7247\u5904\u7406\u3001\u6570\u636e\u5e93\u3001\u6216\u8005\u5404\u79cd\u9ad8\u7ea7\u6269\u5c55\u7b49\u7b49\u3002","sidebar":"docs"},"legacy/native-modules-ios":{"id":"legacy/native-modules-ios","title":"iOS \u539f\u751f\u6a21\u5757","description":"\u6709\u65f6\u5019 App \u9700\u8981\u8bbf\u95ee\u5e73\u53f0 API\uff0c\u4f46 React Native \u53ef\u80fd\u8fd8\u6ca1\u6709\u76f8\u5e94\u7684\u6a21\u5757\u5c01\u88c5\uff1b\u6216\u8005\u4f60\u9700\u8981\u590d\u7528 Objective-C\u3001Swift \u6216 C++\u4ee3\u7801\uff0c\u800c\u4e0d\u662f\u7528 JavaScript \u91cd\u65b0\u5b9e\u73b0\u4e00\u904d\uff1b\u53c8\u6216\u8005\u4f60\u9700\u8981\u5b9e\u73b0\u67d0\u4e9b\u9ad8\u6027\u80fd\u3001\u591a\u7ebf\u7a0b\u7684\u4ee3\u7801\uff0c\u8b6c\u5982\u56fe\u7247\u5904\u7406\u3001\u6570\u636e\u5e93\u3001\u6216\u8005\u5404\u79cd\u9ad8\u7ea7\u6269\u5c55\u7b49\u7b49\u3002","sidebar":"docs"},"legacy/native-modules-setup":{"id":"legacy/native-modules-setup","title":"Native Modules NPM Package Setup","description":"Native modules are usually distributed as npm packages, except that on top of the usual JavaScript they will include some native code per platform. To understand more about npm packages you may find this guide useful.","sidebar":"docs"},"libraries":{"id":"libraries","title":"\u4f7f\u7528\u7b2c\u4e09\u65b9\u5e93","description":"This guide introduces React Native developers to finding, installing, and using third-party libraries in their apps.","sidebar":"docs"},"linking":{"id":"linking","title":"Linking","description":"Linking\u63d0\u4f9b\u4e86\u4e00\u4e2a\u901a\u7528\u7684\u63a5\u53e3\u6765\u4e0e\u4f20\u5165\u548c\u4f20\u51fa\u7684 App \u94fe\u63a5\u8fdb\u884c\u4ea4\u4e92\u3002","sidebar":"api"},"linking-libraries-ios":{"id":"linking-libraries-ios","title":"\u94fe\u63a5\u539f\u751f\u5e93","description":"\u5e76\u4e0d\u662f\u6240\u6709\u7684 APP \u90fd\u9700\u8981\u4f7f\u7528\u5168\u90e8\u7684\u539f\u751f\u529f\u80fd\uff0c\u5305\u542b\u652f\u6301\u5168\u90e8\u7279\u6027\u7684\u4ee3\u7801\u4f1a\u589e\u5927\u5e94\u7528\u7684\u4f53\u79ef\u3002\u4f46\u6211\u4eec\u4ecd\u7136\u5e0c\u671b\u80fd\u8ba9\u4f60\u7b80\u5355\u5730\u6839\u636e\u81ea\u5df1\u7684\u9700\u6c42\u6dfb\u52a0\u9700\u8981\u7684\u7279\u6027\u3002","sidebar":"docs"},"metro":{"id":"metro","title":"Metro","description":"React Native \u4f7f\u7528Metro\u6784\u5efa JavaScript \u4ee3\u7801\u548c\u8d44\u6e90\u3002","sidebar":"docs"},"modal":{"id":"modal","title":"Modal","description":"Modal \u7ec4\u4ef6\u662f\u4e00\u79cd\u7b80\u5355\u7684\u8986\u76d6\u5728\u5176\u4ed6\u89c6\u56fe\u4e4b\u4e0a\u663e\u793a\u5185\u5bb9\u7684\u65b9\u5f0f\u3002","sidebar":"\u7ec4\u4ef6"},"more-resources":{"id":"more-resources","title":"\u5176\u4ed6\u53c2\u8003\u8d44\u6e90","description":"\u5982\u679c\u4f60\u8010\u5fc3\u7684\u8bfb\u5b8c\u5e76\u7406\u89e3\u4e86\u672c\u7f51\u7ad9\u4e0a\u7684\u6240\u6709\u6587\u6863\uff0c\u90a3\u4e48\u4f60\u5e94\u8be5\u5df2\u7ecf\u53ef\u4ee5\u7f16\u5199\u4e00\u4e2a\u50cf\u6837\u7684 React Native \u5e94\u7528\u4e86\u3002\u4f46\u662f React Native \u5e76\u4e0d\u5168\u662f\u67d0\u4e00\u5bb6\u516c\u53f8\u7684\u4f5c\u54c1\u2014\u2014\u5b83\u6c47\u805a\u4e86\u6210\u5343\u4e0a\u4e07\u5f00\u6e90\u793e\u533a\u5f00\u53d1\u8005\u7684\u667a\u6167\u7ed3\u6676\u3002\u5982\u679c\u4f60\u60f3\u6df1\u5165\u7814\u7a76 React Native\uff0c\u90a3\u4e48\u5efa\u8bae\u4e0d\u8981\u9519\u8fc7\u4e0b\u9762\u8fd9\u4e9b\u53c2\u8003\u8d44\u6e90\u3002","sidebar":"docs"},"native-platform":{"id":"native-platform","title":"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b","description":"\u4f60\u7684\u5e94\u7528\u53ef\u80fd\u9700\u8981\u8bbf\u95ee React Native \u6216\u793e\u533a\u7ef4\u62a4\u7684\u6570\u767e\u4e2a \u7b2c\u4e09\u65b9\u5e93 \u4e2d\u672a\u76f4\u63a5\u63d0\u4f9b\u7684\u5e73\u53f0\u529f\u80fd\u3002\u4e5f\u8bb8\u4f60\u60f3\u8981\u91cd\u7528\u4e00\u4e9b\u73b0\u6709\u7684 Objective-C\u3001Swift\u3001Java\u3001Kotlin \u6216 C++ \u4ee3\u7801\u3002\u65e0\u8bba\u4f60\u7684\u539f\u56e0\u662f\u4ec0\u4e48\uff0cReact Native \u90fd\u63d0\u4f9b\u4e86\u4e00\u7ec4\u5f3a\u5927\u7684 API \u6765\u8fde\u63a5\u4f60\u7684\u539f\u751f\u4ee3\u7801\u548c JavaScript \u5e94\u7528\u4ee3\u7801\u3002","sidebar":"docs"},"navigation":{"id":"navigation","title":"\u4f7f\u7528\u5bfc\u822a\u5668\u8df3\u8f6c\u9875\u9762","description":"\u79fb\u52a8\u5e94\u7528\u57fa\u672c\u4e0d\u4f1a\u53ea\u7531\u4e00\u4e2a\u9875\u9762\u7ec4\u6210\u3002\u7ba1\u7406\u591a\u4e2a\u9875\u9762\u7684\u5448\u73b0\u3001\u8df3\u8f6c\u7684\u7ec4\u4ef6\u5c31\u662f\u6211\u4eec\u901a\u5e38\u6240\u8bf4\u7684\u5bfc\u822a\u5668\uff08navigator\uff09\u3002","sidebar":"docs"},"netinfo":{"id":"netinfo","title":"NetInfo","description":"\u5df2\u8fc7\u65f6\u3002 Use react-native-community/react-native-netinfo instead."},"network":{"id":"network","title":"\u8bbf\u95ee\u7f51\u7edc","description":"\u5f88\u591a\u79fb\u52a8\u5e94\u7528\u90fd\u9700\u8981\u4ece\u8fdc\u7a0b\u5730\u5740\u4e2d\u83b7\u53d6\u6570\u636e\u6216\u8d44\u6e90\u3002\u4f60\u53ef\u80fd\u9700\u8981\u7ed9\u67d0\u4e2a REST API \u53d1\u8d77 POST \u8bf7\u6c42\u4ee5\u63d0\u4ea4\u7528\u6237\u6570\u636e\uff0c\u53c8\u6216\u8005\u53ef\u80fd\u4ec5\u4ec5\u9700\u8981\u4ece\u67d0\u4e2a\u670d\u52a1\u5668\u4e0a\u83b7\u53d6\u4e00\u4e9b\u9759\u6001\u5185\u5bb9\u2014\u2014\u4ee5\u4e0b\u5c31\u662f\u4f60\u4f1a\u7528\u5230\u7684\u4e1c\u897f\u3002\u65b0\u624b\u53ef\u4ee5\u5bf9\u7167\u8fd9\u4e2a\u7b80\u77ed\u7684\u89c6\u9891\u6559\u7a0b\u52a0\u6df1\u7406\u89e3\u3002","sidebar":"docs"},"new-architecture-app-intro":{"id":"new-architecture-app-intro","title":"\u5728\u5e94\u7528\u4e2d\u542f\u7528\u7684\u9884\u5907\u5de5\u4f5c","description":"\u5728\u542f\u7528\u65b0\u67b6\u6784\u4e4b\u524d\uff0c\u5e94\u5148\u6ee1\u8db3\u4e00\u4e9b\u5148\u51b3\u6761\u4ef6\u3002"},"new-architecture-app-modules-ios":{"id":"new-architecture-app-modules-ios","title":"\u5728 iOS \u4e0a\u542f\u7528 TurboModule","description":"Make sure your application meets all the prerequisites."},"new-architecture-app-renderer-android":{"id":"new-architecture-app-renderer-android","title":"\u5728 Android \u4e0a\u542f\u7528 Fabric","description":"Make sure your application meets all the prerequisites."},"new-architecture-app-renderer-ios":{"id":"new-architecture-app-renderer-ios","title":"\u5728 iOS \u4e0a\u542f\u7528 Fabric","description":"This section will go over how to enable the new renderer in your app. Make sure your application meets all the prerequisites."},"new-architecture-intro":{"id":"new-architecture-intro","title":"\u8fc1\u79fb\u5230\u65b0\u67b6\u6784","description":"\u6b64\u8fc1\u79fb\u6307\u5357\u65e8\u5728\u4e3aReact Native\u7684\u5e93\u4f5c\u8005\u548c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u8005\u63d0\u4f9b\u3002\u5b83\u6982\u8ff0\u4e86\u60a8\u9700\u8981\u9075\u5faa\u7684\u6b65\u9aa4\uff0c\u4ee5\u5728\u60a8\u7684Android\u548ciOS\u5e93\u548c\u5e94\u7528\u4e2d\u4f7f\u7528\u7531\u65b0\u7684NativeModule\u7cfb\u7edf\uff08TurboModule\uff09\u548c\u65b0\u7684\u6e32\u67d3\u5668\uff08Fabric\uff09\u7ec4\u6210\u7684\u65b0\u67b6\u6784\u3002"},"new-architecture-library-android":{"id":"new-architecture-library-android","title":"\u5728 Android \u5e93\u4e2d\u542f\u7528","description":"\u4e00\u65e6\u60a8\u5728\u5148\u51b3\u6761\u4ef6\u4e2d\u5b9a\u4e49\u4e86\u672c\u673a\u6a21\u5757\u7684 JavaScript \u89c4\u8303\uff0c\u8bbe\u7f6e\u4e86 CodeGen \u914d\u7f6e\uff0c\u5e76\u9075\u5faa\u4e86 Android/Gradle \u8bbe\u7f6e\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u5c06\u60a8\u7684\u5e93\u8fc1\u79fb\u5230\u65b0\u67b6\u6784\u3002\u4ee5\u4e0b\u662f\u8fc1\u79fb\u6240\u9700\u7684\u6b65\u9aa4\u3002"},"new-architecture-library-intro":{"id":"new-architecture-library-intro","title":"\u5728\u5e93\u4e2d\u542f\u7528\u7684\u9884\u5907\u5de5\u4f5c","description":"The following steps will help ensure your modules and components are ready for the New Architecture."},"new-architecture-library-ios":{"id":"new-architecture-library-ios","title":"\u5728 iOS \u5e93\u4e2d\u542f\u7528","description":"You have defined the JavaScript specs for your native modules as part of the prerequisites, and you are now ready to migrate your library to the New Architecture. Here are the steps you can follow to accomplish this."},"new-architecture-troubleshooting":{"id":"new-architecture-troubleshooting","title":"\u5e38\u89c1\u95ee\u9898","description":"\u672c\u9875\u9762\u4f1a\u8bb0\u5f55\u4e00\u4e9b\u8fc1\u79fb\u5230\u65b0\u67b6\u6784\u65f6\u53ef\u80fd\u9047\u5230\u7684\u5e38\u89c1\u95ee\u9898\u7684\u89e3\u51b3\u65b9\u6848\u3002"},"new-architecture-turbo-modules":{"id":"new-architecture-turbo-modules","title":"\u65b0\u67b6\u6784\u7684\u539f\u751f\u6a21\u5757\uff08Turbo Module\uff09","description":"If you\'ve worked with React Native, you may be familiar with the concept of Native Modules, which allow JavaScript and platform-native code to communicate over the React Native \\"bridge\\", which handles cross-platform serialization via JSON."},"optimizing-flatlist-configuration":{"id":"optimizing-flatlist-configuration","title":"\u5217\u8868\u914d\u7f6e\u4f18\u5316","description":"\u672f\u8bed\u5b9a\u4e49","sidebar":"docs"},"optimizing-javascript-loading":{"id":"optimizing-javascript-loading","title":"Optimizing JavaScript loading","description":"\u89e3\u6790\u548c\u8fd0\u884c JavaScript \u4ee3\u7801\u9700\u8981\u5185\u5b58\u548c\u65f6\u95f4\u3002\u56e0\u6b64\uff0c\u968f\u7740\u4f60\u7684\u5e94\u7528\u7a0b\u5e8f\u589e\u957f\uff0c\u901a\u5e38\u5c06\u4ee3\u7801\u52a0\u8f7d\u5ef6\u8fdf\u5230\u9996\u6b21\u9700\u8981\u65f6\u662f\u6709\u7528\u7684\u3002React Native \u81ea\u5e26\u4e00\u4e9b\u9ed8\u8ba4\u5f00\u542f\u7684\u6807\u51c6\u4f18\u5316\uff0c\u5e76\u4e14\u4f60\u53ef\u4ee5\u5728\u81ea\u5df1\u7684\u4ee3\u7801\u4e2d\u91c7\u7528\u4e00\u4e9b\u6280\u672f\u6765\u5e2e\u52a9 React \u66f4\u6709\u6548\u5730\u52a0\u8f7d\u4f60\u7684\u5e94\u7528\u7a0b\u5e8f\u3002\u8fd8\u6709\u4e00\u4e9b\u9002\u5408\u975e\u5e38\u5927\u5e94\u7528\u7a0b\u5e8f\u7684\u9ad8\u7ea7\u81ea\u52a8\u4f18\u5316\uff08\u5b83\u4eec\u4e5f\u6709\u81ea\u5df1\u7684\u6743\u8861\uff09\u3002","sidebar":"docs"},"other-debugging-methods":{"id":"other-debugging-methods","title":"\u5176\u4ed6\u8c03\u8bd5\u65b9\u6cd5","description":"\u6b64\u9875\u9762\u4ecb\u7ecd\u4e86\u9664 \u6253\u5f00\u8c03\u8bd5\u5668 \u4e2d\u63cf\u8ff0\u7684\u65b9\u6cd5\u4e4b\u5916\u7684\u5176\u4ed6 JavaScript \u8c03\u8bd5\u65b9\u6cd5\u3002\u5982\u679c\u4f60\u6b63\u5728\u4f7f\u7528\u65b0\u521b\u5efa\u7684 React Native \u6216 Expo \u5e94\u7528\uff0c\u6211\u4eec\u5efa\u8bae\u4ece\u90a3\u91cc\u5f00\u59cb\u3002","sidebar":"docs"},"out-of-tree-platforms":{"id":"out-of-tree-platforms","title":"\u591a\u5e73\u53f0\u652f\u6301","description":"React Native\u4e0d\u4ec5\u9002\u7528\u4e8e Android \u548c iOS - \u8fd8\u6709\u793e\u533a\u652f\u6301\u7684\u9879\u76ee\u5c06\u5176\u5e94\u7528\u4e8e\u5176\u4ed6\u5e73\u53f0\uff0c\u4f8b\u5982\uff1a","sidebar":"docs"},"panresponder":{"id":"panresponder","title":"PanResponder","description":"PanResponder\u7c7b\u53ef\u4ee5\u5c06\u591a\u70b9\u89e6\u6478\u64cd\u4f5c\u534f\u8c03\u6210\u4e00\u4e2a\u624b\u52bf\u3002\u5b83\u4f7f\u5f97\u4e00\u4e2a\u5355\u70b9\u89e6\u6478\u53ef\u4ee5\u63a5\u53d7\u66f4\u591a\u7684\u89e6\u6478\u64cd\u4f5c\uff0c\u4e5f\u53ef\u4ee5\u7528\u4e8e\u8bc6\u522b\u7b80\u5355\u7684\u591a\u70b9\u89e6\u6478\u624b\u52bf\u3002","sidebar":"api"},"performance":{"id":"performance","title":"\u6027\u80fd\u7efc\u8ff0","description":"\u4f7f\u7528 React Native \u66ff\u4ee3\u57fa\u4e8e WebView \u7684\u6846\u67b6\u6765\u5f00\u53d1 App \u7684\u4e00\u4e2a\u5f3a\u6709\u529b\u7684\u7406\u7531\uff0c\u5c31\u662f\u4e3a\u4e86\u4f7f App \u53ef\u4ee5\u8fbe\u5230\u6bcf\u79d2 60 \u5e27\uff08\u8db3\u591f\u6d41\u7545\uff09\uff0c\u5e76\u4e14\u80fd\u6709\u7c7b\u4f3c\u539f\u751f App \u7684\u5916\u89c2\u548c\u624b\u611f\u3002\u56e0\u6b64\u6211\u4eec\u4e5f\u5c3d\u53ef\u80fd\u5730\u4f18\u5316 React Native \u53bb\u5b9e\u73b0\u8fd9\u4e00\u76ee\u6807\uff0c\u4f7f\u5f00\u53d1\u8005\u80fd\u96c6\u4e2d\u7cbe\u529b\u5904\u7406 App \u7684\u4e1a\u52a1\u903b\u8f91\uff0c\u800c\u4e0d\u7528\u8d39\u5fc3\u8003\u8651\u6027\u80fd\u3002\u4f46\u662f\uff0c\u603b\u8fd8\u662f\u6709\u4e00\u4e9b\u5730\u65b9\u6709\u6240\u6b20\u7f3a\uff0c\u4ee5\u53ca\u5728\u67d0\u4e9b\u573a\u5408 React Native \u8fd8\u4e0d\u80fd\u591f\u66ff\u4f60\u51b3\u5b9a\u5982\u4f55\u8fdb\u884c\u4f18\u5316\uff08\u7528\u539f\u751f\u4ee3\u7801\u5199\u4e5f\u65e0\u6cd5\u907f\u514d\uff09\uff0c\u56e0\u6b64\u4eba\u5de5\u7684\u5e72\u9884\u4f9d\u7136\u662f\u5fc5\u8981\u7684\u3002","sidebar":"docs"},"permissionsandroid":{"id":"permissionsandroid","title":"PermissionsAndroid","description":"\u4ec5\u9002\u7528\u4e8e\u975e\u6c99\u76d2\u9879\u76ee","sidebar":"api"},"pixelratio":{"id":"pixelratio","title":"PixelRatio","description":"PixelRatio \u53ef\u4ee5\u83b7\u53d6\u5230\u8bbe\u5907\u7684\u50cf\u7d20\u5bc6\u5ea6\u548c\u5b57\u4f53\u7f29\u653e\u6bd4\u3002","sidebar":"api"},"platform":{"id":"platform","title":"Platform","description":"Example","sidebar":"api"},"platform-specific-code":{"id":"platform-specific-code","title":"\u7279\u5b9a\u5e73\u53f0\u4ee3\u7801","description":"\u5728\u7f16\u5199\u8de8\u5e73\u53f0\u7684\u5e94\u7528\u65f6\uff0c\u6211\u4eec\u80af\u5b9a\u5e0c\u671b\u5c3d\u53ef\u80fd\u591a\u5730\u590d\u7528\u4ee3\u7801\u3002\u4f46\u662f\u603b\u6709\u4e9b\u65f6\u5019\u6211\u4eec\u4f1a\u78b0\u5230\u9488\u5bf9\u4e0d\u540c\u5e73\u53f0\u7f16\u5199\u4e0d\u540c\u4ee3\u7801\u7684\u9700\u6c42\u3002","sidebar":"docs"},"platformcolor":{"id":"platformcolor","title":"PlatformColor","description":"You can use the PlatformColor function to access native colors on the target platform by supplying the native color\u2019s corresponding string value. You pass a string to the PlatformColor function and, provided it exists on that platform, it will return the corresponding native color, which you can apply in any part of your application.","sidebar":"api"},"pressable":{"id":"pressable","title":"Pressable","description":"Pressable \u662f\u4e00\u4e2a\u6838\u5fc3\u7ec4\u4ef6\u7684\u5c01\u88c5\uff0c\u5b83\u53ef\u4ee5\u68c0\u6d4b\u5230\u4efb\u610f\u5b50\u7ec4\u4ef6\u7684\u4e0d\u540c\u9636\u6bb5\u7684\u6309\u538b\u4ea4\u4e92\u60c5\u51b5\u3002","sidebar":"\u7ec4\u4ef6"},"pressevent":{"id":"pressevent","title":"\u70b9\u51fb\u4e8b\u4ef6\u5bf9\u8c61","description":"\u70b9\u51fb\u4e8b\u4ef6\u5bf9\u8c61\u4f5c\u4e3a\u7528\u6237\u6309\u538b\u4ea4\u4e92\u7684\u7ed3\u679c\u5728\u56de\u8c03\u4e2d\u8fd4\u56de\uff0c\u4f8b\u5982 Button \u7ec4\u4ef6\u4e2d\u7684 onPress\u3002","sidebar":"\u7ec4\u4ef6"},"profile-hermes":{"id":"profile-hermes","title":"\u5728 Hermes \u4e2d\u8fdb\u884c\u6027\u80fd\u5206\u6790","description":"\u4f60\u53ef\u4ee5\u4f7f\u7528Hermes\u5728 React Native \u5e94\u7528\u4e2d\u53ef\u89c6\u5316 JavaScript \u7684\u6027\u80fd\u3002Hermes \u662f\u4e00\u4e2a\u5c0f\u578b\u4e14\u8f7b\u91cf\u7684 JavaScript \u5f15\u64ce\uff08\u4f60\u53ef\u4ee5\u5728\u8fd9\u91cc\u9605\u8bfb\u66f4\u591a\u6709\u5173\u5728 React Native \u4e2d\u4f7f\u7528\u5b83\u7684\u4fe1\u606f\uff09\u3002Hermes \u6709\u52a9\u4e8e\u63d0\u9ad8\u5e94\u7528\u6027\u80fd\uff0c\u5e76\u4e14\u8fd8\u63d0\u4f9b\u4e86\u5206\u6790\u5176\u8fd0\u884c\u7684 JavaScript \u6027\u80fd\u7684\u65b9\u5f0f\u3002"},"profiling":{"id":"profiling","title":"Profiling","description":"\u4f7f\u7528\u5185\u7f6e\u7684\u6027\u80fd\u5206\u6790\u5668\u83b7\u53d6 JavaScript \u7ebf\u7a0b\u548c\u4e3b\u7ebf\u7a0b\u5e76\u6392\u7684\u8be6\u7ec6\u5de5\u4f5c\u4fe1\u606f\u3002\u4ece\u8c03\u8bd5\u83dc\u5355\u4e2d\u9009\u62e9 Perf Monitor \u5373\u53ef\u8bbf\u95ee\u5b83\u3002","sidebar":"docs"},"progressbarandroid":{"id":"progressbarandroid","title":"\ud83d\udea7 ProgressBarAndroid","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/progress-bar-android instead."},"progressviewios":{"id":"progressviewios","title":"\ud83d\udea7 ProgressViewIOS","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/progress-view instead."},"props":{"id":"props","title":"Props\uff08\u5c5e\u6027\uff09","description":"\u5927\u591a\u6570\u7ec4\u4ef6\u5728\u521b\u5efa\u65f6\u5c31\u53ef\u4ee5\u4f7f\u7528\u5404\u79cd\u53c2\u6570\u6765\u8fdb\u884c\u5b9a\u5236\u3002\u7528\u4e8e\u5b9a\u5236\u7684\u8fd9\u4e9b\u53c2\u6570\u5c31\u79f0\u4e3aprops\uff08\u5c5e\u6027\uff09\u3002"},"publishing-to-app-store":{"id":"publishing-to-app-store","title":"\u4e0a\u67b6 App Store","description":"\u4e0a\u67b6\u5e94\u7528\u7684\u8fc7\u7a0b\u548c\u4efb\u4f55\u5176\u5b83\u539f\u751f iOS \u5e94\u7528\u4e00\u6837\uff0c\u4f46\u6709\u4e00\u4e9b\u989d\u5916\u7684\u6ce8\u610f\u4e8b\u9879\u8981\u8003\u8651\u3002","sidebar":"docs"},"pushnotificationios":{"id":"pushnotificationios","title":"\ud83d\udea7 PushNotificationIOS","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/push-notification-ios instead."},"ram-bundles-inline-requires":{"id":"ram-bundles-inline-requires","title":"RAM Bundles \u548c\u5185\u8054\u5f15\u7528\u4f18\u5316","description":"\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u8f83\u4e3a\u5e9e\u5927\u7684\u5e94\u7528\u7a0b\u5e8f\uff0c\u4f60\u53ef\u80fd\u8981\u8003\u8651\u4f7f\u7528RAM(Random Access Modules\uff0c\u968f\u673a\u5b58\u53d6\u6a21\u5757\uff09\u683c\u5f0f\u7684 bundle \u548c\u5185\u8054\u5f15\u7528\u3002\u8fd9\u5bf9\u4e8e\u5177\u6709\u5927\u91cf\u9875\u9762\u7684\u5e94\u7528\u7a0b\u5e8f\u662f\u975e\u5e38\u6709\u7528\u7684\uff0c\u8fd9\u4e9b\u9875\u9762\u5728\u5e94\u7528\u7a0b\u5e8f\u7684\u5178\u578b\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u53ef\u80fd\u4e0d\u4f1a\u88ab\u6253\u5f00\u3002\u901a\u5e38\u5bf9\u4e8e\u542f\u52a8\u540e\u4e00\u6bb5\u65f6\u95f4\u5185\u4e0d\u9700\u8981\u5927\u91cf\u4ee3\u7801\u7684\u5e94\u7528\u7a0b\u5e8f\u6765\u8bf4\u662f\u975e\u5e38\u6709\u7528\u7684\u3002\u4f8b\u5982\u5e94\u7528\u7a0b\u5e8f\u5305\u542b\u590d\u6742\u7684\u914d\u7f6e\u6587\u4ef6\u5c4f\u5e55\u6216\u8f83\u5c11\u4f7f\u7528\u7684\u529f\u80fd\uff0c\u4f46\u5927\u591a\u6570\u4f1a\u8bdd\u53ea\u6d89\u53ca\u8bbf\u95ee\u5e94\u7528\u7a0b\u5e8f\u7684\u4e3b\u5c4f\u5e55\u66f4\u65b0\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528RAM\u683c\u5f0f\u6765\u4f18\u5316bundle\u7684\u52a0\u8f7d\uff0c\u5e76\u4e14\u5185\u8054\u5f15\u7528\u8fd9\u4e9b\u529f\u80fd\u548c\u9875\u9762\uff08\u5f53\u5b83\u4eec\u88ab\u5b9e\u9645\u4f7f\u7528\u65f6\uff09\u3002"},"react-18-and-react-native":{"id":"react-18-and-react-native","title":"React 18 \u4e0e React Native","description":"\u8fd9\u4e2a\u9875\u9762\u63cf\u8ff0\u4e86\u5982\u4f55\u5728 React Native \u7684\u65b0\u67b6\u6784\u4e2d\u542f\u7528 React 18 \u7248\u672c\u3002"},"react-native-devtools":{"id":"react-native-devtools","title":"React Native \u5f00\u53d1\u8005\u5de5\u5177","description":"React Native DevTools \u662f\u6211\u4eec\u65b0\u7684\u8c03\u8bd5\u4f53\u9a8c\uff0c\u5b83\u5bf9\u6211\u4eec\u7684\u8c03\u8bd5\u5806\u6808\u8fdb\u884c\u4e86\u7aef\u5230\u7aef\u7684\u91cd\u65b0\u7f16\u5199\u3002\u5b83\u65e8\u5728\u6bd4\u4ee5\u524d\u7684\u8c03\u8bd5\u65b9\u6cd5\u66f4\u6df1\u5165\u5730\u96c6\u6210\uff0c\u5e76\u4e14\u4ece\u6839\u672c\u4e0a\u66f4\u53ef\u9760\u3002","sidebar":"docs"},"react-native-gradle-plugin":{"id":"react-native-gradle-plugin","title":"React Native Gradle Plugin","description":"\u672c\u6307\u5357\u63cf\u8ff0\u4e86\u5982\u4f55\u914d\u7f6e React Native Gradle Plugin\uff08\u901a\u5e38\u79f0\u4e3a RNGP\uff09\u6765\u4e3a Android \u6784\u5efa React Native \u5e94\u7528\u3002","sidebar":"docs"},"react-node":{"id":"react-node","title":"React \u8282\u70b9\u5bf9\u8c61","description":"React \u8282\u70b9\u5bf9\u8c61\u6709\u4ee5\u4e0b\u8fd9\u4e9b\u7c7b\u578b\uff1a","sidebar":"\u7ec4\u4ef6"},"rect":{"id":"rect","title":"\u77e9\u5f62\u533a\u57df\u5bf9\u8c61","description":"Rect \u63a5\u53d7\u6570\u503c\u50cf\u7d20\u503c\u6765\u63cf\u8ff0\u5982\u4f55\u6269\u5c55\u77e9\u5f62\u533a\u57df\u3002\u8fd9\u4e9b\u503c\u4f1a\u88ab\u6dfb\u52a0\u5230\u539f\u59cb\u533a\u57df\u7684\u5927\u5c0f\u4e0a\u4ee5\u6269\u5c55\u5b83\u3002","sidebar":"\u7ec4\u4ef6"},"rectorsize":{"id":"rectorsize","title":"RectOrSize Object Type","description":"RectOrSize\u63a5\u53d7\u6570\u5b57\u50cf\u7d20\u503c\u6765\u63cf\u8ff0\u5982\u4f55\u6269\u5c55\u77e9\u5f62\u533a\u57df\u3002\u8fd9\u4e9b\u503c\u4f1a\u88ab\u6dfb\u52a0\u5230\u539f\u59cb\u533a\u57df\u7684\u5927\u5c0f\u4e0a\u4ee5\u6269\u5c55\u5b83\u3002"},"refreshcontrol":{"id":"refreshcontrol","title":"RefreshControl","description":"\u8fd9\u4e00\u7ec4\u4ef6\u53ef\u4ee5\u7528\u5728 ScrollView \u6216 FlatList \u5185\u90e8\uff0c\u4e3a\u5176\u6dfb\u52a0\u4e0b\u62c9\u5237\u65b0\u7684\u529f\u80fd\u3002\u5f53 ScrollView \u5904\u4e8e\u7ad6\u76f4\u65b9\u5411\u7684\u8d77\u70b9\u4f4d\u7f6e\uff08scrollY: 0\uff09\uff0c\u6b64\u65f6\u4e0b\u62c9\u4f1a\u89e6\u53d1\u4e00\u4e2aonRefresh\u4e8b\u4ef6\u3002","sidebar":"\u7ec4\u4ef6"},"removing-default-permissions":{"id":"removing-default-permissions","title":"\u79fb\u9664\u4e0d\u9700\u8981\u7684\u6743\u9650","description":"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u6211\u4eec\u4f1a\u7ed9\u6700\u7ec8\u6253\u5305\u7684 APK \u52a0\u5165\u4e00\u4e9b\u6743\u9650\u7533\u8bf7\uff0c\u5177\u4f53\u5982\u4e0b\uff1a"},"render-pipeline":{"id":"render-pipeline","title":"\u6e32\u67d3\uff0c\u63d0\u4ea4\u4e0e\u6302\u8f7d\uff08\u6e32\u67d3\u6d41\u6c34\u7ebf\uff09","description":"\u6587\u6863\u4ecb\u7ecd\u4e86\u5373\u5c06\u53d1\u5e03\u7684\u65b0\u6e32\u67d3\u5668 Fabric \u7684\u67b6\u6784\u3002"},"roottag":{"id":"roottag","title":"RootTag","description":"RootTag \u662f\u7528\u4e8e\u6807\u8bb0 React Native \u539f\u751f\u6839\u89c6\u56fe\u5c42\u7684\u4e0d\u900f\u660e\u6807\u8bc6\u7b26\uff08opaque identifier\uff09\u3002\u5177\u4f53\u6765\u8bf4\u5c31\u662f ReactRootView(android) \u6216\u662f RCTRootView(iOS) \u7684\u5b9e\u4f8b ID.","sidebar":"api"},"running-on-device":{"id":"running-on-device","title":"\u5728\u8bbe\u5907\u4e0a\u8fd0\u884c","description":"\u5728\u771f\u673a\u4e0a\u4ed4\u7ec6\u6d4b\u8bd5 app \u540e\u518d\u53d1\u5e03\u7ed9\u7528\u6237\u603b\u662f\u4e0d\u4f1a\u9519\u7684\u3002\u672c\u6587\u6863\u5c06\u6307\u5bfc\u4f60\u901a\u8fc7\u5fc5\u987b\u7684\u6b65\u9aa4\u5728\u8bbe\u5907\u4e0a\u8fd0\u884c React Native app\uff0c\u4e3a\u751f\u4ea7\u505a\u51c6\u5907\u3002","sidebar":"docs"},"running-on-simulator-ios":{"id":"running-on-simulator-ios","title":"\u5728iOS\u6a21\u62df\u5668\u4e0a\u8fd0\u884c","description":"\u542f\u52a8\u6a21\u62df\u5668","sidebar":"docs"},"safeareaview":{"id":"safeareaview","title":"SafeAreaView","description":"SafeAreaView\u7684\u76ee\u7684\u662f\u5728\u4e00\u4e2a\u201c\u5b89\u5168\u201d\u7684\u53ef\u89c6\u533a\u57df\u5185\u6e32\u67d3\u5185\u5bb9\u3002\u5177\u4f53\u6765\u8bf4\u5c31\u662f\u56e0\u4e3a\u76ee\u524d\u6709 iPhone X \u8fd9\u6837\u7684\u5e26\u6709\u201c\u5218\u6d77\u201d\u7684\u5168\u9762\u5c4f\u8bbe\u5907\uff0c\u6240\u4ee5\u9700\u8981\u907f\u514d\u5185\u5bb9\u6e32\u67d3\u5230\u4e0d\u53ef\u89c1\u7684\u201c\u5218\u6d77\u201d\u8303\u56f4\u5185\u3002\u672c\u7ec4\u4ef6\u76ee\u524d\u4ec5\u652f\u6301 iOS \u8bbe\u5907\u4ee5\u53ca iOS 11 \u6216\u66f4\u9ad8\u7248\u672c\u3002","sidebar":"\u7ec4\u4ef6"},"sample-application-movies":{"id":"sample-application-movies","title":"\u793a\u4f8b\u6559\u7a0b\uff1a\u7535\u5f71\u5217\u8868","description":"\u7b80\u4ecb"},"scrollview":{"id":"scrollview","title":"ScrollView","description":"\u4e00\u4e2a\u5c01\u88c5\u4e86\u5e73\u53f0\u7684 ScrollView\uff08\u6eda\u52a8\u89c6\u56fe\uff09\u7684\u7ec4\u4ef6\uff0c\u540c\u65f6\u8fd8\u96c6\u6210\u4e86\u89e6\u6478\u9501\u5b9a\u7684\u201c\u54cd\u5e94\u8005\u201d\u7cfb\u7edf\u3002","sidebar":"\u7ec4\u4ef6"},"sectionlist":{"id":"sectionlist","title":"SectionList","description":"\u9ad8\u6027\u80fd\u7684\u5206\u7ec4(section)\u5217\u8868\u7ec4\u4ef6\uff0c\u652f\u6301\u4e0b\u9762\u8fd9\u4e9b\u5e38\u7528\u7684\u529f\u80fd\uff1a","sidebar":"\u7ec4\u4ef6"},"security":{"id":"security","title":"\u7f51\u7edc\u5b89\u5168\u7b56\u7565","description":"\u5f00\u53d1\u5e94\u7528\u65f6\u5b89\u5168\u5e38\u5e38\u662f\u4e00\u4e2a\u88ab\u5ffd\u89c6\u7684\u8bdd\u9898\u3002\u7684\u786e\uff0c\u642d\u5efa\u4e00\u4e2a\u5b8c\u5168\u65e0\u61c8\u53ef\u51fb\u7684\u8f6f\u4ef6\u662f\u4e0d\u53ef\u80fd\u7684\u2014\u2014\u6211\u4eec\u8fd8\u6ca1\u6709\u53d1\u660e\u4e00\u4e2a\u5b8c\u5168\u575a\u4e0d\u53ef\u6467\u7684\u9501\uff08\u6bd5\u7adf\uff0c\u94f6\u884c\u91d1\u5e93\u5df2\u7ecf\u8db3\u591f\u575a\u56fa\u4f46\u4ecd\u7136\u4f1a\u88ab\u95ef\u5165\uff09\u3002\u7136\u800c\uff0c\u906d\u53d7\u6076\u610f\u653b\u51fb\u6216\u66b4\u9732\u5b89\u5168\u6f0f\u6d1e\u7684\u53ef\u80fd\u6027\u4e0e\u60a8\u613f\u610f\u6295\u5165\u4fdd\u62a4\u5e94\u7528\u7a0b\u5e8f\u514d\u53d7\u6b64\u7c7b\u4e8b\u4ef6\u7684\u52aa\u529b\u6210\u53cd\u6bd4\u3002\u5c3d\u7ba1\u666e\u901a\u7684\u6302\u9501\u53ef\u4ee5\u88ab\u64ac\u5f00\uff0c\u4f46\u5b83\u4ecd\u7136\u6bd4\u6a71\u67dc\u6302\u94a9\u66f4\u96be\u653b\u7834\uff01","sidebar":"docs"},"segmentedcontrolios":{"id":"segmentedcontrolios","title":"\ud83d\udea7 SegmentedControlIOS","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/segmented-control instead."},"settings":{"id":"settings","title":"Settings","description":"Settings\u662f\u5bf9NSUserDefaults\u7684\u5c01\u88c5\u3002\u5b83\u662fiOS\u5e73\u53f0\u4e0a\u7684\u4e00\u79cd\u6301\u4e45\u7684\u952e\u503c\u5bf9\u5b58\u50a8\u3002","sidebar":"api"},"shadow-props":{"id":"shadow-props","title":"\u9634\u5f71\u6837\u5f0f\u5c5e\u6027","description":"These properties are iOS only - for similar functionality on Android, use the elevation property.","sidebar":"\u7ec4\u4ef6"},"share":{"id":"share","title":"Share","description":"\u793a\u4f8b","sidebar":"api"},"signed-apk-android":{"id":"signed-apk-android","title":"\u6253\u5305\u53d1\u5e03","description":"Android \u8981\u6c42\u6240\u6709\u5e94\u7528\u90fd\u6709\u4e00\u4e2a\u6570\u5b57\u7b7e\u540d\u624d\u4f1a\u88ab\u5141\u8bb8\u5b89\u88c5\u5728\u7528\u6237\u624b\u673a\u4e0a\uff0c\u6240\u4ee5\u5728\u628a\u5e94\u7528\u53d1\u5e03\u5230\u5e94\u7528\u5e02\u573a\u4e4b\u524d\uff0c\u4f60\u9700\u8981\u5148\u751f\u6210\u4e00\u4e2a\u7b7e\u540d\u7684 AAB \u6216 APK \u5305\uff08Google Play \u73b0\u5728\u8981\u6c42 AAB \u683c\u5f0f\uff0c\u800c\u56fd\u5185\u7684\u5e94\u7528\u5e02\u573a\u76ee\u524d\u4ec5\u652f\u6301 APK \u683c\u5f0f\u3002\u4f46\u65e0\u8bba\u54ea\u79cd\u683c\u5f0f\uff0c\u4e0b\u9762\u7684\u7b7e\u540d\u6b65\u9aa4\u662f\u4e00\u6837\u7684\uff09\u3002Android \u5f00\u53d1\u8005\u5b98\u7f51\u4e0a\u7684\u5982\u4f55\u7ed9\u4f60\u7684\u5e94\u7528\u7b7e\u540d\u6587\u6863\u63cf\u8ff0\u4e86\u7b7e\u540d\u7684\u7ec6\u8282\u3002\u672c\u6307\u5357\u65e8\u5728\u63d0\u4f9b\u4e00\u4e2a\u7b80\u5316\u7684\u7b7e\u540d\u548c\u6253\u5305\u7684\u64cd\u4f5c\u6b65\u9aa4\uff0c\u4e0d\u4f1a\u6d89\u53ca\u592a\u591a\u7406\u8bba\u3002","sidebar":"docs"},"slider":{"id":"slider","title":"\ud83d\udea7 Slider","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/slider instead."},"speeding-ci-builds":{"id":"speeding-ci-builds","title":"\u4f18\u5316 CI \u6784\u5efa","description":"You or your company may have set up a Continuous Integration (CI) environment to test your React Native application."},"state":{"id":"state","title":"State\uff08\u72b6\u6001\uff09","description":"\u6211\u4eec\u4f7f\u7528\u4e24\u79cd\u6570\u636e\u6765\u63a7\u5236\u4e00\u4e2a\u7ec4\u4ef6\uff1aprops\u548cstate\u3002props\u662f\u5728\u7236\u7ec4\u4ef6\u4e2d\u6307\u5b9a\uff0c\u800c\u4e14\u4e00\u7ecf\u6307\u5b9a\uff0c\u5728\u88ab\u6307\u5b9a\u7684\u7ec4\u4ef6\u7684\u751f\u547d\u5468\u671f\u4e2d\u5219\u4e0d\u518d\u6539\u53d8\u3002\u5bf9\u4e8e\u9700\u8981\u6539\u53d8\u7684\u6570\u636e\uff0c\u6211\u4eec\u9700\u8981\u4f7f\u7528state\u3002"},"statusbar":{"id":"statusbar","title":"StatusBar","description":"\u63a7\u5236\u5e94\u7528\u72b6\u6001\u680f\u7684\u7ec4\u4ef6\u3002","sidebar":"\u7ec4\u4ef6"},"style":{"id":"style","title":"\u6837\u5f0f","description":"\u5728 React Native \u4e2d\uff0c\u4f60\u5e76\u4e0d\u9700\u8981\u5b66\u4e60\u4ec0\u4e48\u7279\u6b8a\u7684\u8bed\u6cd5\u6765\u5b9a\u4e49\u6837\u5f0f\u3002\u6211\u4eec\u4ecd\u7136\u662f\u4f7f\u7528 JavaScript \u6765\u5199\u6837\u5f0f\u3002\u6240\u6709\u7684\u6838\u5fc3\u7ec4\u4ef6\u90fd\u63a5\u53d7\u540d\u4e3astyle\u7684\u5c5e\u6027\u3002\u8fd9\u4e9b\u6837\u5f0f\u540d\u57fa\u672c\u4e0a\u662f\u9075\u5faa\u4e86 web \u4e0a\u7684 CSS \u7684\u547d\u540d\uff0c\u53ea\u662f\u6309\u7167 JS \u7684\u8bed\u6cd5\u8981\u6c42\u4f7f\u7528\u4e86\u9a7c\u5cf0\u547d\u540d\u6cd5\uff0c\u4f8b\u5982\u5c06background-color\u6539\u4e3abackgroundColor\u3002","sidebar":"docs"},"stylesheet":{"id":"stylesheet","title":"StyleSheet","description":"StyleSheet \u63d0\u4f9b\u4e86\u4e00\u79cd\u7c7b\u4f3c CSS \u6837\u5f0f\u8868\u7684\u62bd\u8c61\u3002","sidebar":"api"},"switch":{"id":"switch","title":"Switch","description":"\u8de8\u5e73\u53f0\u901a\u7528\u7684\u201c\u5f00\u5173\u201d\u7ec4\u4ef6\u3002","sidebar":"\u7ec4\u4ef6"},"symbolication":{"id":"symbolication","title":"Symbolicating a stack trace","description":"If a React Native app throws an unhandled exception in a release build, the output may be obfuscated and hard to read:"},"systrace":{"id":"systrace","title":"Systrace","description":"Systrace is a standard Android marker-based profiling tool (and is installed when you install the Android platform-tools package). Profiled code blocks are surrounded by start/end markers which are then visualized in a colorful chart format. Both the Android SDK and React Native framework provide standard markers that you can visualize.","sidebar":"api"},"testing-overview":{"id":"testing-overview","title":"Testing","description":"This guide introduces React Native developers to the key concepts behind testing, how to write good tests, and what kinds of tests you can incorporate into your workflow.","sidebar":"docs"},"text":{"id":"text","title":"Text","description":"\u4e00\u4e2a\u7528\u4e8e\u663e\u793a\u6587\u672c\u7684 React \u7ec4\u4ef6\uff0c\u5e76\u4e14\u5b83\u4e5f\u652f\u6301\u5d4c\u5957\u3001\u6837\u5f0f\uff0c\u4ee5\u53ca\u89e6\u6478\u5904\u7406\u3002","sidebar":"\u7ec4\u4ef6"},"text-style-props":{"id":"text-style-props","title":"Text \u6837\u5f0f\u5c5e\u6027","description":"\u793a\u4f8b","sidebar":"\u7ec4\u4ef6"},"textinput":{"id":"textinput","title":"TextInput","description":"TextInput \u662f\u4e00\u4e2a\u5141\u8bb8\u7528\u6237\u5728\u5e94\u7528\u4e2d\u901a\u8fc7\u952e\u76d8\u8f93\u5165\u6587\u672c\u7684\u57fa\u672c\u7ec4\u4ef6\u3002\u672c\u7ec4\u4ef6\u7684\u5c5e\u6027\u63d0\u4f9b\u4e86\u591a\u79cd\u7279\u6027\u7684\u914d\u7f6e\uff0c\u8b6c\u5982\u81ea\u52a8\u5b8c\u6210\u3001\u81ea\u52a8\u5927\u5c0f\u5199\u3001\u5360\u4f4d\u6587\u5b57\uff0c\u4ee5\u53ca\u591a\u79cd\u4e0d\u540c\u7684\u952e\u76d8\u7c7b\u578b\uff08\u5982\u7eaf\u6570\u5b57\u952e\u76d8\uff09\u7b49\u7b49\u3002","sidebar":"\u7ec4\u4ef6"},"the-new-architecture/backward-compatibility":{"id":"the-new-architecture/backward-compatibility","title":"\u5411\u540e\u517c\u5bb9\u7684\u610f\u4e49","description":"\u521b\u5efa\u4e00\u4e2a\u5411\u540e\u517c\u5bb9\u7684\u6a21\u5757\u5f88\u91cd\u8981\uff0c\u8fd9\u6837\u53ef\u4ee5\u5b9e\u73b0\u5728\u65e7\u67b6\u6784\u548c\u65b0\u67b6\u6784\u4e2d\u90fd\u80fd\u5de5\u4f5c\u7684\u5e93\u3002\u5e76\u4e0d\u662f\u6240\u6709\u7528\u6237\u90fd\u4f1a\u7acb\u523b\u8f6c\u5230\u65b0\u67b6\u6784\uff0c\u6700\u597d\u5728\u4ed6\u4eec\u4f7f\u7528\u65e7\u67b6\u6784\u65f6\u4ecd\u7136\u4fdd\u6301\u517c\u5bb9\u3002"},"the-new-architecture/backward-compatibility-fabric-components":{"id":"the-new-architecture/backward-compatibility-fabric-components","title":"\u4f7f Fabric \u7ec4\u4ef6\u4e0e\u4f20\u7edf\u539f\u751f\u7ec4\u4ef6\u517c\u5bb9","description":"\u521b\u5efa\u5411\u540e\u517c\u5bb9\u7684 Fabric \u539f\u751f\u7ec4\u4ef6\u9700\u8981\u4e86\u89e3\u5982\u4f55\u521b\u5efa\u4f20\u7edf\u7684\u539f\u751f\u7ec4\u4ef6\u3002\u8981\u56de\u5fc6\u8fd9\u4e9b\u6982\u5ff5\uff0c\u8bf7\u67e5\u770b\u6b64\u6307\u5357\u3002"},"the-new-architecture/backward-compatibility-turbomodules":{"id":"the-new-architecture/backward-compatibility-turbomodules","title":"\u4f7f Turbo \u6a21\u5757\u4e0e\u4f20\u7edf\u539f\u751f\u6a21\u5757\u517c\u5bb9","description":"\u521b\u5efa\u5411\u540e\u517c\u5bb9\u7684 Turbo \u539f\u751f\u6a21\u5757\u9700\u8981\u4e86\u89e3\u5982\u4f55\u521b\u5efa\u4f20\u7edf\u7684\u539f\u751f\u6a21\u5757\u3002\u8981\u56de\u5fc6\u8fd9\u4e9b\u6982\u5ff5\uff0c\u8bf7\u67e5\u770b\u6b64\u6307\u5357\u3002"},"the-new-architecture/codegen-cli":{"id":"the-new-architecture/codegen-cli","title":"Codegen \u547d\u4ee4\u884c\u5de5\u5177","description":"\u8c03\u7528 Gradle \u6216\u624b\u52a8\u8c03\u7528\u811a\u672c\u53ef\u80fd\u5f88\u96be\u8bb0\u4f4f\uff0c\u5e76\u4e14\u9700\u8981\u5f88\u591a\u6b65\u9aa4\u3002","sidebar":"docs"},"the-new-architecture/create-module-library":{"id":"the-new-architecture/create-module-library","title":"\u521b\u5efa\u6a21\u5757\u5e93","description":"React Native \u6709\u4e00\u4e2a\u4e30\u5bcc\u7684\u751f\u6001\u7cfb\u7edf\u5e93\u6765\u89e3\u51b3\u5e38\u89c1\u95ee\u9898\u3002\u6211\u4eec\u5728 reactnative.directory \u7f51\u7ad9\u4e0a\u6536\u96c6 React Native \u5e93\uff0c\u8fd9\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u8d44\u6e90\uff0c\u503c\u5f97\u6bcf\u4e2a React Native \u5f00\u53d1\u8005\u6536\u85cf\u3002","sidebar":"docs"},"the-new-architecture/custom-cxx-types":{"id":"the-new-architecture/custom-cxx-types","title":"\u9ad8\u7ea7\uff1a\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b","description":"\u672c\u6307\u5357\u5047\u8bbe\u4f60\u719f\u6089 \u7eaf C++ Turbo Native \u6a21\u5757 \u6307\u5357\u3002\u5b83\u5c06\u5728\u6b64\u57fa\u7840\u4e0a\u8fdb\u884c\u6784\u5efa\u3002","sidebar":"docs"},"the-new-architecture/cxx-custom-types":{"id":"the-new-architecture/cxx-custom-types","title":"\u652f\u6301\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b","description":"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cC++ Turbo Native \u6a21\u5757\u652f\u6301\u5927\u591a\u6570 std:: \u6807\u51c6\u7c7b\u578b\u7684\u6865\u63a5\u529f\u80fd\u3002"},"the-new-architecture/cxx-cxxturbomodules":{"id":"the-new-architecture/cxx-cxxturbomodules","title":"C++ Turbo \u539f\u751f\u6a21\u5757","description":"\u672c\u6307\u5357\u5c06\u5411\u60a8\u5c55\u793a\u5982\u4f55\u4ec5\u4f7f\u7528 C++ \u5b9e\u73b0 Turbo \u539f\u751f\u6a21\u5757\uff0c\u4ee5\u4fbf\u4e0e\u4efb\u4f55\u652f\u6301\u7684\u5e73\u53f0\uff08Android\u3001iOS\u3001macOS \u6216 Windows\uff09\u5171\u4eab\u76f8\u540c\u7684\u5b9e\u73b0\u3002"},"the-new-architecture/landing-page":{"id":"the-new-architecture/landing-page","title":"\u65b0\u67b6\u6784\u4ecb\u7ecd","description":"\u4ece 0.68 \u7248\u672c\u5f00\u59cb\uff0cReact Native \u63d0\u4f9b\u4e86\u65b0\u67b6\u6784\uff0c\u5b83\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u4e86\u6784\u5efa\u9ad8\u6027\u80fd\u548c\u54cd\u5e94\u5f0f\u5e94\u7528\u7684\u65b0\u529f\u80fd\u3002\u8bf7\u8bbf\u95ee\\"\u4e3a\u4f55\u8981\u8bbe\u8ba1\u65b0\u67b6\u6784\\"\u6765\u4e86\u89e3\u66f4\u591a\u5173\u4e8e\u4fc3\u4f7f\u6211\u4eec\u51b3\u5b9a\u91cd\u65b0\u67b6\u6784\u7684\u539f\u56e0\uff0c\u4ee5\u53ca\u5b83\u63d0\u4f9b\u7684\u597d\u5904\u3002"},"the-new-architecture/pillars":{"id":"the-new-architecture/pillars","title":"\u65b0\u67b6\u6784\u7684\u4e24\u5927\u652f\u67f1","description":"\u65b0\u67b6\u6784\u4e3b\u8981\u7531\u4e24\u5927\u652f\u67f1\u7ec4\u6210\uff1a"},"the-new-architecture/pillars-codegen":{"id":"the-new-architecture/pillars-codegen","title":"Codegen","description":"Codegen \u4e0d\u7b97\u662f\u65b0\u67b6\u6784\u7684\u4e3b\u8981\u7ec4\u6210\u90e8\u5206\uff0c\u5b83\u662f\u4e00\u4e2a\u5e2e\u52a9\u6211\u4eec\u907f\u514d\u7f16\u5199\u91cd\u590d\u4ee3\u7801\u7684\u5de5\u5177\u3002Codegen \u5e76\u975e\u5fc5\u9009\u9879\uff0c\u60a8\u4ecd\u7136\u53ef\u4ee5\u624b\u5199\u5b83\u6240\u751f\u6210\u7684\u4ee3\u7801\uff0c\u4f46\u662f\u4f7f\u7528\u5b83\u6765\u751f\u6210\u811a\u624b\u67b6\u4ee3\u7801\u53ef\u4ee5\u5e2e\u60a8\u8282\u7701\u4e0d\u5c11\u65f6\u95f4\u3002"},"the-new-architecture/pillars-fabric-components":{"id":"the-new-architecture/pillars-fabric-components","title":"Fabric \u7ec4\u4ef6","description":"Fabric \u7ec4\u4ef6\u662f\u4e00\u79cd\u4f7f\u7528 Fabric \u6e32\u67d3\u5668\u6e32\u67d3\u5e76\u5c55\u793a\u5728\u5c4f\u5e55\u4e0a\u7684 UI \u7ec4\u4ef6\u3002\u5728\u65b0\u67b6\u6784\u4e2d\uff0c\u4f7f\u7528 Fabric \u7ec4\u4ef6\u66ff\u4ee3\u539f\u751f\u7ec4\u4ef6\u5177\u6709\u4ee5\u4e0b\u4f18\u52bf\uff1a"},"the-new-architecture/pillars-turbomodules":{"id":"the-new-architecture/pillars-turbomodules","title":"TurboModules","description":"\u5982\u679c\u60a8\u4f7f\u7528\u8fc7 React Native\uff0c\u60a8\u53ef\u80fd\u4e86\u89e3\u8fc7 Native Modules \u8fd9\u4e2a\u6982\u5ff5\u3002\u5b83\u53ef\u4ee5\u901a\u8fc7 React Native \u7684\u300cBridge\u300d\u5e2e\u52a9 JavaScript \u548c\u539f\u751f\u4ee3\u7801\u8fdb\u884c\u4ea4\u4e92\uff0c\u5e76\u4f7f\u7528\u8de8\u5e73\u53f0\u7684\u6570\u636e\u683c\u5f0f JSON \u8fdb\u884c\u901a\u8baf\u3002"},"the-new-architecture/pure-cxx-modules":{"id":"the-new-architecture/pure-cxx-modules","title":"\u4f7f\u7528 C++ \u5b9e\u73b0\u8de8\u5e73\u53f0\u7684\u539f\u751f\u6a21\u5757","description":"\u7f16\u5199 C++ \u6a21\u5757\u662f\u8de8 Android \u548c iOS \u5171\u4eab\u5e73\u53f0\u65e0\u5173\u4ee3\u7801\u7684\u6700\u4f73\u65b9\u5f0f\u3002\u4f7f\u7528\u7eaf C++ \u6a21\u5757\uff0c\u60a8\u53ea\u9700\u7f16\u5199\u4e00\u6b21\u903b\u8f91\uff0c\u5373\u53ef\u5728\u6240\u6709\u5e73\u53f0\u4e0a\u91cd\u7528\u5b83\uff0c\u800c\u65e0\u9700\u7f16\u5199\u5e73\u53f0\u7279\u5b9a\u7684\u4ee3\u7801\u3002","sidebar":"docs"},"the-new-architecture/use-app-template":{"id":"the-new-architecture/use-app-template","title":"\u521b\u5efa\u542f\u7528\u65b0\u67b6\u6784\u7684\u5e94\u7528","description":"\u672c\u6587\u6863\u5c06\u5e2e\u52a9\u4f60\u4ece\u5934\u521b\u5efa\u4e00\u4e2a\u542f\u7528\u4e86\u65b0\u67b6\u6784\u7684 React Native \u5e94\u7528\u3002"},"the-new-architecture/using-codegen":{"id":"the-new-architecture/using-codegen","title":"\u4f7f\u7528 Codegen","description":"\u672c\u6307\u5357\u5c06\u6559\u4f60\u5982\u4f55\uff1a","sidebar":"docs"},"the-new-architecture/what-is-codegen":{"id":"the-new-architecture/what-is-codegen","title":"\u4ec0\u4e48\u662f Codegen\uff1f","description":"Codegen \u662f\u4e00\u4e2a\u907f\u514d\u7f16\u5199\u5927\u91cf\u91cd\u590d\u4ee3\u7801\u7684\u5de5\u5177\u3002\u4f7f\u7528 Codegen \u5e76\u4e0d\u662f\u5fc5\u987b\u7684\uff1a\u60a8\u53ef\u4ee5\u624b\u52a8\u7f16\u5199\u6240\u6709\u751f\u6210\u7684\u4ee3\u7801\u3002\u7136\u800c\uff0cCodegen \u751f\u6210\u7684\u811a\u624b\u67b6\u4ee3\u7801\u53ef\u4ee5\u8282\u7701\u60a8\u5f88\u591a\u65f6\u95f4\u3002","sidebar":"docs"},"the-new-architecture/why":{"id":"the-new-architecture/why","title":"\u4e3a\u4f55\u8981\u8bbe\u8ba1\u65b0\u67b6\u6784","description":"\u65b0\u67b6\u6784\u7684\u76ee\u6807\u662f\u89e3\u51b3\u56f0\u6270\u65e7\u67b6\u6784\u5728\u6027\u80fd\u548c\u7075\u6d3b\u6027\u65b9\u9762\u7684\u4e00\u4e9b\u95ee\u9898\u3002\u672c\u8282\u63d0\u4f9b\u4e86\u57fa\u672c\u7684\u80cc\u666f\uff0c\u4ee5\u4e86\u89e3\u65e7\u67b6\u6784\u7684\u5c40\u9650\u6027\uff0c\u4ee5\u53ca\u5982\u4f55\u901a\u8fc7\u65b0\u67b6\u6784\u6765\u514b\u670d\u8fd9\u4e9b\u5c40\u9650\u6027\u3002"},"threading-model":{"id":"threading-model","title":"\u7ebf\u7a0b\u6a21\u578b","description":"\u6587\u6863\u4ecb\u7ecd\u4e86\u5373\u5c06\u53d1\u5e03\u7684\u65b0\u6e32\u67d3\u5668 Fabric \u7684\u67b6\u6784\u3002"},"timepickerandroid":{"id":"timepickerandroid","title":"\ud83d\udea7 TimePickerAndroid","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/datetimepicker instead."},"timers":{"id":"timers","title":"\u5b9a\u65f6\u5668","description":"\u5b9a\u65f6\u5668\u662f\u4e00\u4e2a\u5e94\u7528\u4e2d\u975e\u5e38\u91cd\u8981\u7684\u90e8\u5206\u3002React Native \u5b9e\u73b0\u4e86\u548c\u6d4f\u89c8\u5668\u4e00\u81f4\u7684\u5b9a\u65f6\u5668 Timer\u3002","sidebar":"docs"},"toastandroid":{"id":"toastandroid","title":"ToastAndroid","description":"\u672c\u6a21\u5757\u5c06\u539f\u751f\u7684 ToastAndroid \u6a21\u5757\u5bfc\u51fa\u4e3a\u4e00\u4e2a JS \u6a21\u5757\uff0c\u7528\u4e8e\u5728 Android \u8bbe\u5907\u4e0a\u663e\u793a\u4e00\u4e2a\u60ac\u6d6e\u7684\u63d0\u793a\u4fe1\u606f\u3002\u672c\u6a21\u5757\u5305\u542b\u4e00\u4e2ashow\u65b9\u6cd5\u63a5\u53d7\u4ee5\u4e0b\u7684\u53c2\u6570\uff1a","sidebar":"api"},"touchablehighlight":{"id":"touchablehighlight","title":"TouchableHighlight","description":"\u6211\u4eec\u5efa\u8bae\u4f7f\u7528Pressable\u7ec4\u4ef6\uff0c\u5b83\u66f4\u5177\u6269\u5c55\u6027\u4e14\u4f1a\u662f\u5b98\u65b9\u672a\u6765\u529b\u63a8\u7684\u4e3b\u6d41\u3002","sidebar":"\u7ec4\u4ef6"},"touchablenativefeedback":{"id":"touchablenativefeedback","title":"TouchableNativeFeedback","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"\u7ec4\u4ef6"},"touchableopacity":{"id":"touchableopacity","title":"TouchableOpacity","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"\u7ec4\u4ef6"},"touchablewithoutfeedback":{"id":"touchablewithoutfeedback","title":"TouchableWithoutFeedback","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"\u7ec4\u4ef6"},"transforms":{"id":"transforms","title":"\u53d8\u6362\uff08Transform\uff09","description":"\u53d8\u6362\uff08Transform\uff09\u662f\u6837\u5f0f\u5c5e\u6027\uff0c\u53ef\u5e2e\u52a9\u60a8\u4f7f\u7528 2D \u6216 3D \u53d8\u6362\u4fee\u6539\u7ec4\u4ef6\u7684\u5916\u89c2\u548c\u4f4d\u7f6e\u3002\u7136\u800c\uff0c\u5373\u4fbf\u4f7f\u7528\u4e86\u53d8\u6362\uff0c\u4f7f\u7528\u53d8\u6362\u7684\u7ec4\u4ef6\u7684\u5e03\u5c40\u5e76\u4e0d\u4f1a\u53d8\u5316\uff0c\u56e0\u6b64\u53ef\u80fd\u4f1a\u4e0e\u9644\u8fd1\u7684\u7ec4\u4ef6\u91cd\u53e0\u3002\u60a8\u53ef\u4ee5\u5bf9\u53d8\u6362\u7684\u7ec4\u4ef6\u3001\u9644\u8fd1\u7684\u7ec4\u4ef6\u5e94\u7528\u8fb9\u8ddd\uff0c\u6216\u5bf9\u5bb9\u5668\u5e94\u7528\u586b\u5145\uff0c\u4ee5\u9632\u6b62\u8fd9\u79cd\u91cd\u53e0\u3002","sidebar":"api"},"troubleshooting":{"id":"troubleshooting","title":"Troubleshooting","description":"These are some common issues you may run into while setting up React Native. If you encounter something that is not listed here, try searching for the issue in GitHub."},"turbo-native-modules-android":{"id":"turbo-native-modules-android","title":"Turbo \u539f\u751f\u6a21\u5757\uff1aAndroid","description":"\u73b0\u5728\u6211\u4eec\u6765\u7f16\u5199\u4e00\u4e9b Android \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u786e\u4fdd localStorage \u5728\u5e94\u7528\u5173\u95ed\u540e\u4ecd\u7136\u53ef\u4ee5\u6301\u4e45\u4fdd\u5b58\u6570\u636e\u3002"},"turbo-native-modules-introduction":{"id":"turbo-native-modules-introduction","title":"Turbo \u539f\u751f\u6a21\u5757\u4ecb\u7ecd","description":"\u4f60\u7684 React Native \u5e94\u7528\u4ee3\u7801\u53ef\u80fd\u9700\u8981\u4e0e React Native \u6216\u73b0\u6709\u5e93\u672a\u63d0\u4f9b\u7684\u539f\u751f\u5e73\u53f0 API \u8fdb\u884c\u4ea4\u4e92\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528 Turbo \u539f\u751f\u6a21\u5757 \u81ea\u5df1\u7f16\u5199\u96c6\u6210\u4ee3\u7801\u3002\u672c\u6307\u5357\u5c06\u5411\u4f60\u5c55\u793a\u5982\u4f55\u7f16\u5199\u4e00\u4e2a\u3002","sidebar":"docs"},"turbo-native-modules-ios":{"id":"turbo-native-modules-ios","title":"Turbo \u539f\u751f\u6a21\u5757\uff1aiOS","description":"\u73b0\u5728\u6211\u4eec\u6765\u7f16\u5199\u4e00\u4e9b iOS \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u786e\u4fdd localStorage \u5728\u5e94\u7528\u5173\u95ed\u540e\u4ecd\u7136\u53ef\u4ee5\u6301\u4e45\u4fdd\u5b58\u6570\u636e\u3002"},"tutorial":{"id":"tutorial","title":"\u793a\u4f8b\u6559\u7a0b\uff1aHello World","description":"React Native \u770b\u8d77\u6765\u5f88\u50cf React\uff0c\u53ea\u4e0d\u8fc7\u5176\u57fa\u7840\u7ec4\u4ef6\u662f\u539f\u751f\u7ec4\u4ef6\u800c\u975e web \u7ec4\u4ef6\u3002\u8981\u7406\u89e3 React Native \u5e94\u7528\u7684\u57fa\u672c\u7ed3\u6784\uff0c\u9996\u5148\u9700\u8981\u4e86\u89e3\u4e00\u4e9b\u57fa\u672c\u7684 React \u7684\u6982\u5ff5\uff0c\u6bd4\u5982 JSX \u8bed\u6cd5\u3001\u7ec4\u4ef6\u3001state\u72b6\u6001\u4ee5\u53caprops\u5c5e\u6027\u3002\u5982\u679c\u4f60\u5df2\u7ecf\u4e86\u89e3\u4e86 React\uff0c\u90a3\u4e48\u8fd8\u9700\u8981\u638c\u63e1\u4e00\u4e9b React Native \u7279\u6709\u7684\u77e5\u8bc6\uff0c\u6bd4\u5982\u539f\u751f\u7ec4\u4ef6\u7684\u4f7f\u7528\u3002\u8fd9\u7bc7\u6559\u7a0b\u53ef\u4ee5\u4f9b\u4efb\u4f55\u57fa\u7840\u7684\u8bfb\u8005\u5b66\u4e60\uff0c\u4e0d\u7ba1\u4f60\u662f\u5426\u6709 React \u65b9\u9762\u7684\u7ecf\u9a8c\u3002"},"typescript":{"id":"typescript","title":"\u4f7f\u7528 TypeScript","description":"TypeScript \u662f\u4e00\u79cd\u901a\u8fc7\u6dfb\u52a0\u7c7b\u578b\u5b9a\u4e49\u6765\u6269\u5c55 JavaScript \u7684\u8bed\u8a00\u3002\u65b0\u7684 React Native \u9879\u76ee\u9ed8\u8ba4\u4ee5 TypeScript \u4e3a\u76ee\u6807\uff0c\u540c\u65f6\u4e5f\u652f\u6301 JavaScript \u548c Flow\u3002","sidebar":"docs"},"upgrading":{"id":"upgrading","title":"\u66f4\u65b0","description":"\u65f6\u523b\u5c06 React Native \u66f4\u65b0\u5230\u6700\u65b0\u7684\u7248\u672c\uff0c\u53ef\u4ee5\u83b7\u5f97\u66f4\u591a API\u3001\u89c6\u56fe\u3001\u5f00\u53d1\u8005\u5de5\u5177\u4ee5\u53ca\u5176\u4ed6\u4e00\u4e9b\u597d\u4e1c\u897f\uff08\u8bd1\u6ce8\uff1a\u5b98\u65b9\u5f00\u53d1\u4efb\u52a1\u7e41\u91cd\uff0c\u4eba\u624b\u7d27\u7f3a\uff0c\u51e0\u4e4e\u4e0d\u4f1a\u5bf9\u65e7\u7248\u672c\u63d0\u4f9b\u7ef4\u62a4\u652f\u6301\uff0c\u6240\u4ee5\u5373\u4fbf\u66f4\u65b0\u53ef\u80fd\u5e26\u6765\u4e00\u4e9b\u517c\u5bb9\u4e0a\u7684\u53d8\u66f4\uff0c\u4f46\u5efa\u8bae\u5f00\u53d1\u8005\u8fd8\u662f\u5c3d\u4e00\u5207\u53ef\u80fd\u7b2c\u4e00\u65f6\u95f4\u66f4\u65b0\uff09\u3002\u7531\u4e8e\u4e00\u4e2a\u5b8c\u6574\u7684 React Native \u9879\u76ee\u662f\u7531 Android \u9879\u76ee\u3001iOS \u9879\u76ee\u548c JavaScript \u9879\u76ee\u7ec4\u6210\u7684\uff0c\u4e14\u90fd\u6253\u5305\u5728\u4e00\u4e2a npm \u5305\u4e2d\uff0c\u6240\u4ee5\u5347\u7ea7\u53ef\u80fd\u4f1a\u6709\u4e00\u4e9b\u9ebb\u70e6\u3002\u6211\u4eec\u4f1a\u5c3d\u91cf\u7b80\u5316\u8fd9\u4e00\u6d41\u7a0b\u3002\u4f60\u53ef\u4ee5\u5728\u9879\u76ee\u76ee\u5f55\u4e0b\u4f7f\u7528npx react-native info\u547d\u4ee4\u67e5\u770b\u5f53\u524d\u7684\u7248\u672c\u3002","sidebar":"docs"},"usecolorscheme":{"id":"usecolorscheme","title":"useColorScheme","description":"useColorScheme \u8fd9\u4e2aReact hook \u63d0\u4f9b\u5e76\u8ba2\u9605\u6765\u81eaAppearance\u6a21\u5757\u7684\u989c\u8272\u65b9\u6848\u66f4\u65b0\u3002\u8fd4\u56de\u503c\u8868\u793a\u5f53\u524d\u7528\u6237\u9996\u9009\u7684\u989c\u8272\u65b9\u6848\u3002\u8be5\u503c\u53ef\u4ee5\u7a0d\u540e\u901a\u8fc7\u76f4\u63a5\u7528\u6237\u52a8\u4f5c\uff08\u4f8b\u5982\uff0c\u8bbe\u5907\u8bbe\u7f6e\u4e2d\u7684\u4e3b\u9898\u9009\u62e9\uff09\u6216\u6839\u636e\u65f6\u95f4\u8868\uff08\u4f8b\u5982\uff0c\u9075\u5faa\u767d\u5929/\u591c\u665a\u5468\u671f\u7684\u4eae\u4e3b\u9898\u548c\u6697\u4e3b\u9898\uff09\u6765\u66f4\u65b0\u3002","sidebar":"api"},"usewindowdimensions":{"id":"usewindowdimensions","title":"useWindowDimensions","description":"useWindowDimensions\u4f1a\u5728\u5c4f\u5e55\u5c3a\u5bf8\u53d8\u5316\u65f6\u81ea\u52a8\u66f4\u65b0\u83b7\u53d6\u5230\u7684\u8bbe\u5907width\u548cheight\u503c\u3002\u4f7f\u7528\u65b9\u6cd5\u5982\u4e0b\uff1a","sidebar":"api"},"using-a-listview":{"id":"using-a-listview","title":"\u4f7f\u7528\u957f\u5217\u8868","description":"React Native \u63d0\u4f9b\u4e86\u51e0\u4e2a\u9002\u7528\u4e8e\u5c55\u793a\u957f\u5217\u8868\u6570\u636e\u7684\u7ec4\u4ef6\uff0c\u4e00\u822c\u800c\u8a00\u6211\u4eec\u4f1a\u9009\u7528FlatList\u6216\u662fSectionList\u3002","sidebar":"docs"},"using-a-scrollview":{"id":"using-a-scrollview","title":"\u4f7f\u7528\u6eda\u52a8\u89c6\u56fe","description":"ScrollView\u662f\u4e00\u4e2a\u901a\u7528\u7684\u53ef\u6eda\u52a8\u7684\u5bb9\u5668\uff0c\u4f60\u53ef\u4ee5\u5728\u5176\u4e2d\u653e\u5165\u591a\u4e2a\u7ec4\u4ef6\u548c\u89c6\u56fe\uff0c\u800c\u4e14\u8fd9\u4e9b\u7ec4\u4ef6\u5e76\u4e0d\u9700\u8981\u662f\u540c\u7c7b\u578b\u7684\u3002ScrollView \u4e0d\u4ec5\u53ef\u4ee5\u5782\u76f4\u6eda\u52a8\uff0c\u8fd8\u80fd\u6c34\u5e73\u6eda\u52a8\uff08\u901a\u8fc7horizontal\u5c5e\u6027\u6765\u8bbe\u7f6e\uff09\u3002","sidebar":"docs"},"vibration":{"id":"vibration","title":"Vibration","description":"\u4f7f\u8bbe\u5907\u632f\u52a8\u3002","sidebar":"api"},"view":{"id":"view","title":"View","description":"\u4f5c\u4e3a\u521b\u5efa UI \u65f6\u6700\u57fa\u7840\u7684\u7ec4\u4ef6\uff0cView \u662f\u4e00\u4e2a\u652f\u6301 Flexbox \u5e03\u5c40\u3001\u6837\u5f0f\u3001\u89e6\u6478\u54cd\u5e94\u3001\u548c\u4e00\u4e9b\u65e0\u969c\u788d\u529f\u80fd\u7684\u5bb9\u5668\u3002\u4e0d\u8bba\u5728\u4ec0\u4e48\u5e73\u53f0\u4e0a\uff0cView \u90fd\u76f4\u63a5\u5bf9\u5e94\u5f53\u524d\u5e73\u53f0\u7684\u539f\u751f\u89c6\u56fe\uff0c\u65e0\u8bba\u5b83\u662f UIView\u3001div \u8fd8\u662f android.view.View\u3002","sidebar":"\u7ec4\u4ef6"},"view-flattening":{"id":"view-flattening","title":"\u89c6\u56fe\u62cd\u5e73","description":"This document refers to the architecture of the new renderer, Fabric, that is in active roll-out."},"view-style-props":{"id":"view-style-props","title":"View \u6837\u5f0f\u5c5e\u6027","description":"\u793a\u4f8b","sidebar":"\u7ec4\u4ef6"},"viewpagerandroid":{"id":"viewpagerandroid","title":"\ud83d\udea7 ViewPagerAndroid","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/viewpager instead."},"viewtoken":{"id":"viewtoken","title":"ViewToken \u5bf9\u8c61","description":"ViewToken object is returned as one of properties in the onViewableItemsChanged callback, for example in FlatList component. It is exported by ViewabilityHelper.js.","sidebar":"\u7ec4\u4ef6"},"virtualizedlist":{"id":"virtualizedlist","title":"VirtualizedList","description":"FlatList\u548cSectionList\u7684\u5e95\u5c42\u5b9e\u73b0\u3002FlatList \u548c SectionList \u4f7f\u7528\u8d77\u6765\u66f4\u65b9\u4fbf\uff0c\u540c\u65f6\u4e5f\u6709\u76f8\u5bf9\u66f4\u8be6\u7ec6\u7684\u6587\u6863\u3002\u4e00\u822c\u6765\u8bf4\uff0c\u4ec5\u5f53\u60f3\u83b7\u5f97\u6bd4 FlatList \u66f4\u9ad8\u7684\u7075\u6d3b\u6027\uff08\u6bd4\u5982\u8bf4\u5728\u4f7f\u7528 immutable data \u800c\u4e0d\u662f \u666e\u901a\u6570\u7ec4\uff09\u7684\u65f6\u5019\uff0c\u4f60\u624d\u5e94\u8be5\u8003\u8651\u4f7f\u7528 VirtualizedList\u3002","sidebar":"\u7ec4\u4ef6"},"xplat-implementation":{"id":"xplat-implementation","title":"\u8de8\u5e73\u53f0\u7684\u5b9e\u73b0","description":"This document refers to the architecture of the new renderer, Fabric, that is in active roll-out."}}}}')}}]); \ No newline at end of file diff --git a/assets/js/bf1307fc.46e887b0.js b/assets/js/bf1307fc.46e887b0.js deleted file mode 100644 index 70b79d1c3e4..00000000000 --- a/assets/js/bf1307fc.46e887b0.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -exports.id = 9525; -exports.ids = [9525]; -exports.modules = { - -/***/ 31413: -/***/ ((module) => { - -module.exports = /*#__PURE__*/JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":"unreleased","badge":true,"noIndex":false,"className":"docs-version-current","isLast":false,"docsSidebars":{"docs":[{"type":"category","label":"入门基础","items":[{"type":"link","label":"简介","href":"/docs/next/getting-started","docId":"getting-started","unlisted":false},{"type":"link","label":"核心组件与原生组件","href":"/docs/next/intro-react-native-components","docId":"intro-react-native-components","unlisted":false},{"type":"link","label":"React 基础","href":"/docs/next/intro-react","docId":"intro-react","unlisted":false},{"type":"link","label":"处理文本输入","href":"/docs/next/handling-text-input","docId":"handling-text-input","unlisted":false},{"type":"link","label":"使用滚动视图","href":"/docs/next/using-a-scrollview","docId":"using-a-scrollview","unlisted":false},{"type":"link","label":"使用长列表","href":"/docs/next/using-a-listview","docId":"using-a-listview","unlisted":false},{"type":"link","label":"特定平台代码","href":"/docs/next/platform-specific-code","docId":"platform-specific-code","unlisted":false},{"type":"link","label":"其他参考资源","href":"/docs/next/more-resources","docId":"more-resources","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"环境搭建","items":[{"type":"link","label":"搭建开发环境","href":"/docs/next/environment-setup","docId":"environment-setup","unlisted":false},{"type":"link","label":"集成到现有原生应用","href":"/docs/next/integration-with-existing-apps","docId":"integration-with-existing-apps","unlisted":false},{"type":"link","label":"集成到 Android Fragment","href":"/docs/next/integration-with-android-fragment","docId":"integration-with-android-fragment","unlisted":false},{"type":"link","label":"为电视和机顶盒制作应用","href":"/docs/next/building-for-tv","docId":"building-for-tv","unlisted":false},{"type":"link","label":"多平台支持","href":"/docs/next/out-of-tree-platforms","docId":"out-of-tree-platforms","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"开发流程","items":[{"type":"link","label":"在设备上运行","href":"/docs/next/running-on-device","docId":"running-on-device","unlisted":false},{"type":"link","label":"快速刷新","href":"/docs/next/fast-refresh","docId":"fast-refresh","unlisted":false},{"type":"link","label":"Metro","href":"/docs/next/metro","docId":"metro","unlisted":false},{"type":"link","label":"使用第三方库","href":"/docs/next/libraries","docId":"libraries","unlisted":false},{"type":"link","label":"使用 TypeScript","href":"/docs/next/typescript","docId":"typescript","unlisted":false},{"type":"link","label":"更新","href":"/docs/next/upgrading","docId":"upgrading","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"界面与交互","items":[{"type":"link","label":"样式","href":"/docs/next/style","docId":"style","unlisted":false},{"type":"link","label":"高度与宽度","href":"/docs/next/height-and-width","docId":"height-and-width","unlisted":false},{"type":"link","label":"使用 Flexbox 布局","href":"/docs/next/flexbox","docId":"flexbox","unlisted":false},{"type":"link","label":"图片","href":"/docs/next/images","docId":"images","unlisted":false},{"type":"link","label":"颜色","href":"/docs/next/colors","docId":"colors","unlisted":false},{"type":"category","label":"交互","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"处理触摸事件","href":"/docs/next/handling-touches","docId":"handling-touches","unlisted":false},{"type":"link","label":"使用导航器跳转页面","href":"/docs/next/navigation","docId":"navigation","unlisted":false},{"type":"link","label":"动画","href":"/docs/next/animations","docId":"animations","unlisted":false},{"type":"link","label":"手势响应系统","href":"/docs/next/gesture-responder-system","docId":"gesture-responder-system","unlisted":false}]},{"type":"category","label":"网络连接","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"访问网络","href":"/docs/next/network","docId":"network","unlisted":false},{"type":"link","label":"网络安全策略","href":"/docs/next/security","docId":"security","unlisted":false}]},{"type":"category","label":"包容性","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"无障碍功能","href":"/docs/next/accessibility","docId":"accessibility","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"调试","items":[{"type":"link","label":"调试","href":"/docs/next/debugging","docId":"debugging","unlisted":false},{"type":"link","label":"React Native 开发者工具","href":"/docs/next/react-native-devtools","docId":"react-native-devtools","unlisted":false},{"type":"link","label":"调试原生代码","href":"/docs/next/debugging-native-code","docId":"debugging-native-code","unlisted":false},{"type":"link","label":"调试发行版本","href":"/docs/next/debugging-release-builds","docId":"debugging-release-builds","unlisted":false},{"type":"link","label":"其他调试方法","href":"/docs/next/other-debugging-methods","docId":"other-debugging-methods","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"测试","items":[{"type":"link","label":"Testing","href":"/docs/next/testing-overview","docId":"testing-overview","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"性能调优","items":[{"type":"link","label":"性能综述","href":"/docs/next/performance","docId":"performance","unlisted":false},{"type":"link","label":"优化编译速度","href":"/docs/next/build-speed","docId":"build-speed","unlisted":false},{"type":"link","label":"列表配置优化","href":"/docs/next/optimizing-flatlist-configuration","docId":"optimizing-flatlist-configuration","unlisted":false},{"type":"link","label":"Optimizing JavaScript loading","href":"/docs/next/optimizing-javascript-loading","docId":"optimizing-javascript-loading","unlisted":false},{"type":"link","label":"Profiling","href":"/docs/next/profiling","docId":"profiling","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"JavaScript 运行环境","items":[{"type":"link","label":"JavaScript 环境","href":"/docs/next/javascript-environment","docId":"javascript-environment","unlisted":false},{"type":"link","label":"定时器","href":"/docs/next/timers","docId":"timers","unlisted":false},{"type":"link","label":"使用新的 Hermes 引擎","href":"/docs/next/hermes","docId":"hermes","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Codegen","items":[{"type":"link","label":"什么是 Codegen?","href":"/docs/next/the-new-architecture/what-is-codegen","docId":"the-new-architecture/what-is-codegen","unlisted":false},{"type":"link","label":"使用 Codegen","href":"/docs/next/the-new-architecture/using-codegen","docId":"the-new-architecture/using-codegen","unlisted":false},{"type":"link","label":"Codegen 命令行工具","href":"/docs/next/the-new-architecture/codegen-cli","docId":"the-new-architecture/codegen-cli","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"原生开发","items":[{"type":"link","label":"桥接原生平台能力","href":"/docs/next/native-platform","docId":"native-platform","unlisted":false},{"type":"category","label":"原生模块","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Turbo 原生模块介绍","href":"/docs/next/turbo-native-modules-introduction","docId":"turbo-native-modules-introduction","unlisted":false},{"type":"link","label":"使用 C++ 实现跨平台的原生模块","href":"/docs/next/the-new-architecture/pure-cxx-modules","docId":"the-new-architecture/pure-cxx-modules","unlisted":false},{"type":"link","label":"高级:自定义 C++ 类型","href":"/docs/next/the-new-architecture/custom-cxx-types","docId":"the-new-architecture/custom-cxx-types","unlisted":false}]},{"type":"category","label":"原生 UI 组件","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Fabric Native Components Introduction","href":"/docs/next/fabric-native-components-introduction","docId":"fabric-native-components-introduction","unlisted":false}]},{"type":"category","label":"其他","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"appendix","href":"/docs/next/appendix","docId":"appendix","unlisted":false},{"type":"link","label":"创建模块库","href":"/docs/next/the-new-architecture/create-module-library","docId":"the-new-architecture/create-module-library","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"Android 与 iOS 指南","items":[{"type":"category","label":"Android","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Headless JS(后台任务)","href":"/docs/next/headless-js-android","docId":"headless-js-android","unlisted":false},{"type":"link","label":"打包发布","href":"/docs/next/signed-apk-android","docId":"signed-apk-android","unlisted":false},{"type":"link","label":"和原生端通信","href":"/docs/next/communication-android","docId":"communication-android","unlisted":false},{"type":"link","label":"React Native Gradle Plugin","href":"/docs/next/react-native-gradle-plugin","docId":"react-native-gradle-plugin","unlisted":false}]},{"type":"category","label":"iOS","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"链接原生库","href":"/docs/next/linking-libraries-ios","docId":"linking-libraries-ios","unlisted":false},{"type":"link","label":"在iOS模拟器上运行","href":"/docs/next/running-on-simulator-ios","docId":"running-on-simulator-ios","unlisted":false},{"type":"link","label":"和原生端通信","href":"/docs/next/communication-ios","docId":"communication-ios","unlisted":false},{"type":"link","label":"iOS 应用小组件","href":"/docs/next/app-extensions","docId":"app-extensions","unlisted":false},{"type":"link","label":"上架 App Store","href":"/docs/next/publishing-to-app-store","docId":"publishing-to-app-store","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"旧架构","items":[{"type":"category","label":"原生模块(旧架构)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"原生模块简介","href":"/docs/next/legacy/native-modules-intro","docId":"legacy/native-modules-intro","unlisted":false},{"type":"link","label":"Android 原生模块","href":"/docs/next/legacy/native-modules-android","docId":"legacy/native-modules-android","unlisted":false},{"type":"link","label":"iOS 原生模块","href":"/docs/next/legacy/native-modules-ios","docId":"legacy/native-modules-ios","unlisted":false},{"type":"link","label":"Native Modules NPM Package Setup","href":"/docs/next/legacy/native-modules-setup","docId":"legacy/native-modules-setup","unlisted":false},{"type":"link","label":"Local libraries setup","href":"/docs/next/legacy/local-library-setup","docId":"legacy/local-library-setup","unlisted":false}]},{"type":"category","label":"原生 UI 组件(旧架构)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Android 原生UI组件","href":"/docs/next/legacy/native-components-android","docId":"legacy/native-components-android","unlisted":false},{"type":"link","label":"iOS 原生UI组件","href":"/docs/next/legacy/native-components-ios","docId":"legacy/native-components-ios","unlisted":false},{"type":"link","label":"直接操作","href":"/docs/next/legacy/direct-manipulation","docId":"legacy/direct-manipulation","unlisted":false}]}],"collapsed":true,"collapsible":true}],"api":[{"type":"category","label":"APIs","items":[{"type":"link","label":"AccessibilityInfo","href":"/docs/next/accessibilityinfo","docId":"accessibilityinfo","unlisted":false},{"type":"link","label":"Alert","href":"/docs/next/alert","docId":"alert","unlisted":false},{"type":"link","label":"Animated","href":"/docs/next/animated","docId":"animated","unlisted":false},{"type":"link","label":"Animated.Value","href":"/docs/next/animatedvalue","docId":"animatedvalue","unlisted":false},{"type":"link","label":"Animated.ValueXY","href":"/docs/next/animatedvaluexy","docId":"animatedvaluexy","unlisted":false},{"type":"link","label":"Appearance","href":"/docs/next/appearance","docId":"appearance","unlisted":false},{"type":"link","label":"AppRegistry","href":"/docs/next/appregistry","docId":"appregistry","unlisted":false},{"type":"link","label":"AppState","href":"/docs/next/appstate","docId":"appstate","unlisted":false},{"type":"link","label":"DevSettings","href":"/docs/next/devsettings","docId":"devsettings","unlisted":false},{"type":"link","label":"Dimensions","href":"/docs/next/dimensions","docId":"dimensions","unlisted":false},{"type":"link","label":"Easing","href":"/docs/next/easing","docId":"easing","unlisted":false},{"type":"link","label":"InteractionManager","href":"/docs/next/interactionmanager","docId":"interactionmanager","unlisted":false},{"type":"link","label":"Keyboard","href":"/docs/next/keyboard","docId":"keyboard","unlisted":false},{"type":"link","label":"LayoutAnimation","href":"/docs/next/layoutanimation","docId":"layoutanimation","unlisted":false},{"type":"link","label":"Linking","href":"/docs/next/linking","docId":"linking","unlisted":false},{"type":"link","label":"PanResponder","href":"/docs/next/panresponder","docId":"panresponder","unlisted":false},{"type":"link","label":"PixelRatio","href":"/docs/next/pixelratio","docId":"pixelratio","unlisted":false},{"type":"link","label":"Platform","href":"/docs/next/platform","docId":"platform","unlisted":false},{"type":"link","label":"PlatformColor","href":"/docs/next/platformcolor","docId":"platformcolor","unlisted":false},{"type":"link","label":"RootTag","href":"/docs/next/roottag","docId":"roottag","unlisted":false},{"type":"link","label":"Share","href":"/docs/next/share","docId":"share","unlisted":false},{"type":"link","label":"StyleSheet","href":"/docs/next/stylesheet","docId":"stylesheet","unlisted":false},{"type":"link","label":"Systrace","href":"/docs/next/systrace","docId":"systrace","unlisted":false},{"type":"link","label":"变换(Transform)","href":"/docs/next/transforms","docId":"transforms","unlisted":false},{"type":"link","label":"Vibration","href":"/docs/next/vibration","docId":"vibration","unlisted":false},{"type":"category","label":"Hooks","collapsed":false,"items":[{"type":"link","label":"useColorScheme","href":"/docs/next/usecolorscheme","docId":"usecolorscheme","unlisted":false},{"type":"link","label":"useWindowDimensions","href":"/docs/next/usewindowdimensions","docId":"usewindowdimensions","unlisted":false}],"collapsible":true},{"type":"category","label":"Android API","collapsed":false,"items":[{"type":"link","label":"BackHandler","href":"/docs/next/backhandler","docId":"backhandler","unlisted":false},{"type":"link","label":"PermissionsAndroid","href":"/docs/next/permissionsandroid","docId":"permissionsandroid","unlisted":false},{"type":"link","label":"ToastAndroid","href":"/docs/next/toastandroid","docId":"toastandroid","unlisted":false}],"collapsible":true},{"type":"category","label":"iOS API","collapsed":false,"items":[{"type":"link","label":"ActionSheetIOS","href":"/docs/next/actionsheetios","docId":"actionsheetios","unlisted":false},{"type":"link","label":"DynamicColorIOS","href":"/docs/next/dynamiccolorios","docId":"dynamiccolorios","unlisted":false},{"type":"link","label":"Settings","href":"/docs/next/settings","docId":"settings","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true}],"组件":[{"type":"category","label":"核心组件","items":[{"type":"link","label":"核心组件和API","href":"/docs/next/components-and-apis","docId":"components-and-apis","unlisted":false},{"type":"link","label":"ActivityIndicator","href":"/docs/next/activityindicator","docId":"activityindicator","unlisted":false},{"type":"link","label":"Button","href":"/docs/next/button","docId":"button","unlisted":false},{"type":"link","label":"FlatList","href":"/docs/next/flatlist","docId":"flatlist","unlisted":false},{"type":"link","label":"Image","href":"/docs/next/image","docId":"image","unlisted":false},{"type":"link","label":"ImageBackground","href":"/docs/next/imagebackground","docId":"imagebackground","unlisted":false},{"type":"link","label":"KeyboardAvoidingView","href":"/docs/next/keyboardavoidingview","docId":"keyboardavoidingview","unlisted":false},{"type":"link","label":"Modal","href":"/docs/next/modal","docId":"modal","unlisted":false},{"type":"link","label":"Pressable","href":"/docs/next/pressable","docId":"pressable","unlisted":false},{"type":"link","label":"RefreshControl","href":"/docs/next/refreshcontrol","docId":"refreshcontrol","unlisted":false},{"type":"link","label":"ScrollView","href":"/docs/next/scrollview","docId":"scrollview","unlisted":false},{"type":"link","label":"SectionList","href":"/docs/next/sectionlist","docId":"sectionlist","unlisted":false},{"type":"link","label":"StatusBar","href":"/docs/next/statusbar","docId":"statusbar","unlisted":false},{"type":"link","label":"Switch","href":"/docs/next/switch","docId":"switch","unlisted":false},{"type":"link","label":"Text","href":"/docs/next/text","docId":"text","unlisted":false},{"type":"link","label":"TextInput","href":"/docs/next/textinput","docId":"textinput","unlisted":false},{"type":"link","label":"TouchableHighlight","href":"/docs/next/touchablehighlight","docId":"touchablehighlight","unlisted":false},{"type":"link","label":"TouchableOpacity","href":"/docs/next/touchableopacity","docId":"touchableopacity","unlisted":false},{"type":"link","label":"TouchableWithoutFeedback","href":"/docs/next/touchablewithoutfeedback","docId":"touchablewithoutfeedback","unlisted":false},{"type":"link","label":"View","href":"/docs/next/view","docId":"view","unlisted":false},{"type":"link","label":"VirtualizedList","href":"/docs/next/virtualizedlist","docId":"virtualizedlist","unlisted":false},{"type":"category","label":"Android 组件","collapsed":false,"items":[{"type":"link","label":"DrawerLayoutAndroid","href":"/docs/next/drawerlayoutandroid","docId":"drawerlayoutandroid","unlisted":false},{"type":"link","label":"TouchableNativeFeedback","href":"/docs/next/touchablenativefeedback","docId":"touchablenativefeedback","unlisted":false}],"collapsible":true},{"type":"category","label":"iOS 组件","collapsed":false,"items":[{"type":"link","label":"InputAccessoryView","href":"/docs/next/inputaccessoryview","docId":"inputaccessoryview","unlisted":false},{"type":"link","label":"SafeAreaView","href":"/docs/next/safeareaview","docId":"safeareaview","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Props","items":[{"type":"link","label":"图片样式属性","href":"/docs/next/image-style-props","docId":"image-style-props","unlisted":false},{"type":"link","label":"布局属性","href":"/docs/next/layout-props","docId":"layout-props","unlisted":false},{"type":"link","label":"阴影样式属性","href":"/docs/next/shadow-props","docId":"shadow-props","unlisted":false},{"type":"link","label":"Text 样式属性","href":"/docs/next/text-style-props","docId":"text-style-props","unlisted":false},{"type":"link","label":"View 样式属性","href":"/docs/next/view-style-props","docId":"view-style-props","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"内部对象类型","items":[{"type":"link","label":"布局事件对象","href":"/docs/next/layoutevent","docId":"layoutevent","unlisted":false},{"type":"link","label":"点击事件对象","href":"/docs/next/pressevent","docId":"pressevent","unlisted":false},{"type":"link","label":"React 节点对象","href":"/docs/next/react-node","docId":"react-node","unlisted":false},{"type":"link","label":"矩形区域对象","href":"/docs/next/rect","docId":"rect","unlisted":false},{"type":"link","label":"ViewToken 对象","href":"/docs/next/viewtoken","docId":"viewtoken","unlisted":false}],"collapsed":true,"collapsible":true}]},"docs":{"accessibility":{"id":"accessibility","title":"无障碍功能","description":"译注:accessibility 一词常见多种译法:可访问性、无障碍性、辅助功能等等,其中文意思都不太能准确表达其功能的本质——即为残障人士提供便利。本文主要采用“无障碍功能”和“辅助技术/服务”的说法。如果你或你的公司暂时没有资源和精力去服务这些用户,那么你可以跳过本文。但是,译者个人希望借本文档,呼吁有能力有资源的商业公司/组织/个人,重视残障人士使用智能手机的权利。","sidebar":"docs"},"accessibilityinfo":{"id":"accessibilityinfo","title":"AccessibilityInfo","description":"有时候我们希望知道用户的设备是否正在运行读屏应用。AccessibilityInfo正是用于此目的。你可以用它来查询读屏应用的当前状态,并且可以监听其状态变化。","sidebar":"api"},"actionsheetios":{"id":"actionsheetios","title":"ActionSheetIOS","description":"显示一个 iOS 原生的Action Sheet组件。","sidebar":"api"},"activityindicator":{"id":"activityindicator","title":"ActivityIndicator","description":"显示一个圆形的 loading 提示符号。","sidebar":"组件"},"alert":{"id":"alert","title":"Alert","description":"启动一个提示对话框,包含对应的标题和信息。","sidebar":"api"},"alertios":{"id":"alertios","title":"AlertIOS","description":"AlertIOS用于弹出一个 iOS 提示对话框,可以通知用户一些信息或是提示用户输入一些文字。"},"animated":{"id":"animated","title":"Animated","description":"Animated库旨在使动画变得流畅,强大并易于构建和维护。Animated侧重于输入和输出之间的声明性关系,以及两者之间的可配置变换,此外还提供了简单的 start/stop方法来控制基于时间的动画执行。","sidebar":"api"},"animatedvalue":{"id":"animatedvalue","title":"Animated.Value","description":"驱动动画的一维标量值. 一个Animated.Value可以同步地驱动多个属性,但每次只能以一种动画机制变化。如果改用了其他动画机制(例如开始一个新的动画或是调用setValue),则会停止先前的动画。","sidebar":"api"},"animatedvaluexy":{"id":"animatedvaluexy","title":"Animated.ValueXY","description":"2D 值用于驱动 2D 动画,例如平移手势。与普通的Animated.Value几乎相同的 API,但是可以多路复用。在内部包含两个常规的Animated.Value。","sidebar":"api"},"animations":{"id":"animations","title":"动画","description":"流畅、有意义的动画对于移动应用用户体验来说是非常重要的。现实生活中的物体在开始移动和停下来的时候都具有一定的惯性,我们在界面中也可以使用动画来实现契合物理规律的交互。","sidebar":"docs"},"app-extensions":{"id":"app-extensions","title":"iOS 应用小组件","description":"小组件允许您在主要应用程序之外提供自定义功能和内容。iOS上有不同类型的应用小组件,它们都在App Extension编程指南中进行了介绍。在本指南中,我们将简要介绍如何在iOS上利用应用小组件的优势。","sidebar":"docs"},"appearance":{"id":"appearance","title":"Appearance","description":"Appearance 模块提供了关于用户外观偏好的信息,例如他们喜欢的颜色方案(明亮或暗黑)。","sidebar":"api"},"appendix":{"id":"appendix","title":"appendix","description":"一、术语","sidebar":"docs"},"appregistry":{"id":"appregistry","title":"AppRegistry","description":"仅适用于非沙盒项目","sidebar":"api"},"appstate":{"id":"appstate","title":"AppState","description":"AppState能告诉你应用当前是在前台还是在后台,并且能在状态变化的时候通知你。","sidebar":"api"},"architecture-glossary":{"id":"architecture-glossary","title":"术语表","description":"Fabric 渲染器(Fabric Renderer)"},"architecture-overview":{"id":"architecture-overview","title":"架构概览","description":"本文档还在持续更新中,会从概念上介绍 React Native 新架构是如何工作的。目标读者包括生态库的开发者、核心贡献者和特别有好奇心的人。"},"asyncstorage":{"id":"asyncstorage","title":"🚧 AsyncStorage","description":"已过时。 Use one of the community packages instead."},"backhandler":{"id":"backhandler","title":"BackHandler","description":"BackHandler API 用于监听设备上的后退按钮事件,可以调用你自己的函数来处理后退行为。此 API 仅能在 Android 上使用。","sidebar":"api"},"build-speed":{"id":"build-speed","title":"优化编译速度","description":"构建 React Native 应用可能会非常昂贵,并且需要开发人员花费数分钟的时间。","sidebar":"docs"},"building-for-tv":{"id":"building-for-tv","title":"为电视和机顶盒制作应用","description":"目前的 React Native 应用只需在 JavaScript 端简单修改甚至无需修改,在电视和机顶盒设备上就基本可用了。","sidebar":"docs"},"button":{"id":"button","title":"Button","description":"一个简单的跨平台的按钮组件。可以进行一些简单的定制。","sidebar":"组件"},"checkbox":{"id":"checkbox","title":"🚧 CheckBox","description":"Removed. Use one of the community packages instead."},"clipboard":{"id":"clipboard","title":"🚧 Clipboard","description":"Deprecated. Use one of the community packages instead."},"colors":{"id":"colors","title":"颜色","description":"React Native 中的组件是使用 JavaScript 进行样式化的。颜色属性通常与 Web 上的 CSS 工作方式相匹配。每个平台上关于颜色使用的一般指南如下:","sidebar":"docs"},"communication-android":{"id":"communication-android","title":"和原生端通信","description":"通过植入原生应用和原生 UI 组件两篇文档,我们学习了 React Native 和原生组件的互相整合。在整合的过程中,我们会需要在两个世界间互相通信。有些方法已经在其他的指南中提到了,这篇文章总结了所有可行的技术。","sidebar":"docs"},"communication-ios":{"id":"communication-ios","title":"和原生端通信","description":"通过植入原生应用和原生 UI 组件两篇文档,我们学习了 React Native 和原生组件的互相整合。在整合的过程中,我们会需要在两个世界间互相通信。有些方法已经在其他的指南中提到了,这篇文章总结了所有可行的技术。","sidebar":"docs"},"components-and-apis":{"id":"components-and-apis","title":"核心组件和API","description":"React Native 提供了一些内置的核心组件供你使用。你可以在网站的左侧看到组件的完整列表。如果你不知道从哪看起,那么可以先看一下下面这个简单的分类:","sidebar":"组件"},"custom-webview-android":{"id":"custom-webview-android","title":"Custom WebView","description":"While the built-in web view has a lot of features, it is not possible to handle every use-case in React Native. You can, however, extend the web view with native code without forking React Native or duplicating all the existing web view code."},"custom-webview-ios":{"id":"custom-webview-ios","title":"Custom WebView","description":"While the built-in web view has a lot of features, it is not possible to handle every use-case in React Native. You can, however, extend the web view with native code without forking React Native or duplicating all the existing web view code."},"datepickerandroid":{"id":"datepickerandroid","title":"🚧 DatePickerAndroid","description":"Deprecated. Use one of the community packages instead."},"datepickerios":{"id":"datepickerios","title":"🚧 DatePickerIOS","description":"Deprecated. Use one of the community packages instead."},"debugging":{"id":"debugging","title":"调试","description":"访问 App 内的开发菜单","sidebar":"docs"},"debugging-native-code":{"id":"debugging-native-code","title":"调试原生代码","description":"Projects with Native Code Only","sidebar":"docs"},"debugging-release-builds":{"id":"debugging-release-builds","title":"调试发行版本","description":"符号化堆栈跟踪","sidebar":"docs"},"devsettings":{"id":"devsettings","title":"DevSettings","description":"DevSettings 模块可以对开发者菜单进行一些自定义。","sidebar":"api"},"dimensions":{"id":"dimensions","title":"Dimensions","description":"本模块用于获取设备屏幕的宽高。","sidebar":"api"},"drawerlayoutandroid":{"id":"drawerlayoutandroid","title":"DrawerLayoutAndroid","description":"封装了 Android 平台DrawerLayout的 React 组件。抽屉(通常用于导航切换)是通过renderNavigationView方法渲染的,并且 DrawerLayoutAndroid 的直接子视图会成为主视图(用于放置内容)。导航视图一开始在屏幕上并不可见,不过可以从drawerPosition指定的窗口侧面拖拽出来,并且抽屉的宽度可以使用drawerWidth属性来指定。","sidebar":"组件"},"dynamiccolorios":{"id":"dynamiccolorios","title":"DynamicColorIOS","description":"DynamicColorIOS函数是专门针对iOS平台的颜色类型。","sidebar":"api"},"easing":{"id":"easing","title":"Easing","description":"Easing模块实现了常见的动画缓动函数。 这个模块被Animated.timing()用于在动画中传达真实可信的运动。","sidebar":"api"},"environment-setup":{"id":"environment-setup","title":"搭建开发环境","description":"欢迎使用 React Native!这篇文档会帮助你搭建基本的 React Native 开发环境。","sidebar":"docs"},"fabric-native-components-android":{"id":"fabric-native-components-android","title":"Fabric Native Modules: Android","description":"现在,是时候编写一些 Android 平台代码,以便能够渲染 web 视图。以下是需要的步骤:"},"fabric-native-components-introduction":{"id":"fabric-native-components-introduction","title":"Fabric Native Components Introduction","description":"如果你想构建一个 新架构 的 React Native 组件,该组件可以包装一个 Host Component,例如 Android 上的 CheckBox,或者 iOS 上的 UIButton,你应该使用 Fabric 原生组件。","sidebar":"docs"},"fabric-native-components-ios":{"id":"fabric-native-components-ios","title":"Fabric Native Components: iOS","description":"现在,是时候编写一些 iOS 平台代码,以便能够渲染 web 视图。以下是需要的步骤:"},"fabric-renderer":{"id":"fabric-renderer","title":"Fabric 渲染器","description":"Fabric 是 React Native 新架构的渲染系统,是从老架构的渲染系统演变而来的。核心原理是在 C++ 层统一更多的渲染逻辑,提升与宿主平台(host platforms)互操作性,并为 React Native 解锁更多能力。其研发始于 2018 年。从 2021 年开始, Facebook App 中的 React Native 启用了新的渲染器。"},"fast-refresh":{"id":"fast-refresh","title":"快速刷新","description":"快速刷新是 React Native 一个特性,在修改组件的时候快速刷新会给你一个即时的反馈。快速刷新默认是开启的,可以通过调整 React Native 开发者菜单里面的 \\"Enable Fast Refresh\\" 来开启或关闭。在快速刷新开启的时候,大多数的修改能在一到两秒之内呈现。","sidebar":"docs"},"flatlist":{"id":"flatlist","title":"FlatList","description":"高性能的简单列表组件,支持下面这些常用的功能:","sidebar":"组件"},"flexbox":{"id":"flexbox","title":"使用 Flexbox 布局","description":"我们在 React Native 中使用 flexbox 规则来指定某个组件的子元素的布局。Flexbox 可以在不同屏幕尺寸上提供一致的布局结构。","sidebar":"docs"},"gesture-responder-system":{"id":"gesture-responder-system","title":"手势响应系统","description":"移动设备上的手势识别要比在 web 上复杂得多。用户的一次触摸操作的真实意图是什么,App 要经过好几个阶段才能判断。比如 App 需要判断用户的触摸到底是在滚动页面,还是滑动一个 widget,或者只是一个单纯的点击。甚至随着持续时间的不同,这些操作还会转化。此外,还有多点同时触控的情况。","sidebar":"docs"},"getting-started":{"id":"getting-started","title":"简介","description":"欢迎开启 React Native 的旅程!如果你在找如何搭建环境的文档,请移步搭建开发环境。 继续往下阅读可了解关于文档结构、原生组件、React等相关的一些介绍。","sidebar":"docs"},"handling-text-input":{"id":"handling-text-input","title":"处理文本输入","description":"TextInput是一个允许用户输入文本的基础组件。它有一个名为onChangeText的属性,此属性接受一个函数,而此函数会在文本变化时被调用。另外还有一个名为onSubmitEditing的属性,会在文本被提交后(用户按下软键盘上的提交键)调用。","sidebar":"docs"},"handling-touches":{"id":"handling-touches","title":"处理触摸事件","description":"移动应用上的用户交互基本靠“摸”。当然,“摸”也是有各种姿势的:在一个按钮上点击,在一个列表上滑动,或是在一个地图上缩放。React Native 提供了可以处理常见触摸手势(例如点击或滑动)的组件, 以及可用于识别更复杂的手势的完整的手势响应系统。","sidebar":"docs"},"headless-js-android":{"id":"headless-js-android","title":"Headless JS(后台任务)","description":"Headless JS 是一种使用 js 在后台执行任务的方法。它可以用来在后台同步数据、处理推送通知或是播放音乐等等。","sidebar":"docs"},"height-and-width":{"id":"height-and-width","title":"高度与宽度","description":"组件的高度和宽度决定了其在屏幕上显示的尺寸。","sidebar":"docs"},"hermes":{"id":"hermes","title":"使用新的 Hermes 引擎","description":"Hermes 是专门针对 React Native 应用而优化的全新开源 JavaScript 引擎。对于很多应用来说,启用 Hermes 引擎可以优化启动时间,减少内存占用以及空间占用。从 React Native 0.70 版本开始 Hermes 已经默认启用,无需开发者再做任何配置。","sidebar":"docs"},"image":{"id":"image","title":"Image","description":"用于显示多种不同类型图片的 React 组件,包括网络图片、静态资源、临时的本地图片、以及本地磁盘上的图片(如相册)等。","sidebar":"组件"},"image-style-props":{"id":"image-style-props","title":"图片样式属性","description":"示例","sidebar":"组件"},"imagebackground":{"id":"imagebackground","title":"ImageBackground","description":"对于熟悉 Web 开发的开发人员来说,background-image是一个常见的功能请求。为了处理这种情况,您可以使用`组件,它具有与`相同的属性,并且可以添加任何子元素以覆盖在其上面。","sidebar":"组件"},"imagepickerios":{"id":"imagepickerios","title":"🚧 ImagePickerIOS","description":"Deprecated. Use one of the community packages instead."},"images":{"id":"images","title":"图片","description":"静态图片资源","sidebar":"docs"},"improvingux":{"id":"improvingux","title":"改进用户体验","description":"配置文本输入"},"inputaccessoryview":{"id":"inputaccessoryview","title":"InputAccessoryView","description":"一个可以在iOS上自定义键盘输入辅助视图的组件。当TextInput获得焦点时,输入辅助视图显示在键盘上方。该组件可用于创建自定义工具栏。","sidebar":"组件"},"integration-with-android-fragment":{"id":"integration-with-android-fragment","title":"集成到 Android Fragment","description":"与现有应用程序集成指南中详细介绍了如何将全屏 React Native 应用程序作为 Activity 集成到现有 Android 应用程序中。要在现有应用程序的 Fragments 中使用 React Native 组件,需要进行一些额外的设置。这样做的好处是它允许原生应用程序将 React Native 组件与 Activity 中的原生 Fragments 集成在一起。","sidebar":"docs"},"integration-with-existing-apps":{"id":"integration-with-existing-apps","title":"集成到现有原生应用","description":"如果你正准备从头开始制作一个新的应用,那么 React Native 会是个非常好的选择。但如果你只想给现有的原生应用中添加一两个视图或是业务流程,React Native 也同样不在话下。只需简单几步,你就可以给原有应用加上新的基于 React Native 的特性、画面和视图等。","sidebar":"docs"},"interactionmanager":{"id":"interactionmanager","title":"InteractionManager","description":"Interactionmanager 可以将一些耗时较长的工作安排到所有互动或动画完成之后再进行。这样可以保证 JavaScript 动画的流畅运行。","sidebar":"api"},"intro-react":{"id":"intro-react","title":"React 基础","description":"要深入理解 React Native,需要扎实的React 基础知识。这篇小教程可以帮助你入门或者温习相关知识。","sidebar":"docs"},"intro-react-native-components":{"id":"intro-react-native-components","title":"核心组件与原生组件","description":"React Native 使用完全原生的组件来构建应用界面。尤其方便的是它已经内置了大量直接上手可用的核心组件。","sidebar":"docs"},"javascript-environment":{"id":"javascript-environment","title":"JavaScript 环境","description":"JavaScript 运行时环境","sidebar":"docs"},"keyboard":{"id":"keyboard","title":"Keyboard","description":"Keyboard模块用来控制键盘相关的事件。","sidebar":"api"},"keyboardavoidingview":{"id":"keyboardavoidingview","title":"KeyboardAvoidingView","description":"本组件用于解决一个常见的尴尬问题:手机上弹出的键盘常常会挡住当前的视图。本组件可以自动根据键盘的高度,调整自身的 height 或底部的 padding,以避免被遮挡。","sidebar":"组件"},"layout-props":{"id":"layout-props","title":"布局属性","description":"更多关于这些属性的详细示例可以在Flexbox 布局页面上找到。","sidebar":"组件"},"layoutanimation":{"id":"layoutanimation","title":"LayoutAnimation","description":"当布局变化时,自动将视图运动到它们新的位置上。","sidebar":"api"},"layoutevent":{"id":"layoutevent","title":"布局事件对象","description":"LayoutEvent object is returned in the callback as a result of component layout change, for example onLayout in View component.","sidebar":"组件"},"legacy/direct-manipulation":{"id":"legacy/direct-manipulation","title":"直接操作","description":"有时候我们需要直接改动组件并触发局部的刷新,但不使用 state 或是 props。譬如在浏览器中使用 React 库,有时候会需要直接修改一个 DOM 节点,而在手机 App 中操作 View 时也会碰到同样的情况。在 React Native 中,setNativeProps就是等价于直接操作 DOM 节点的方法。","sidebar":"docs"},"legacy/local-library-setup":{"id":"legacy/local-library-setup","title":"Local libraries setup","description":"A local library is a library containing views or modules that\'s local to your app and not published to a registry. This is different from the traditional setup for view and modules in the sense that a local library is decoupled from your app\'s native code.","sidebar":"docs"},"legacy/native-components-android":{"id":"legacy/native-components-android","title":"Android 原生UI组件","description":"在如今的 App 中,已经有成千上万的原生 UI 部件了——其中的一些是平台的一部分,另一些可能来自于一些第三方库,而且可能你自己还收藏了很多。React Native 已经封装了大部分最常见的组件,譬如ScrollView和TextInput,但不可能封装全部组件。而且,说不定你曾经为自己以前的 App 还封装过一些组件,React Native 肯定没法包含它们。幸运的是,在 React Naitve 应用程序中封装和植入已有的组件非常简单。","sidebar":"docs"},"legacy/native-components-ios":{"id":"legacy/native-components-ios","title":"iOS 原生UI组件","description":"在如今的 App 中,已经有成千上万的原生 UI 部件了——其中的一些是平台的一部分,另一些可能来自于一些第三方库,而且可能你自己还收藏了很多。React Native 已经封装了大部分最常见的组件,譬如ScrollView和TextInput,但不可能封装全部组件。而且,说不定你曾经为自己以前的 App 还封装过一些组件,React Native 肯定没法包含它们。幸运的是,在 React Naitve 应用程序中封装和植入已有的组件非常简单。","sidebar":"docs"},"legacy/native-modules-android":{"id":"legacy/native-modules-android","title":"Android 原生模块","description":"欢迎来到 Android 的原生模块。请先阅读 原生模块简介 以了解原生模块的基本概念。","sidebar":"docs"},"legacy/native-modules-intro":{"id":"legacy/native-modules-intro","title":"原生模块简介","description":"有时候 App 需要访问平台 API,但 React Native 可能还没有相应的模块包装;或者你需要复用一些 Java 代码,而不是用 Javascript 重新实现一遍;又或者你需要实现某些高性能的、多线程的代码,譬如图片处理、数据库、或者各种高级扩展等等。","sidebar":"docs"},"legacy/native-modules-ios":{"id":"legacy/native-modules-ios","title":"iOS 原生模块","description":"有时候 App 需要访问平台 API,但 React Native 可能还没有相应的模块封装;或者你需要复用 Objective-C、Swift 或 C++代码,而不是用 JavaScript 重新实现一遍;又或者你需要实现某些高性能、多线程的代码,譬如图片处理、数据库、或者各种高级扩展等等。","sidebar":"docs"},"legacy/native-modules-setup":{"id":"legacy/native-modules-setup","title":"Native Modules NPM Package Setup","description":"Native modules are usually distributed as npm packages, except that on top of the usual JavaScript they will include some native code per platform. To understand more about npm packages you may find this guide useful.","sidebar":"docs"},"libraries":{"id":"libraries","title":"使用第三方库","description":"This guide introduces React Native developers to finding, installing, and using third-party libraries in their apps.","sidebar":"docs"},"linking":{"id":"linking","title":"Linking","description":"Linking提供了一个通用的接口来与传入和传出的 App 链接进行交互。","sidebar":"api"},"linking-libraries-ios":{"id":"linking-libraries-ios","title":"链接原生库","description":"并不是所有的 APP 都需要使用全部的原生功能,包含支持全部特性的代码会增大应用的体积。但我们仍然希望能让你简单地根据自己的需求添加需要的特性。","sidebar":"docs"},"metro":{"id":"metro","title":"Metro","description":"React Native 使用Metro构建 JavaScript 代码和资源。","sidebar":"docs"},"modal":{"id":"modal","title":"Modal","description":"Modal 组件是一种简单的覆盖在其他视图之上显示内容的方式。","sidebar":"组件"},"more-resources":{"id":"more-resources","title":"其他参考资源","description":"如果你耐心的读完并理解了本网站上的所有文档,那么你应该已经可以编写一个像样的 React Native 应用了。但是 React Native 并不全是某一家公司的作品——它汇聚了成千上万开源社区开发者的智慧结晶。如果你想深入研究 React Native,那么建议不要错过下面这些参考资源。","sidebar":"docs"},"native-platform":{"id":"native-platform","title":"桥接原生平台能力","description":"你的应用可能需要访问 React Native 或社区维护的数百个 第三方库 中未直接提供的平台功能。也许你想要重用一些现有的 Objective-C、Swift、Java、Kotlin 或 C++ 代码。无论你的原因是什么,React Native 都提供了一组强大的 API 来连接你的原生代码和 JavaScript 应用代码。","sidebar":"docs"},"navigation":{"id":"navigation","title":"使用导航器跳转页面","description":"移动应用基本不会只由一个页面组成。管理多个页面的呈现、跳转的组件就是我们通常所说的导航器(navigator)。","sidebar":"docs"},"netinfo":{"id":"netinfo","title":"NetInfo","description":"已过时。 Use react-native-community/react-native-netinfo instead."},"network":{"id":"network","title":"访问网络","description":"很多移动应用都需要从远程地址中获取数据或资源。你可能需要给某个 REST API 发起 POST 请求以提交用户数据,又或者可能仅仅需要从某个服务器上获取一些静态内容——以下就是你会用到的东西。新手可以对照这个简短的视频教程加深理解。","sidebar":"docs"},"new-architecture-app-intro":{"id":"new-architecture-app-intro","title":"在应用中启用的预备工作","description":"在启用新架构之前,应先满足一些先决条件。"},"new-architecture-app-modules-ios":{"id":"new-architecture-app-modules-ios","title":"在 iOS 上启用 TurboModule","description":"Make sure your application meets all the prerequisites."},"new-architecture-app-renderer-android":{"id":"new-architecture-app-renderer-android","title":"在 Android 上启用 Fabric","description":"Make sure your application meets all the prerequisites."},"new-architecture-app-renderer-ios":{"id":"new-architecture-app-renderer-ios","title":"在 iOS 上启用 Fabric","description":"This section will go over how to enable the new renderer in your app. Make sure your application meets all the prerequisites."},"new-architecture-intro":{"id":"new-architecture-intro","title":"迁移到新架构","description":"此迁移指南旨在为React Native的库作者和应用程序开发者提供。它概述了您需要遵循的步骤,以在您的Android和iOS库和应用中使用由新的NativeModule系统(TurboModule)和新的渲染器(Fabric)组成的新架构。"},"new-architecture-library-android":{"id":"new-architecture-library-android","title":"在 Android 库中启用","description":"一旦您在先决条件中定义了本机模块的 JavaScript 规范,设置了 CodeGen 配置,并遵循了 Android/Gradle 设置,然后就可以将您的库迁移到新架构。以下是迁移所需的步骤。"},"new-architecture-library-intro":{"id":"new-architecture-library-intro","title":"在库中启用的预备工作","description":"The following steps will help ensure your modules and components are ready for the New Architecture."},"new-architecture-library-ios":{"id":"new-architecture-library-ios","title":"在 iOS 库中启用","description":"You have defined the JavaScript specs for your native modules as part of the prerequisites, and you are now ready to migrate your library to the New Architecture. Here are the steps you can follow to accomplish this."},"new-architecture-troubleshooting":{"id":"new-architecture-troubleshooting","title":"常见问题","description":"本页面会记录一些迁移到新架构时可能遇到的常见问题的解决方案。"},"new-architecture-turbo-modules":{"id":"new-architecture-turbo-modules","title":"新架构的原生模块(Turbo Module)","description":"If you\'ve worked with React Native, you may be familiar with the concept of Native Modules, which allow JavaScript and platform-native code to communicate over the React Native \\"bridge\\", which handles cross-platform serialization via JSON."},"optimizing-flatlist-configuration":{"id":"optimizing-flatlist-configuration","title":"列表配置优化","description":"术语定义","sidebar":"docs"},"optimizing-javascript-loading":{"id":"optimizing-javascript-loading","title":"Optimizing JavaScript loading","description":"解析和运行 JavaScript 代码需要内存和时间。因此,随着你的应用程序增长,通常将代码加载延迟到首次需要时是有用的。React Native 自带一些默认开启的标准优化,并且你可以在自己的代码中采用一些技术来帮助 React 更有效地加载你的应用程序。还有一些适合非常大应用程序的高级自动优化(它们也有自己的权衡)。","sidebar":"docs"},"other-debugging-methods":{"id":"other-debugging-methods","title":"其他调试方法","description":"此页面介绍了除 打开调试器 中描述的方法之外的其他 JavaScript 调试方法。如果你正在使用新创建的 React Native 或 Expo 应用,我们建议从那里开始。","sidebar":"docs"},"out-of-tree-platforms":{"id":"out-of-tree-platforms","title":"多平台支持","description":"React Native不仅适用于 Android 和 iOS - 还有社区支持的项目将其应用于其他平台,例如:","sidebar":"docs"},"panresponder":{"id":"panresponder","title":"PanResponder","description":"PanResponder类可以将多点触摸操作协调成一个手势。它使得一个单点触摸可以接受更多的触摸操作,也可以用于识别简单的多点触摸手势。","sidebar":"api"},"performance":{"id":"performance","title":"性能综述","description":"使用 React Native 替代基于 WebView 的框架来开发 App 的一个强有力的理由,就是为了使 App 可以达到每秒 60 帧(足够流畅),并且能有类似原生 App 的外观和手感。因此我们也尽可能地优化 React Native 去实现这一目标,使开发者能集中精力处理 App 的业务逻辑,而不用费心考虑性能。但是,总还是有一些地方有所欠缺,以及在某些场合 React Native 还不能够替你决定如何进行优化(用原生代码写也无法避免),因此人工的干预依然是必要的。","sidebar":"docs"},"permissionsandroid":{"id":"permissionsandroid","title":"PermissionsAndroid","description":"仅适用于非沙盒项目","sidebar":"api"},"pixelratio":{"id":"pixelratio","title":"PixelRatio","description":"PixelRatio 可以获取到设备的像素密度和字体缩放比。","sidebar":"api"},"platform":{"id":"platform","title":"Platform","description":"Example","sidebar":"api"},"platform-specific-code":{"id":"platform-specific-code","title":"特定平台代码","description":"在编写跨平台的应用时,我们肯定希望尽可能多地复用代码。但是总有些时候我们会碰到针对不同平台编写不同代码的需求。","sidebar":"docs"},"platformcolor":{"id":"platformcolor","title":"PlatformColor","description":"You can use the PlatformColor function to access native colors on the target platform by supplying the native color’s corresponding string value. You pass a string to the PlatformColor function and, provided it exists on that platform, it will return the corresponding native color, which you can apply in any part of your application.","sidebar":"api"},"pressable":{"id":"pressable","title":"Pressable","description":"Pressable 是一个核心组件的封装,它可以检测到任意子组件的不同阶段的按压交互情况。","sidebar":"组件"},"pressevent":{"id":"pressevent","title":"点击事件对象","description":"点击事件对象作为用户按压交互的结果在回调中返回,例如 Button 组件中的 onPress。","sidebar":"组件"},"profile-hermes":{"id":"profile-hermes","title":"在 Hermes 中进行性能分析","description":"你可以使用Hermes在 React Native 应用中可视化 JavaScript 的性能。Hermes 是一个小型且轻量的 JavaScript 引擎(你可以在这里阅读更多有关在 React Native 中使用它的信息)。Hermes 有助于提高应用性能,并且还提供了分析其运行的 JavaScript 性能的方式。"},"profiling":{"id":"profiling","title":"Profiling","description":"使用内置的性能分析器获取 JavaScript 线程和主线程并排的详细工作信息。从调试菜单中选择 Perf Monitor 即可访问它。","sidebar":"docs"},"progressbarandroid":{"id":"progressbarandroid","title":"🚧 ProgressBarAndroid","description":"已过时。 Use @react-native-community/progress-bar-android instead."},"progressviewios":{"id":"progressviewios","title":"🚧 ProgressViewIOS","description":"已过时。 Use @react-native-community/progress-view instead."},"props":{"id":"props","title":"Props(属性)","description":"大多数组件在创建时就可以使用各种参数来进行定制。用于定制的这些参数就称为props(属性)。"},"publishing-to-app-store":{"id":"publishing-to-app-store","title":"上架 App Store","description":"上架应用的过程和任何其它原生 iOS 应用一样,但有一些额外的注意事项要考虑。","sidebar":"docs"},"pushnotificationios":{"id":"pushnotificationios","title":"🚧 PushNotificationIOS","description":"已过时。 Use @react-native-community/push-notification-ios instead."},"ram-bundles-inline-requires":{"id":"ram-bundles-inline-requires","title":"RAM Bundles 和内联引用优化","description":"如果你有一个较为庞大的应用程序,你可能要考虑使用RAM(Random Access Modules,随机存取模块)格式的 bundle 和内联引用。这对于具有大量页面的应用程序是非常有用的,这些页面在应用程序的典型使用过程中可能不会被打开。通常对于启动后一段时间内不需要大量代码的应用程序来说是非常有用的。例如应用程序包含复杂的配置文件屏幕或较少使用的功能,但大多数会话只涉及访问应用程序的主屏幕更新。我们可以通过使用RAM格式来优化bundle的加载,并且内联引用这些功能和页面(当它们被实际使用时)。"},"react-18-and-react-native":{"id":"react-18-and-react-native","title":"React 18 与 React Native","description":"这个页面描述了如何在 React Native 的新架构中启用 React 18 版本。"},"react-native-devtools":{"id":"react-native-devtools","title":"React Native 开发者工具","description":"React Native DevTools 是我们新的调试体验,它对我们的调试堆栈进行了端到端的重新编写。它旨在比以前的调试方法更深入地集成,并且从根本上更可靠。","sidebar":"docs"},"react-native-gradle-plugin":{"id":"react-native-gradle-plugin","title":"React Native Gradle Plugin","description":"本指南描述了如何配置 React Native Gradle Plugin(通常称为 RNGP)来为 Android 构建 React Native 应用。","sidebar":"docs"},"react-node":{"id":"react-node","title":"React 节点对象","description":"React 节点对象有以下这些类型:","sidebar":"组件"},"rect":{"id":"rect","title":"矩形区域对象","description":"Rect 接受数值像素值来描述如何扩展矩形区域。这些值会被添加到原始区域的大小上以扩展它。","sidebar":"组件"},"rectorsize":{"id":"rectorsize","title":"RectOrSize Object Type","description":"RectOrSize接受数字像素值来描述如何扩展矩形区域。这些值会被添加到原始区域的大小上以扩展它。"},"refreshcontrol":{"id":"refreshcontrol","title":"RefreshControl","description":"这一组件可以用在 ScrollView 或 FlatList 内部,为其添加下拉刷新的功能。当 ScrollView 处于竖直方向的起点位置(scrollY: 0),此时下拉会触发一个onRefresh事件。","sidebar":"组件"},"removing-default-permissions":{"id":"removing-default-permissions","title":"移除不需要的权限","description":"默认情况下我们会给最终打包的 APK 加入一些权限申请,具体如下:"},"render-pipeline":{"id":"render-pipeline","title":"渲染,提交与挂载(渲染流水线)","description":"文档介绍了即将发布的新渲染器 Fabric 的架构。"},"roottag":{"id":"roottag","title":"RootTag","description":"RootTag 是用于标记 React Native 原生根视图层的不透明标识符(opaque identifier)。具体来说就是 ReactRootView(android) 或是 RCTRootView(iOS) 的实例 ID.","sidebar":"api"},"running-on-device":{"id":"running-on-device","title":"在设备上运行","description":"在真机上仔细测试 app 后再发布给用户总是不会错的。本文档将指导你通过必须的步骤在设备上运行 React Native app,为生产做准备。","sidebar":"docs"},"running-on-simulator-ios":{"id":"running-on-simulator-ios","title":"在iOS模拟器上运行","description":"启动模拟器","sidebar":"docs"},"safeareaview":{"id":"safeareaview","title":"SafeAreaView","description":"SafeAreaView的目的是在一个“安全”的可视区域内渲染内容。具体来说就是因为目前有 iPhone X 这样的带有“刘海”的全面屏设备,所以需要避免内容渲染到不可见的“刘海”范围内。本组件目前仅支持 iOS 设备以及 iOS 11 或更高版本。","sidebar":"组件"},"sample-application-movies":{"id":"sample-application-movies","title":"示例教程:电影列表","description":"简介"},"scrollview":{"id":"scrollview","title":"ScrollView","description":"一个封装了平台的 ScrollView(滚动视图)的组件,同时还集成了触摸锁定的“响应者”系统。","sidebar":"组件"},"sectionlist":{"id":"sectionlist","title":"SectionList","description":"高性能的分组(section)列表组件,支持下面这些常用的功能:","sidebar":"组件"},"security":{"id":"security","title":"网络安全策略","description":"开发应用时安全常常是一个被忽视的话题。的确,搭建一个完全无懈可击的软件是不可能的——我们还没有发明一个完全坚不可摧的锁(毕竟,银行金库已经足够坚固但仍然会被闯入)。然而,遭受恶意攻击或暴露安全漏洞的可能性与您愿意投入保护应用程序免受此类事件的努力成反比。尽管普通的挂锁可以被撬开,但它仍然比橱柜挂钩更难攻破!","sidebar":"docs"},"segmentedcontrolios":{"id":"segmentedcontrolios","title":"🚧 SegmentedControlIOS","description":"已过时。 Use @react-native-community/segmented-control instead."},"settings":{"id":"settings","title":"Settings","description":"Settings是对NSUserDefaults的封装。它是iOS平台上的一种持久的键值对存储。","sidebar":"api"},"shadow-props":{"id":"shadow-props","title":"阴影样式属性","description":"These properties are iOS only - for similar functionality on Android, use the elevation property.","sidebar":"组件"},"share":{"id":"share","title":"Share","description":"示例","sidebar":"api"},"signed-apk-android":{"id":"signed-apk-android","title":"打包发布","description":"Android 要求所有应用都有一个数字签名才会被允许安装在用户手机上,所以在把应用发布到应用市场之前,你需要先生成一个签名的 AAB 或 APK 包(Google Play 现在要求 AAB 格式,而国内的应用市场目前仅支持 APK 格式。但无论哪种格式,下面的签名步骤是一样的)。Android 开发者官网上的如何给你的应用签名文档描述了签名的细节。本指南旨在提供一个简化的签名和打包的操作步骤,不会涉及太多理论。","sidebar":"docs"},"slider":{"id":"slider","title":"🚧 Slider","description":"已过时。 Use @react-native-community/slider instead."},"speeding-ci-builds":{"id":"speeding-ci-builds","title":"优化 CI 构建","description":"You or your company may have set up a Continuous Integration (CI) environment to test your React Native application."},"state":{"id":"state","title":"State(状态)","description":"我们使用两种数据来控制一个组件:props和state。props是在父组件中指定,而且一经指定,在被指定的组件的生命周期中则不再改变。对于需要改变的数据,我们需要使用state。"},"statusbar":{"id":"statusbar","title":"StatusBar","description":"控制应用状态栏的组件。","sidebar":"组件"},"style":{"id":"style","title":"样式","description":"在 React Native 中,你并不需要学习什么特殊的语法来定义样式。我们仍然是使用 JavaScript 来写样式。所有的核心组件都接受名为style的属性。这些样式名基本上是遵循了 web 上的 CSS 的命名,只是按照 JS 的语法要求使用了驼峰命名法,例如将background-color改为backgroundColor。","sidebar":"docs"},"stylesheet":{"id":"stylesheet","title":"StyleSheet","description":"StyleSheet 提供了一种类似 CSS 样式表的抽象。","sidebar":"api"},"switch":{"id":"switch","title":"Switch","description":"跨平台通用的“开关”组件。","sidebar":"组件"},"symbolication":{"id":"symbolication","title":"Symbolicating a stack trace","description":"If a React Native app throws an unhandled exception in a release build, the output may be obfuscated and hard to read:"},"systrace":{"id":"systrace","title":"Systrace","description":"Systrace is a standard Android marker-based profiling tool (and is installed when you install the Android platform-tools package). Profiled code blocks are surrounded by start/end markers which are then visualized in a colorful chart format. Both the Android SDK and React Native framework provide standard markers that you can visualize.","sidebar":"api"},"testing-overview":{"id":"testing-overview","title":"Testing","description":"This guide introduces React Native developers to the key concepts behind testing, how to write good tests, and what kinds of tests you can incorporate into your workflow.","sidebar":"docs"},"text":{"id":"text","title":"Text","description":"一个用于显示文本的 React 组件,并且它也支持嵌套、样式,以及触摸处理。","sidebar":"组件"},"text-style-props":{"id":"text-style-props","title":"Text 样式属性","description":"示例","sidebar":"组件"},"textinput":{"id":"textinput","title":"TextInput","description":"TextInput 是一个允许用户在应用中通过键盘输入文本的基本组件。本组件的属性提供了多种特性的配置,譬如自动完成、自动大小写、占位文字,以及多种不同的键盘类型(如纯数字键盘)等等。","sidebar":"组件"},"the-new-architecture/backward-compatibility":{"id":"the-new-architecture/backward-compatibility","title":"向后兼容的意义","description":"创建一个向后兼容的模块很重要,这样可以实现在旧架构和新架构中都能工作的库。并不是所有用户都会立刻转到新架构,最好在他们使用旧架构时仍然保持兼容。"},"the-new-architecture/backward-compatibility-fabric-components":{"id":"the-new-architecture/backward-compatibility-fabric-components","title":"使 Fabric 组件与传统原生组件兼容","description":"创建向后兼容的 Fabric 原生组件需要了解如何创建传统的原生组件。要回忆这些概念,请查看此指南。"},"the-new-architecture/backward-compatibility-turbomodules":{"id":"the-new-architecture/backward-compatibility-turbomodules","title":"使 Turbo 模块与传统原生模块兼容","description":"创建向后兼容的 Turbo 原生模块需要了解如何创建传统的原生模块。要回忆这些概念,请查看此指南。"},"the-new-architecture/codegen-cli":{"id":"the-new-architecture/codegen-cli","title":"Codegen 命令行工具","description":"调用 Gradle 或手动调用脚本可能很难记住,并且需要很多步骤。","sidebar":"docs"},"the-new-architecture/create-module-library":{"id":"the-new-architecture/create-module-library","title":"创建模块库","description":"React Native 有一个丰富的生态系统库来解决常见问题。我们在 reactnative.directory 网站上收集 React Native 库,这是一个很好的资源,值得每个 React Native 开发者收藏。","sidebar":"docs"},"the-new-architecture/custom-cxx-types":{"id":"the-new-architecture/custom-cxx-types","title":"高级:自定义 C++ 类型","description":"本指南假设你熟悉 纯 C++ Turbo Native 模块 指南。它将在此基础上进行构建。","sidebar":"docs"},"the-new-architecture/cxx-custom-types":{"id":"the-new-architecture/cxx-custom-types","title":"支持自定义 C++ 类型","description":"默认情况下,C++ Turbo Native 模块支持大多数 std:: 标准类型的桥接功能。"},"the-new-architecture/cxx-cxxturbomodules":{"id":"the-new-architecture/cxx-cxxturbomodules","title":"C++ Turbo 原生模块","description":"本指南将向您展示如何仅使用 C++ 实现 Turbo 原生模块,以便与任何支持的平台(Android、iOS、macOS 或 Windows)共享相同的实现。"},"the-new-architecture/landing-page":{"id":"the-new-architecture/landing-page","title":"新架构介绍","description":"从 0.68 版本开始,React Native 提供了新架构,它为开发者提供了构建高性能和响应式应用的新功能。请访问\\"为何要设计新架构\\"来了解更多关于促使我们决定重新架构的原因,以及它提供的好处。"},"the-new-architecture/pillars":{"id":"the-new-architecture/pillars","title":"新架构的两大支柱","description":"新架构主要由两大支柱组成:"},"the-new-architecture/pillars-codegen":{"id":"the-new-architecture/pillars-codegen","title":"Codegen","description":"Codegen 不算是新架构的主要组成部分,它是一个帮助我们避免编写重复代码的工具。Codegen 并非必选项,您仍然可以手写它所生成的代码,但是使用它来生成脚手架代码可以帮您节省不少时间。"},"the-new-architecture/pillars-fabric-components":{"id":"the-new-architecture/pillars-fabric-components","title":"Fabric 组件","description":"Fabric 组件是一种使用 Fabric 渲染器渲染并展示在屏幕上的 UI 组件。在新架构中,使用 Fabric 组件替代原生组件具有以下优势:"},"the-new-architecture/pillars-turbomodules":{"id":"the-new-architecture/pillars-turbomodules","title":"TurboModules","description":"如果您使用过 React Native,您可能了解过 Native Modules 这个概念。它可以通过 React Native 的「Bridge」帮助 JavaScript 和原生代码进行交互,并使用跨平台的数据格式 JSON 进行通讯。"},"the-new-architecture/pure-cxx-modules":{"id":"the-new-architecture/pure-cxx-modules","title":"使用 C++ 实现跨平台的原生模块","description":"编写 C++ 模块是跨 Android 和 iOS 共享平台无关代码的最佳方式。使用纯 C++ 模块,您只需编写一次逻辑,即可在所有平台上重用它,而无需编写平台特定的代码。","sidebar":"docs"},"the-new-architecture/use-app-template":{"id":"the-new-architecture/use-app-template","title":"创建启用新架构的应用","description":"本文档将帮助你从头创建一个启用了新架构的 React Native 应用。"},"the-new-architecture/using-codegen":{"id":"the-new-architecture/using-codegen","title":"使用 Codegen","description":"本指南将教你如何:","sidebar":"docs"},"the-new-architecture/what-is-codegen":{"id":"the-new-architecture/what-is-codegen","title":"什么是 Codegen?","description":"Codegen 是一个避免编写大量重复代码的工具。使用 Codegen 并不是必须的:您可以手动编写所有生成的代码。然而,Codegen 生成的脚手架代码可以节省您很多时间。","sidebar":"docs"},"the-new-architecture/why":{"id":"the-new-architecture/why","title":"为何要设计新架构","description":"新架构的目标是解决困扰旧架构在性能和灵活性方面的一些问题。本节提供了基本的背景,以了解旧架构的局限性,以及如何通过新架构来克服这些局限性。"},"threading-model":{"id":"threading-model","title":"线程模型","description":"文档介绍了即将发布的新渲染器 Fabric 的架构。"},"timepickerandroid":{"id":"timepickerandroid","title":"🚧 TimePickerAndroid","description":"已过时。 Use @react-native-community/datetimepicker instead."},"timers":{"id":"timers","title":"定时器","description":"定时器是一个应用中非常重要的部分。React Native 实现了和浏览器一致的定时器 Timer。","sidebar":"docs"},"toastandroid":{"id":"toastandroid","title":"ToastAndroid","description":"本模块将原生的 ToastAndroid 模块导出为一个 JS 模块,用于在 Android 设备上显示一个悬浮的提示信息。本模块包含一个show方法接受以下的参数:","sidebar":"api"},"touchablehighlight":{"id":"touchablehighlight","title":"TouchableHighlight","description":"我们建议使用Pressable组件,它更具扩展性且会是官方未来力推的主流。","sidebar":"组件"},"touchablenativefeedback":{"id":"touchablenativefeedback","title":"TouchableNativeFeedback","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"组件"},"touchableopacity":{"id":"touchableopacity","title":"TouchableOpacity","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"组件"},"touchablewithoutfeedback":{"id":"touchablewithoutfeedback","title":"TouchableWithoutFeedback","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"组件"},"transforms":{"id":"transforms","title":"变换(Transform)","description":"变换(Transform)是样式属性,可帮助您使用 2D 或 3D 变换修改组件的外观和位置。然而,即便使用了变换,使用变换的组件的布局并不会变化,因此可能会与附近的组件重叠。您可以对变换的组件、附近的组件应用边距,或对容器应用填充,以防止这种重叠。","sidebar":"api"},"troubleshooting":{"id":"troubleshooting","title":"Troubleshooting","description":"These are some common issues you may run into while setting up React Native. If you encounter something that is not listed here, try searching for the issue in GitHub."},"turbo-native-modules-android":{"id":"turbo-native-modules-android","title":"Turbo 原生模块:Android","description":"现在我们来编写一些 Android 平台代码,以确保 localStorage 在应用关闭后仍然可以持久保存数据。"},"turbo-native-modules-introduction":{"id":"turbo-native-modules-introduction","title":"Turbo 原生模块介绍","description":"你的 React Native 应用代码可能需要与 React Native 或现有库未提供的原生平台 API 进行交互。你可以使用 Turbo 原生模块 自己编写集成代码。本指南将向你展示如何编写一个。","sidebar":"docs"},"turbo-native-modules-ios":{"id":"turbo-native-modules-ios","title":"Turbo 原生模块:iOS","description":"现在我们来编写一些 iOS 平台代码,以确保 localStorage 在应用关闭后仍然可以持久保存数据。"},"tutorial":{"id":"tutorial","title":"示例教程:Hello World","description":"React Native 看起来很像 React,只不过其基础组件是原生组件而非 web 组件。要理解 React Native 应用的基本结构,首先需要了解一些基本的 React 的概念,比如 JSX 语法、组件、state状态以及props属性。如果你已经了解了 React,那么还需要掌握一些 React Native 特有的知识,比如原生组件的使用。这篇教程可以供任何基础的读者学习,不管你是否有 React 方面的经验。"},"typescript":{"id":"typescript","title":"使用 TypeScript","description":"TypeScript 是一种通过添加类型定义来扩展 JavaScript 的语言。新的 React Native 项目默认以 TypeScript 为目标,同时也支持 JavaScript 和 Flow。","sidebar":"docs"},"upgrading":{"id":"upgrading","title":"更新","description":"时刻将 React Native 更新到最新的版本,可以获得更多 API、视图、开发者工具以及其他一些好东西(译注:官方开发任务繁重,人手紧缺,几乎不会对旧版本提供维护支持,所以即便更新可能带来一些兼容上的变更,但建议开发者还是尽一切可能第一时间更新)。由于一个完整的 React Native 项目是由 Android 项目、iOS 项目和 JavaScript 项目组成的,且都打包在一个 npm 包中,所以升级可能会有一些麻烦。我们会尽量简化这一流程。你可以在项目目录下使用npx react-native info命令查看当前的版本。","sidebar":"docs"},"usecolorscheme":{"id":"usecolorscheme","title":"useColorScheme","description":"useColorScheme 这个React hook 提供并订阅来自Appearance模块的颜色方案更新。返回值表示当前用户首选的颜色方案。该值可以稍后通过直接用户动作(例如,设备设置中的主题选择)或根据时间表(例如,遵循白天/夜晚周期的亮主题和暗主题)来更新。","sidebar":"api"},"usewindowdimensions":{"id":"usewindowdimensions","title":"useWindowDimensions","description":"useWindowDimensions会在屏幕尺寸变化时自动更新获取到的设备width和height值。使用方法如下:","sidebar":"api"},"using-a-listview":{"id":"using-a-listview","title":"使用长列表","description":"React Native 提供了几个适用于展示长列表数据的组件,一般而言我们会选用FlatList或是SectionList。","sidebar":"docs"},"using-a-scrollview":{"id":"using-a-scrollview","title":"使用滚动视图","description":"ScrollView是一个通用的可滚动的容器,你可以在其中放入多个组件和视图,而且这些组件并不需要是同类型的。ScrollView 不仅可以垂直滚动,还能水平滚动(通过horizontal属性来设置)。","sidebar":"docs"},"vibration":{"id":"vibration","title":"Vibration","description":"使设备振动。","sidebar":"api"},"view":{"id":"view","title":"View","description":"作为创建 UI 时最基础的组件,View 是一个支持 Flexbox 布局、样式、触摸响应、和一些无障碍功能的容器。不论在什么平台上,View 都直接对应当前平台的原生视图,无论它是 UIView、div 还是 android.view.View。","sidebar":"组件"},"view-flattening":{"id":"view-flattening","title":"视图拍平","description":"This document refers to the architecture of the new renderer, Fabric, that is in active roll-out."},"view-style-props":{"id":"view-style-props","title":"View 样式属性","description":"示例","sidebar":"组件"},"viewpagerandroid":{"id":"viewpagerandroid","title":"🚧 ViewPagerAndroid","description":"已过时。 Use @react-native-community/viewpager instead."},"viewtoken":{"id":"viewtoken","title":"ViewToken 对象","description":"ViewToken object is returned as one of properties in the onViewableItemsChanged callback, for example in FlatList component. It is exported by ViewabilityHelper.js.","sidebar":"组件"},"virtualizedlist":{"id":"virtualizedlist","title":"VirtualizedList","description":"FlatList和SectionList的底层实现。FlatList 和 SectionList 使用起来更方便,同时也有相对更详细的文档。一般来说,仅当想获得比 FlatList 更高的灵活性(比如说在使用 immutable data 而不是 普通数组)的时候,你才应该考虑使用 VirtualizedList。","sidebar":"组件"},"xplat-implementation":{"id":"xplat-implementation","title":"跨平台的实现","description":"This document refers to the architecture of the new renderer, Fabric, that is in active roll-out."}}}}'); - -/***/ }) - -}; -; \ No newline at end of file diff --git a/assets/js/bf1307fc.b693a3e3.js b/assets/js/bf1307fc.b693a3e3.js new file mode 100644 index 00000000000..dc76b3bdb3f --- /dev/null +++ b/assets/js/bf1307fc.b693a3e3.js @@ -0,0 +1,14 @@ +"use strict"; +exports.id = 9525; +exports.ids = [9525]; +exports.modules = { + +/***/ 31413: +/***/ ((module) => { + +module.exports = /*#__PURE__*/JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":"unreleased","badge":true,"noIndex":false,"className":"docs-version-current","isLast":false,"docsSidebars":{"docs":[{"type":"category","label":"入门基础","items":[{"type":"link","label":"简介","href":"/docs/next/getting-started","docId":"getting-started","unlisted":false},{"type":"link","label":"核心组件与原生组件","href":"/docs/next/intro-react-native-components","docId":"intro-react-native-components","unlisted":false},{"type":"link","label":"React 基础","href":"/docs/next/intro-react","docId":"intro-react","unlisted":false},{"type":"link","label":"处理文本输入","href":"/docs/next/handling-text-input","docId":"handling-text-input","unlisted":false},{"type":"link","label":"使用滚动视图","href":"/docs/next/using-a-scrollview","docId":"using-a-scrollview","unlisted":false},{"type":"link","label":"使用长列表","href":"/docs/next/using-a-listview","docId":"using-a-listview","unlisted":false},{"type":"link","label":"特定平台代码","href":"/docs/next/platform-specific-code","docId":"platform-specific-code","unlisted":false},{"type":"link","label":"其他参考资源","href":"/docs/next/more-resources","docId":"more-resources","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"环境搭建","items":[{"type":"link","label":"搭建开发环境","href":"/docs/next/environment-setup","docId":"environment-setup","unlisted":false},{"type":"link","label":"集成到现有原生应用","href":"/docs/next/integration-with-existing-apps","docId":"integration-with-existing-apps","unlisted":false},{"type":"link","label":"集成到 Android Fragment","href":"/docs/next/integration-with-android-fragment","docId":"integration-with-android-fragment","unlisted":false},{"type":"link","label":"为电视和机顶盒制作应用","href":"/docs/next/building-for-tv","docId":"building-for-tv","unlisted":false},{"type":"link","label":"多平台支持","href":"/docs/next/out-of-tree-platforms","docId":"out-of-tree-platforms","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"开发流程","items":[{"type":"link","label":"在设备上运行","href":"/docs/next/running-on-device","docId":"running-on-device","unlisted":false},{"type":"link","label":"快速刷新","href":"/docs/next/fast-refresh","docId":"fast-refresh","unlisted":false},{"type":"link","label":"Metro","href":"/docs/next/metro","docId":"metro","unlisted":false},{"type":"link","label":"使用第三方库","href":"/docs/next/libraries","docId":"libraries","unlisted":false},{"type":"link","label":"使用 TypeScript","href":"/docs/next/typescript","docId":"typescript","unlisted":false},{"type":"link","label":"更新","href":"/docs/next/upgrading","docId":"upgrading","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"界面与交互","items":[{"type":"link","label":"样式","href":"/docs/next/style","docId":"style","unlisted":false},{"type":"link","label":"高度与宽度","href":"/docs/next/height-and-width","docId":"height-and-width","unlisted":false},{"type":"link","label":"使用 Flexbox 布局","href":"/docs/next/flexbox","docId":"flexbox","unlisted":false},{"type":"link","label":"图片","href":"/docs/next/images","docId":"images","unlisted":false},{"type":"link","label":"颜色","href":"/docs/next/colors","docId":"colors","unlisted":false},{"type":"category","label":"交互","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"处理触摸事件","href":"/docs/next/handling-touches","docId":"handling-touches","unlisted":false},{"type":"link","label":"使用导航器跳转页面","href":"/docs/next/navigation","docId":"navigation","unlisted":false},{"type":"link","label":"动画","href":"/docs/next/animations","docId":"animations","unlisted":false},{"type":"link","label":"手势响应系统","href":"/docs/next/gesture-responder-system","docId":"gesture-responder-system","unlisted":false}]},{"type":"category","label":"网络连接","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"访问网络","href":"/docs/next/network","docId":"network","unlisted":false},{"type":"link","label":"网络安全策略","href":"/docs/next/security","docId":"security","unlisted":false}]},{"type":"category","label":"包容性","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"无障碍功能","href":"/docs/next/accessibility","docId":"accessibility","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"调试","items":[{"type":"link","label":"调试","href":"/docs/next/debugging","docId":"debugging","unlisted":false},{"type":"link","label":"React Native 开发者工具","href":"/docs/next/react-native-devtools","docId":"react-native-devtools","unlisted":false},{"type":"link","label":"调试原生代码","href":"/docs/next/debugging-native-code","docId":"debugging-native-code","unlisted":false},{"type":"link","label":"调试发行版本","href":"/docs/next/debugging-release-builds","docId":"debugging-release-builds","unlisted":false},{"type":"link","label":"其他调试方法","href":"/docs/next/other-debugging-methods","docId":"other-debugging-methods","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"测试","items":[{"type":"link","label":"Testing","href":"/docs/next/testing-overview","docId":"testing-overview","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"性能调优","items":[{"type":"link","label":"性能综述","href":"/docs/next/performance","docId":"performance","unlisted":false},{"type":"link","label":"优化编译速度","href":"/docs/next/build-speed","docId":"build-speed","unlisted":false},{"type":"link","label":"列表配置优化","href":"/docs/next/optimizing-flatlist-configuration","docId":"optimizing-flatlist-configuration","unlisted":false},{"type":"link","label":"Optimizing JavaScript loading","href":"/docs/next/optimizing-javascript-loading","docId":"optimizing-javascript-loading","unlisted":false},{"type":"link","label":"Profiling","href":"/docs/next/profiling","docId":"profiling","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"JavaScript 运行环境","items":[{"type":"link","label":"JavaScript 环境","href":"/docs/next/javascript-environment","docId":"javascript-environment","unlisted":false},{"type":"link","label":"定时器","href":"/docs/next/timers","docId":"timers","unlisted":false},{"type":"link","label":"使用新的 Hermes 引擎","href":"/docs/next/hermes","docId":"hermes","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Codegen","items":[{"type":"link","label":"什么是 Codegen?","href":"/docs/next/the-new-architecture/what-is-codegen","docId":"the-new-architecture/what-is-codegen","unlisted":false},{"type":"link","label":"使用 Codegen","href":"/docs/next/the-new-architecture/using-codegen","docId":"the-new-architecture/using-codegen","unlisted":false},{"type":"link","label":"Codegen 命令行工具","href":"/docs/next/the-new-architecture/codegen-cli","docId":"the-new-architecture/codegen-cli","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"原生开发","items":[{"type":"link","label":"桥接原生平台能力","href":"/docs/next/native-platform","docId":"native-platform","unlisted":false},{"type":"category","label":"原生模块","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Turbo 原生模块介绍","href":"/docs/next/turbo-native-modules-introduction","docId":"turbo-native-modules-introduction","unlisted":false},{"type":"link","label":"使用 C++ 实现跨平台的原生模块","href":"/docs/next/the-new-architecture/pure-cxx-modules","docId":"the-new-architecture/pure-cxx-modules","unlisted":false},{"type":"link","label":"高级:自定义 C++ 类型","href":"/docs/next/the-new-architecture/custom-cxx-types","docId":"the-new-architecture/custom-cxx-types","unlisted":false}]},{"type":"category","label":"原生 UI 组件","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Fabric Native Components Introduction","href":"/docs/next/fabric-native-components-introduction","docId":"fabric-native-components-introduction","unlisted":false}]},{"type":"category","label":"其他","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"附录","href":"/docs/next/appendix","docId":"appendix","unlisted":false},{"type":"link","label":"创建模块库","href":"/docs/next/the-new-architecture/create-module-library","docId":"the-new-architecture/create-module-library","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"Android 与 iOS 指南","items":[{"type":"category","label":"Android","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Headless JS(后台任务)","href":"/docs/next/headless-js-android","docId":"headless-js-android","unlisted":false},{"type":"link","label":"打包发布","href":"/docs/next/signed-apk-android","docId":"signed-apk-android","unlisted":false},{"type":"link","label":"和原生端通信","href":"/docs/next/communication-android","docId":"communication-android","unlisted":false},{"type":"link","label":"React Native Gradle Plugin","href":"/docs/next/react-native-gradle-plugin","docId":"react-native-gradle-plugin","unlisted":false}]},{"type":"category","label":"iOS","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"链接原生库","href":"/docs/next/linking-libraries-ios","docId":"linking-libraries-ios","unlisted":false},{"type":"link","label":"在iOS模拟器上运行","href":"/docs/next/running-on-simulator-ios","docId":"running-on-simulator-ios","unlisted":false},{"type":"link","label":"和原生端通信","href":"/docs/next/communication-ios","docId":"communication-ios","unlisted":false},{"type":"link","label":"iOS 应用小组件","href":"/docs/next/app-extensions","docId":"app-extensions","unlisted":false},{"type":"link","label":"上架 App Store","href":"/docs/next/publishing-to-app-store","docId":"publishing-to-app-store","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"旧架构","items":[{"type":"category","label":"原生模块(旧架构)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"原生模块简介","href":"/docs/next/legacy/native-modules-intro","docId":"legacy/native-modules-intro","unlisted":false},{"type":"link","label":"Android 原生模块","href":"/docs/next/legacy/native-modules-android","docId":"legacy/native-modules-android","unlisted":false},{"type":"link","label":"iOS 原生模块","href":"/docs/next/legacy/native-modules-ios","docId":"legacy/native-modules-ios","unlisted":false},{"type":"link","label":"Native Modules NPM Package Setup","href":"/docs/next/legacy/native-modules-setup","docId":"legacy/native-modules-setup","unlisted":false},{"type":"link","label":"Local libraries setup","href":"/docs/next/legacy/local-library-setup","docId":"legacy/local-library-setup","unlisted":false}]},{"type":"category","label":"原生 UI 组件(旧架构)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Android 原生UI组件","href":"/docs/next/legacy/native-components-android","docId":"legacy/native-components-android","unlisted":false},{"type":"link","label":"iOS 原生UI组件","href":"/docs/next/legacy/native-components-ios","docId":"legacy/native-components-ios","unlisted":false},{"type":"link","label":"直接操作","href":"/docs/next/legacy/direct-manipulation","docId":"legacy/direct-manipulation","unlisted":false}]}],"collapsed":true,"collapsible":true}],"api":[{"type":"category","label":"APIs","items":[{"type":"link","label":"AccessibilityInfo","href":"/docs/next/accessibilityinfo","docId":"accessibilityinfo","unlisted":false},{"type":"link","label":"Alert","href":"/docs/next/alert","docId":"alert","unlisted":false},{"type":"link","label":"Animated","href":"/docs/next/animated","docId":"animated","unlisted":false},{"type":"link","label":"Animated.Value","href":"/docs/next/animatedvalue","docId":"animatedvalue","unlisted":false},{"type":"link","label":"Animated.ValueXY","href":"/docs/next/animatedvaluexy","docId":"animatedvaluexy","unlisted":false},{"type":"link","label":"Appearance","href":"/docs/next/appearance","docId":"appearance","unlisted":false},{"type":"link","label":"AppRegistry","href":"/docs/next/appregistry","docId":"appregistry","unlisted":false},{"type":"link","label":"AppState","href":"/docs/next/appstate","docId":"appstate","unlisted":false},{"type":"link","label":"DevSettings","href":"/docs/next/devsettings","docId":"devsettings","unlisted":false},{"type":"link","label":"Dimensions","href":"/docs/next/dimensions","docId":"dimensions","unlisted":false},{"type":"link","label":"Easing","href":"/docs/next/easing","docId":"easing","unlisted":false},{"type":"link","label":"InteractionManager","href":"/docs/next/interactionmanager","docId":"interactionmanager","unlisted":false},{"type":"link","label":"Keyboard","href":"/docs/next/keyboard","docId":"keyboard","unlisted":false},{"type":"link","label":"LayoutAnimation","href":"/docs/next/layoutanimation","docId":"layoutanimation","unlisted":false},{"type":"link","label":"Linking","href":"/docs/next/linking","docId":"linking","unlisted":false},{"type":"link","label":"PanResponder","href":"/docs/next/panresponder","docId":"panresponder","unlisted":false},{"type":"link","label":"PixelRatio","href":"/docs/next/pixelratio","docId":"pixelratio","unlisted":false},{"type":"link","label":"Platform","href":"/docs/next/platform","docId":"platform","unlisted":false},{"type":"link","label":"PlatformColor","href":"/docs/next/platformcolor","docId":"platformcolor","unlisted":false},{"type":"link","label":"RootTag","href":"/docs/next/roottag","docId":"roottag","unlisted":false},{"type":"link","label":"Share","href":"/docs/next/share","docId":"share","unlisted":false},{"type":"link","label":"StyleSheet","href":"/docs/next/stylesheet","docId":"stylesheet","unlisted":false},{"type":"link","label":"Systrace","href":"/docs/next/systrace","docId":"systrace","unlisted":false},{"type":"link","label":"变换(Transform)","href":"/docs/next/transforms","docId":"transforms","unlisted":false},{"type":"link","label":"Vibration","href":"/docs/next/vibration","docId":"vibration","unlisted":false},{"type":"category","label":"Hooks","collapsed":false,"items":[{"type":"link","label":"useColorScheme","href":"/docs/next/usecolorscheme","docId":"usecolorscheme","unlisted":false},{"type":"link","label":"useWindowDimensions","href":"/docs/next/usewindowdimensions","docId":"usewindowdimensions","unlisted":false}],"collapsible":true},{"type":"category","label":"Android API","collapsed":false,"items":[{"type":"link","label":"BackHandler","href":"/docs/next/backhandler","docId":"backhandler","unlisted":false},{"type":"link","label":"PermissionsAndroid","href":"/docs/next/permissionsandroid","docId":"permissionsandroid","unlisted":false},{"type":"link","label":"ToastAndroid","href":"/docs/next/toastandroid","docId":"toastandroid","unlisted":false}],"collapsible":true},{"type":"category","label":"iOS API","collapsed":false,"items":[{"type":"link","label":"ActionSheetIOS","href":"/docs/next/actionsheetios","docId":"actionsheetios","unlisted":false},{"type":"link","label":"DynamicColorIOS","href":"/docs/next/dynamiccolorios","docId":"dynamiccolorios","unlisted":false},{"type":"link","label":"Settings","href":"/docs/next/settings","docId":"settings","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true}],"组件":[{"type":"category","label":"核心组件","items":[{"type":"link","label":"核心组件和API","href":"/docs/next/components-and-apis","docId":"components-and-apis","unlisted":false},{"type":"link","label":"ActivityIndicator","href":"/docs/next/activityindicator","docId":"activityindicator","unlisted":false},{"type":"link","label":"Button","href":"/docs/next/button","docId":"button","unlisted":false},{"type":"link","label":"FlatList","href":"/docs/next/flatlist","docId":"flatlist","unlisted":false},{"type":"link","label":"Image","href":"/docs/next/image","docId":"image","unlisted":false},{"type":"link","label":"ImageBackground","href":"/docs/next/imagebackground","docId":"imagebackground","unlisted":false},{"type":"link","label":"KeyboardAvoidingView","href":"/docs/next/keyboardavoidingview","docId":"keyboardavoidingview","unlisted":false},{"type":"link","label":"Modal","href":"/docs/next/modal","docId":"modal","unlisted":false},{"type":"link","label":"Pressable","href":"/docs/next/pressable","docId":"pressable","unlisted":false},{"type":"link","label":"RefreshControl","href":"/docs/next/refreshcontrol","docId":"refreshcontrol","unlisted":false},{"type":"link","label":"ScrollView","href":"/docs/next/scrollview","docId":"scrollview","unlisted":false},{"type":"link","label":"SectionList","href":"/docs/next/sectionlist","docId":"sectionlist","unlisted":false},{"type":"link","label":"StatusBar","href":"/docs/next/statusbar","docId":"statusbar","unlisted":false},{"type":"link","label":"Switch","href":"/docs/next/switch","docId":"switch","unlisted":false},{"type":"link","label":"Text","href":"/docs/next/text","docId":"text","unlisted":false},{"type":"link","label":"TextInput","href":"/docs/next/textinput","docId":"textinput","unlisted":false},{"type":"link","label":"TouchableHighlight","href":"/docs/next/touchablehighlight","docId":"touchablehighlight","unlisted":false},{"type":"link","label":"TouchableOpacity","href":"/docs/next/touchableopacity","docId":"touchableopacity","unlisted":false},{"type":"link","label":"TouchableWithoutFeedback","href":"/docs/next/touchablewithoutfeedback","docId":"touchablewithoutfeedback","unlisted":false},{"type":"link","label":"View","href":"/docs/next/view","docId":"view","unlisted":false},{"type":"link","label":"VirtualizedList","href":"/docs/next/virtualizedlist","docId":"virtualizedlist","unlisted":false},{"type":"category","label":"Android 组件","collapsed":false,"items":[{"type":"link","label":"DrawerLayoutAndroid","href":"/docs/next/drawerlayoutandroid","docId":"drawerlayoutandroid","unlisted":false},{"type":"link","label":"TouchableNativeFeedback","href":"/docs/next/touchablenativefeedback","docId":"touchablenativefeedback","unlisted":false}],"collapsible":true},{"type":"category","label":"iOS 组件","collapsed":false,"items":[{"type":"link","label":"InputAccessoryView","href":"/docs/next/inputaccessoryview","docId":"inputaccessoryview","unlisted":false},{"type":"link","label":"SafeAreaView","href":"/docs/next/safeareaview","docId":"safeareaview","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Props","items":[{"type":"link","label":"图片样式属性","href":"/docs/next/image-style-props","docId":"image-style-props","unlisted":false},{"type":"link","label":"布局属性","href":"/docs/next/layout-props","docId":"layout-props","unlisted":false},{"type":"link","label":"阴影样式属性","href":"/docs/next/shadow-props","docId":"shadow-props","unlisted":false},{"type":"link","label":"Text 样式属性","href":"/docs/next/text-style-props","docId":"text-style-props","unlisted":false},{"type":"link","label":"View 样式属性","href":"/docs/next/view-style-props","docId":"view-style-props","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"内部对象类型","items":[{"type":"link","label":"布局事件对象","href":"/docs/next/layoutevent","docId":"layoutevent","unlisted":false},{"type":"link","label":"点击事件对象","href":"/docs/next/pressevent","docId":"pressevent","unlisted":false},{"type":"link","label":"React 节点对象","href":"/docs/next/react-node","docId":"react-node","unlisted":false},{"type":"link","label":"矩形区域对象","href":"/docs/next/rect","docId":"rect","unlisted":false},{"type":"link","label":"ViewToken 对象","href":"/docs/next/viewtoken","docId":"viewtoken","unlisted":false}],"collapsed":true,"collapsible":true}]},"docs":{"accessibility":{"id":"accessibility","title":"无障碍功能","description":"译注:accessibility 一词常见多种译法:可访问性、无障碍性、辅助功能等等,其中文意思都不太能准确表达其功能的本质——即为残障人士提供便利。本文主要采用“无障碍功能”和“辅助技术/服务”的说法。如果你或你的公司暂时没有资源和精力去服务这些用户,那么你可以跳过本文。但是,译者个人希望借本文档,呼吁有能力有资源的商业公司/组织/个人,重视残障人士使用智能手机的权利。","sidebar":"docs"},"accessibilityinfo":{"id":"accessibilityinfo","title":"AccessibilityInfo","description":"有时候我们希望知道用户的设备是否正在运行读屏应用。AccessibilityInfo正是用于此目的。你可以用它来查询读屏应用的当前状态,并且可以监听其状态变化。","sidebar":"api"},"actionsheetios":{"id":"actionsheetios","title":"ActionSheetIOS","description":"显示一个 iOS 原生的Action Sheet组件。","sidebar":"api"},"activityindicator":{"id":"activityindicator","title":"ActivityIndicator","description":"显示一个圆形的 loading 提示符号。","sidebar":"组件"},"alert":{"id":"alert","title":"Alert","description":"启动一个提示对话框,包含对应的标题和信息。","sidebar":"api"},"alertios":{"id":"alertios","title":"AlertIOS","description":"AlertIOS用于弹出一个 iOS 提示对话框,可以通知用户一些信息或是提示用户输入一些文字。"},"animated":{"id":"animated","title":"Animated","description":"Animated库旨在使动画变得流畅,强大并易于构建和维护。Animated侧重于输入和输出之间的声明性关系,以及两者之间的可配置变换,此外还提供了简单的 start/stop方法来控制基于时间的动画执行。","sidebar":"api"},"animatedvalue":{"id":"animatedvalue","title":"Animated.Value","description":"驱动动画的一维标量值. 一个Animated.Value可以同步地驱动多个属性,但每次只能以一种动画机制变化。如果改用了其他动画机制(例如开始一个新的动画或是调用setValue),则会停止先前的动画。","sidebar":"api"},"animatedvaluexy":{"id":"animatedvaluexy","title":"Animated.ValueXY","description":"2D 值用于驱动 2D 动画,例如平移手势。与普通的Animated.Value几乎相同的 API,但是可以多路复用。在内部包含两个常规的Animated.Value。","sidebar":"api"},"animations":{"id":"animations","title":"动画","description":"流畅、有意义的动画对于移动应用用户体验来说是非常重要的。现实生活中的物体在开始移动和停下来的时候都具有一定的惯性,我们在界面中也可以使用动画来实现契合物理规律的交互。","sidebar":"docs"},"app-extensions":{"id":"app-extensions","title":"iOS 应用小组件","description":"小组件允许您在主要应用程序之外提供自定义功能和内容。iOS上有不同类型的应用小组件,它们都在App Extension编程指南中进行了介绍。在本指南中,我们将简要介绍如何在iOS上利用应用小组件的优势。","sidebar":"docs"},"appearance":{"id":"appearance","title":"Appearance","description":"Appearance 模块提供了关于用户外观偏好的信息,例如他们喜欢的颜色方案(明亮或暗黑)。","sidebar":"api"},"appendix":{"id":"appendix","title":"附录","description":"一、术语","sidebar":"docs"},"appregistry":{"id":"appregistry","title":"AppRegistry","description":"仅适用于非沙盒项目","sidebar":"api"},"appstate":{"id":"appstate","title":"AppState","description":"AppState能告诉你应用当前是在前台还是在后台,并且能在状态变化的时候通知你。","sidebar":"api"},"architecture-glossary":{"id":"architecture-glossary","title":"术语表","description":"Fabric 渲染器(Fabric Renderer)"},"architecture-overview":{"id":"architecture-overview","title":"架构概览","description":"本文档还在持续更新中,会从概念上介绍 React Native 新架构是如何工作的。目标读者包括生态库的开发者、核心贡献者和特别有好奇心的人。"},"asyncstorage":{"id":"asyncstorage","title":"🚧 AsyncStorage","description":"已过时。 Use one of the community packages instead."},"backhandler":{"id":"backhandler","title":"BackHandler","description":"BackHandler API 用于监听设备上的后退按钮事件,可以调用你自己的函数来处理后退行为。此 API 仅能在 Android 上使用。","sidebar":"api"},"build-speed":{"id":"build-speed","title":"优化编译速度","description":"构建 React Native 应用可能会非常昂贵,并且需要开发人员花费数分钟的时间。","sidebar":"docs"},"building-for-tv":{"id":"building-for-tv","title":"为电视和机顶盒制作应用","description":"目前的 React Native 应用只需在 JavaScript 端简单修改甚至无需修改,在电视和机顶盒设备上就基本可用了。","sidebar":"docs"},"button":{"id":"button","title":"Button","description":"一个简单的跨平台的按钮组件。可以进行一些简单的定制。","sidebar":"组件"},"checkbox":{"id":"checkbox","title":"🚧 CheckBox","description":"Removed. Use one of the community packages instead."},"clipboard":{"id":"clipboard","title":"🚧 Clipboard","description":"Deprecated. Use one of the community packages instead."},"colors":{"id":"colors","title":"颜色","description":"React Native 中的组件是使用 JavaScript 进行样式化的。颜色属性通常与 Web 上的 CSS 工作方式相匹配。每个平台上关于颜色使用的一般指南如下:","sidebar":"docs"},"communication-android":{"id":"communication-android","title":"和原生端通信","description":"通过植入原生应用和原生 UI 组件两篇文档,我们学习了 React Native 和原生组件的互相整合。在整合的过程中,我们会需要在两个世界间互相通信。有些方法已经在其他的指南中提到了,这篇文章总结了所有可行的技术。","sidebar":"docs"},"communication-ios":{"id":"communication-ios","title":"和原生端通信","description":"通过植入原生应用和原生 UI 组件两篇文档,我们学习了 React Native 和原生组件的互相整合。在整合的过程中,我们会需要在两个世界间互相通信。有些方法已经在其他的指南中提到了,这篇文章总结了所有可行的技术。","sidebar":"docs"},"components-and-apis":{"id":"components-and-apis","title":"核心组件和API","description":"React Native 提供了一些内置的核心组件供你使用。你可以在网站的左侧看到组件的完整列表。如果你不知道从哪看起,那么可以先看一下下面这个简单的分类:","sidebar":"组件"},"custom-webview-android":{"id":"custom-webview-android","title":"Custom WebView","description":"While the built-in web view has a lot of features, it is not possible to handle every use-case in React Native. You can, however, extend the web view with native code without forking React Native or duplicating all the existing web view code."},"custom-webview-ios":{"id":"custom-webview-ios","title":"Custom WebView","description":"While the built-in web view has a lot of features, it is not possible to handle every use-case in React Native. You can, however, extend the web view with native code without forking React Native or duplicating all the existing web view code."},"datepickerandroid":{"id":"datepickerandroid","title":"🚧 DatePickerAndroid","description":"Deprecated. Use one of the community packages instead."},"datepickerios":{"id":"datepickerios","title":"🚧 DatePickerIOS","description":"Deprecated. Use one of the community packages instead."},"debugging":{"id":"debugging","title":"调试","description":"访问 App 内的开发菜单","sidebar":"docs"},"debugging-native-code":{"id":"debugging-native-code","title":"调试原生代码","description":"仅限包含原生代码的项目","sidebar":"docs"},"debugging-release-builds":{"id":"debugging-release-builds","title":"调试发行版本","description":"符号化堆栈跟踪","sidebar":"docs"},"devsettings":{"id":"devsettings","title":"DevSettings","description":"DevSettings 模块可以对开发者菜单进行一些自定义。","sidebar":"api"},"dimensions":{"id":"dimensions","title":"Dimensions","description":"本模块用于获取设备屏幕的宽高。","sidebar":"api"},"drawerlayoutandroid":{"id":"drawerlayoutandroid","title":"DrawerLayoutAndroid","description":"封装了 Android 平台DrawerLayout的 React 组件。抽屉(通常用于导航切换)是通过renderNavigationView方法渲染的,并且 DrawerLayoutAndroid 的直接子视图会成为主视图(用于放置内容)。导航视图一开始在屏幕上并不可见,不过可以从drawerPosition指定的窗口侧面拖拽出来,并且抽屉的宽度可以使用drawerWidth属性来指定。","sidebar":"组件"},"dynamiccolorios":{"id":"dynamiccolorios","title":"DynamicColorIOS","description":"DynamicColorIOS函数是专门针对iOS平台的颜色类型。","sidebar":"api"},"easing":{"id":"easing","title":"Easing","description":"Easing模块实现了常见的动画缓动函数。 这个模块被Animated.timing()用于在动画中传达真实可信的运动。","sidebar":"api"},"environment-setup":{"id":"environment-setup","title":"搭建开发环境","description":"欢迎使用 React Native!这篇文档会帮助你搭建基本的 React Native 开发环境。","sidebar":"docs"},"fabric-native-components-android":{"id":"fabric-native-components-android","title":"Fabric Native Modules: Android","description":"现在,是时候编写一些 Android 平台代码,以便能够渲染 web 视图。以下是需要的步骤:"},"fabric-native-components-introduction":{"id":"fabric-native-components-introduction","title":"Fabric Native Components Introduction","description":"如果你想构建一个 新架构 的 React Native 组件,该组件可以包装一个 Host Component,例如 Android 上的 CheckBox,或者 iOS 上的 UIButton,你应该使用 Fabric 原生组件。","sidebar":"docs"},"fabric-native-components-ios":{"id":"fabric-native-components-ios","title":"Fabric Native Components: iOS","description":"现在,是时候编写一些 iOS 平台代码,以便能够渲染 web 视图。以下是需要的步骤:"},"fabric-renderer":{"id":"fabric-renderer","title":"Fabric 渲染器","description":"Fabric 是 React Native 新架构的渲染系统,是从老架构的渲染系统演变而来的。核心原理是在 C++ 层统一更多的渲染逻辑,提升与宿主平台(host platforms)互操作性,并为 React Native 解锁更多能力。其研发始于 2018 年。从 2021 年开始, Facebook App 中的 React Native 启用了新的渲染器。"},"fast-refresh":{"id":"fast-refresh","title":"快速刷新","description":"快速刷新是 React Native 一个特性,在修改组件的时候快速刷新会给你一个即时的反馈。快速刷新默认是开启的,可以通过调整 React Native 开发者菜单里面的 \\"Enable Fast Refresh\\" 来开启或关闭。在快速刷新开启的时候,大多数的修改能在一到两秒之内呈现。","sidebar":"docs"},"flatlist":{"id":"flatlist","title":"FlatList","description":"高性能的简单列表组件,支持下面这些常用的功能:","sidebar":"组件"},"flexbox":{"id":"flexbox","title":"使用 Flexbox 布局","description":"我们在 React Native 中使用 flexbox 规则来指定某个组件的子元素的布局。Flexbox 可以在不同屏幕尺寸上提供一致的布局结构。","sidebar":"docs"},"gesture-responder-system":{"id":"gesture-responder-system","title":"手势响应系统","description":"移动设备上的手势识别要比在 web 上复杂得多。用户的一次触摸操作的真实意图是什么,App 要经过好几个阶段才能判断。比如 App 需要判断用户的触摸到底是在滚动页面,还是滑动一个 widget,或者只是一个单纯的点击。甚至随着持续时间的不同,这些操作还会转化。此外,还有多点同时触控的情况。","sidebar":"docs"},"getting-started":{"id":"getting-started","title":"简介","description":"欢迎开启 React Native 的旅程!如果你在找如何搭建环境的文档,请移步搭建开发环境。 继续往下阅读可了解关于文档结构、原生组件、React等相关的一些介绍。","sidebar":"docs"},"handling-text-input":{"id":"handling-text-input","title":"处理文本输入","description":"TextInput是一个允许用户输入文本的基础组件。它有一个名为onChangeText的属性,此属性接受一个函数,而此函数会在文本变化时被调用。另外还有一个名为onSubmitEditing的属性,会在文本被提交后(用户按下软键盘上的提交键)调用。","sidebar":"docs"},"handling-touches":{"id":"handling-touches","title":"处理触摸事件","description":"移动应用上的用户交互基本靠“摸”。当然,“摸”也是有各种姿势的:在一个按钮上点击,在一个列表上滑动,或是在一个地图上缩放。React Native 提供了可以处理常见触摸手势(例如点击或滑动)的组件, 以及可用于识别更复杂的手势的完整的手势响应系统。","sidebar":"docs"},"headless-js-android":{"id":"headless-js-android","title":"Headless JS(后台任务)","description":"Headless JS 是一种使用 js 在后台执行任务的方法。它可以用来在后台同步数据、处理推送通知或是播放音乐等等。","sidebar":"docs"},"height-and-width":{"id":"height-and-width","title":"高度与宽度","description":"组件的高度和宽度决定了其在屏幕上显示的尺寸。","sidebar":"docs"},"hermes":{"id":"hermes","title":"使用新的 Hermes 引擎","description":"Hermes 是专门针对 React Native 应用而优化的全新开源 JavaScript 引擎。对于很多应用来说,启用 Hermes 引擎可以优化启动时间,减少内存占用以及空间占用。从 React Native 0.70 版本开始 Hermes 已经默认启用,无需开发者再做任何配置。","sidebar":"docs"},"image":{"id":"image","title":"Image","description":"用于显示多种不同类型图片的 React 组件,包括网络图片、静态资源、临时的本地图片、以及本地磁盘上的图片(如相册)等。","sidebar":"组件"},"image-style-props":{"id":"image-style-props","title":"图片样式属性","description":"示例","sidebar":"组件"},"imagebackground":{"id":"imagebackground","title":"ImageBackground","description":"对于熟悉 Web 开发的开发人员来说,background-image是一个常见的功能请求。为了处理这种情况,您可以使用`组件,它具有与`相同的属性,并且可以添加任何子元素以覆盖在其上面。","sidebar":"组件"},"imagepickerios":{"id":"imagepickerios","title":"🚧 ImagePickerIOS","description":"Deprecated. Use one of the community packages instead."},"images":{"id":"images","title":"图片","description":"静态图片资源","sidebar":"docs"},"improvingux":{"id":"improvingux","title":"改进用户体验","description":"配置文本输入"},"inputaccessoryview":{"id":"inputaccessoryview","title":"InputAccessoryView","description":"一个可以在iOS上自定义键盘输入辅助视图的组件。当TextInput获得焦点时,输入辅助视图显示在键盘上方。该组件可用于创建自定义工具栏。","sidebar":"组件"},"integration-with-android-fragment":{"id":"integration-with-android-fragment","title":"集成到 Android Fragment","description":"与现有应用程序集成指南中详细介绍了如何将全屏 React Native 应用程序作为 Activity 集成到现有 Android 应用程序中。要在现有应用程序的 Fragments 中使用 React Native 组件,需要进行一些额外的设置。这样做的好处是它允许原生应用程序将 React Native 组件与 Activity 中的原生 Fragments 集成在一起。","sidebar":"docs"},"integration-with-existing-apps":{"id":"integration-with-existing-apps","title":"集成到现有原生应用","description":"如果你正准备从头开始制作一个新的应用,那么 React Native 会是个非常好的选择。但如果你只想给现有的原生应用中添加一两个视图或是业务流程,React Native 也同样不在话下。只需简单几步,你就可以给原有应用加上新的基于 React Native 的特性、画面和视图等。","sidebar":"docs"},"interactionmanager":{"id":"interactionmanager","title":"InteractionManager","description":"Interactionmanager 可以将一些耗时较长的工作安排到所有互动或动画完成之后再进行。这样可以保证 JavaScript 动画的流畅运行。","sidebar":"api"},"intro-react":{"id":"intro-react","title":"React 基础","description":"要深入理解 React Native,需要扎实的React 基础知识。这篇小教程可以帮助你入门或者温习相关知识。","sidebar":"docs"},"intro-react-native-components":{"id":"intro-react-native-components","title":"核心组件与原生组件","description":"React Native 使用完全原生的组件来构建应用界面。尤其方便的是它已经内置了大量直接上手可用的核心组件。","sidebar":"docs"},"javascript-environment":{"id":"javascript-environment","title":"JavaScript 环境","description":"JavaScript 运行时环境","sidebar":"docs"},"keyboard":{"id":"keyboard","title":"Keyboard","description":"Keyboard模块用来控制键盘相关的事件。","sidebar":"api"},"keyboardavoidingview":{"id":"keyboardavoidingview","title":"KeyboardAvoidingView","description":"本组件用于解决一个常见的尴尬问题:手机上弹出的键盘常常会挡住当前的视图。本组件可以自动根据键盘的高度,调整自身的 height 或底部的 padding,以避免被遮挡。","sidebar":"组件"},"layout-props":{"id":"layout-props","title":"布局属性","description":"更多关于这些属性的详细示例可以在Flexbox 布局页面上找到。","sidebar":"组件"},"layoutanimation":{"id":"layoutanimation","title":"LayoutAnimation","description":"当布局变化时,自动将视图运动到它们新的位置上。","sidebar":"api"},"layoutevent":{"id":"layoutevent","title":"布局事件对象","description":"LayoutEvent object is returned in the callback as a result of component layout change, for example onLayout in View component.","sidebar":"组件"},"legacy/direct-manipulation":{"id":"legacy/direct-manipulation","title":"直接操作","description":"有时候我们需要直接改动组件并触发局部的刷新,但不使用 state 或是 props。譬如在浏览器中使用 React 库,有时候会需要直接修改一个 DOM 节点,而在手机 App 中操作 View 时也会碰到同样的情况。在 React Native 中,setNativeProps就是等价于直接操作 DOM 节点的方法。","sidebar":"docs"},"legacy/local-library-setup":{"id":"legacy/local-library-setup","title":"Local libraries setup","description":"A local library is a library containing views or modules that\'s local to your app and not published to a registry. This is different from the traditional setup for view and modules in the sense that a local library is decoupled from your app\'s native code.","sidebar":"docs"},"legacy/native-components-android":{"id":"legacy/native-components-android","title":"Android 原生UI组件","description":"在如今的 App 中,已经有成千上万的原生 UI 部件了——其中的一些是平台的一部分,另一些可能来自于一些第三方库,而且可能你自己还收藏了很多。React Native 已经封装了大部分最常见的组件,譬如ScrollView和TextInput,但不可能封装全部组件。而且,说不定你曾经为自己以前的 App 还封装过一些组件,React Native 肯定没法包含它们。幸运的是,在 React Naitve 应用程序中封装和植入已有的组件非常简单。","sidebar":"docs"},"legacy/native-components-ios":{"id":"legacy/native-components-ios","title":"iOS 原生UI组件","description":"在如今的 App 中,已经有成千上万的原生 UI 部件了——其中的一些是平台的一部分,另一些可能来自于一些第三方库,而且可能你自己还收藏了很多。React Native 已经封装了大部分最常见的组件,譬如ScrollView和TextInput,但不可能封装全部组件。而且,说不定你曾经为自己以前的 App 还封装过一些组件,React Native 肯定没法包含它们。幸运的是,在 React Naitve 应用程序中封装和植入已有的组件非常简单。","sidebar":"docs"},"legacy/native-modules-android":{"id":"legacy/native-modules-android","title":"Android 原生模块","description":"欢迎来到 Android 的原生模块。请先阅读 原生模块简介 以了解原生模块的基本概念。","sidebar":"docs"},"legacy/native-modules-intro":{"id":"legacy/native-modules-intro","title":"原生模块简介","description":"有时候 App 需要访问平台 API,但 React Native 可能还没有相应的模块包装;或者你需要复用一些 Java 代码,而不是用 Javascript 重新实现一遍;又或者你需要实现某些高性能的、多线程的代码,譬如图片处理、数据库、或者各种高级扩展等等。","sidebar":"docs"},"legacy/native-modules-ios":{"id":"legacy/native-modules-ios","title":"iOS 原生模块","description":"有时候 App 需要访问平台 API,但 React Native 可能还没有相应的模块封装;或者你需要复用 Objective-C、Swift 或 C++代码,而不是用 JavaScript 重新实现一遍;又或者你需要实现某些高性能、多线程的代码,譬如图片处理、数据库、或者各种高级扩展等等。","sidebar":"docs"},"legacy/native-modules-setup":{"id":"legacy/native-modules-setup","title":"Native Modules NPM Package Setup","description":"Native modules are usually distributed as npm packages, except that on top of the usual JavaScript they will include some native code per platform. To understand more about npm packages you may find this guide useful.","sidebar":"docs"},"libraries":{"id":"libraries","title":"使用第三方库","description":"This guide introduces React Native developers to finding, installing, and using third-party libraries in their apps.","sidebar":"docs"},"linking":{"id":"linking","title":"Linking","description":"Linking提供了一个通用的接口来与传入和传出的 App 链接进行交互。","sidebar":"api"},"linking-libraries-ios":{"id":"linking-libraries-ios","title":"链接原生库","description":"并不是所有的 APP 都需要使用全部的原生功能,包含支持全部特性的代码会增大应用的体积。但我们仍然希望能让你简单地根据自己的需求添加需要的特性。","sidebar":"docs"},"metro":{"id":"metro","title":"Metro","description":"React Native 使用Metro构建 JavaScript 代码和资源。","sidebar":"docs"},"modal":{"id":"modal","title":"Modal","description":"Modal 组件是一种简单的覆盖在其他视图之上显示内容的方式。","sidebar":"组件"},"more-resources":{"id":"more-resources","title":"其他参考资源","description":"如果你耐心的读完并理解了本网站上的所有文档,那么你应该已经可以编写一个像样的 React Native 应用了。但是 React Native 并不全是某一家公司的作品——它汇聚了成千上万开源社区开发者的智慧结晶。如果你想深入研究 React Native,那么建议不要错过下面这些参考资源。","sidebar":"docs"},"native-platform":{"id":"native-platform","title":"桥接原生平台能力","description":"你的应用可能需要访问 React Native 或社区维护的数百个 第三方库 中未直接提供的平台功能。也许你想要重用一些现有的 Objective-C、Swift、Java、Kotlin 或 C++ 代码。无论你的原因是什么,React Native 都提供了一组强大的 API 来连接你的原生代码和 JavaScript 应用代码。","sidebar":"docs"},"navigation":{"id":"navigation","title":"使用导航器跳转页面","description":"移动应用基本不会只由一个页面组成。管理多个页面的呈现、跳转的组件就是我们通常所说的导航器(navigator)。","sidebar":"docs"},"netinfo":{"id":"netinfo","title":"NetInfo","description":"已过时。 Use react-native-community/react-native-netinfo instead."},"network":{"id":"network","title":"访问网络","description":"很多移动应用都需要从远程地址中获取数据或资源。你可能需要给某个 REST API 发起 POST 请求以提交用户数据,又或者可能仅仅需要从某个服务器上获取一些静态内容——以下就是你会用到的东西。新手可以对照这个简短的视频教程加深理解。","sidebar":"docs"},"new-architecture-app-intro":{"id":"new-architecture-app-intro","title":"在应用中启用的预备工作","description":"在启用新架构之前,应先满足一些先决条件。"},"new-architecture-app-modules-ios":{"id":"new-architecture-app-modules-ios","title":"在 iOS 上启用 TurboModule","description":"Make sure your application meets all the prerequisites."},"new-architecture-app-renderer-android":{"id":"new-architecture-app-renderer-android","title":"在 Android 上启用 Fabric","description":"Make sure your application meets all the prerequisites."},"new-architecture-app-renderer-ios":{"id":"new-architecture-app-renderer-ios","title":"在 iOS 上启用 Fabric","description":"This section will go over how to enable the new renderer in your app. Make sure your application meets all the prerequisites."},"new-architecture-intro":{"id":"new-architecture-intro","title":"迁移到新架构","description":"此迁移指南旨在为React Native的库作者和应用程序开发者提供。它概述了您需要遵循的步骤,以在您的Android和iOS库和应用中使用由新的NativeModule系统(TurboModule)和新的渲染器(Fabric)组成的新架构。"},"new-architecture-library-android":{"id":"new-architecture-library-android","title":"在 Android 库中启用","description":"一旦您在先决条件中定义了本机模块的 JavaScript 规范,设置了 CodeGen 配置,并遵循了 Android/Gradle 设置,然后就可以将您的库迁移到新架构。以下是迁移所需的步骤。"},"new-architecture-library-intro":{"id":"new-architecture-library-intro","title":"在库中启用的预备工作","description":"The following steps will help ensure your modules and components are ready for the New Architecture."},"new-architecture-library-ios":{"id":"new-architecture-library-ios","title":"在 iOS 库中启用","description":"You have defined the JavaScript specs for your native modules as part of the prerequisites, and you are now ready to migrate your library to the New Architecture. Here are the steps you can follow to accomplish this."},"new-architecture-troubleshooting":{"id":"new-architecture-troubleshooting","title":"常见问题","description":"本页面会记录一些迁移到新架构时可能遇到的常见问题的解决方案。"},"new-architecture-turbo-modules":{"id":"new-architecture-turbo-modules","title":"新架构的原生模块(Turbo Module)","description":"If you\'ve worked with React Native, you may be familiar with the concept of Native Modules, which allow JavaScript and platform-native code to communicate over the React Native \\"bridge\\", which handles cross-platform serialization via JSON."},"optimizing-flatlist-configuration":{"id":"optimizing-flatlist-configuration","title":"列表配置优化","description":"术语定义","sidebar":"docs"},"optimizing-javascript-loading":{"id":"optimizing-javascript-loading","title":"Optimizing JavaScript loading","description":"解析和运行 JavaScript 代码需要内存和时间。因此,随着你的应用程序增长,通常将代码加载延迟到首次需要时是有用的。React Native 自带一些默认开启的标准优化,并且你可以在自己的代码中采用一些技术来帮助 React 更有效地加载你的应用程序。还有一些适合非常大应用程序的高级自动优化(它们也有自己的权衡)。","sidebar":"docs"},"other-debugging-methods":{"id":"other-debugging-methods","title":"其他调试方法","description":"此页面介绍了除 打开调试器 中描述的方法之外的其他 JavaScript 调试方法。如果你正在使用新创建的 React Native 或 Expo 应用,我们建议从那里开始。","sidebar":"docs"},"out-of-tree-platforms":{"id":"out-of-tree-platforms","title":"多平台支持","description":"React Native不仅适用于 Android 和 iOS - 还有社区支持的项目将其应用于其他平台,例如:","sidebar":"docs"},"panresponder":{"id":"panresponder","title":"PanResponder","description":"PanResponder类可以将多点触摸操作协调成一个手势。它使得一个单点触摸可以接受更多的触摸操作,也可以用于识别简单的多点触摸手势。","sidebar":"api"},"performance":{"id":"performance","title":"性能综述","description":"使用 React Native 替代基于 WebView 的框架来开发 App 的一个强有力的理由,就是为了使 App 可以达到每秒 60 帧(足够流畅),并且能有类似原生 App 的外观和手感。因此我们也尽可能地优化 React Native 去实现这一目标,使开发者能集中精力处理 App 的业务逻辑,而不用费心考虑性能。但是,总还是有一些地方有所欠缺,以及在某些场合 React Native 还不能够替你决定如何进行优化(用原生代码写也无法避免),因此人工的干预依然是必要的。","sidebar":"docs"},"permissionsandroid":{"id":"permissionsandroid","title":"PermissionsAndroid","description":"仅适用于非沙盒项目","sidebar":"api"},"pixelratio":{"id":"pixelratio","title":"PixelRatio","description":"PixelRatio 可以获取到设备的像素密度和字体缩放比。","sidebar":"api"},"platform":{"id":"platform","title":"Platform","description":"Example","sidebar":"api"},"platform-specific-code":{"id":"platform-specific-code","title":"特定平台代码","description":"在编写跨平台的应用时,我们肯定希望尽可能多地复用代码。但是总有些时候我们会碰到针对不同平台编写不同代码的需求。","sidebar":"docs"},"platformcolor":{"id":"platformcolor","title":"PlatformColor","description":"You can use the PlatformColor function to access native colors on the target platform by supplying the native color’s corresponding string value. You pass a string to the PlatformColor function and, provided it exists on that platform, it will return the corresponding native color, which you can apply in any part of your application.","sidebar":"api"},"pressable":{"id":"pressable","title":"Pressable","description":"Pressable 是一个核心组件的封装,它可以检测到任意子组件的不同阶段的按压交互情况。","sidebar":"组件"},"pressevent":{"id":"pressevent","title":"点击事件对象","description":"点击事件对象作为用户按压交互的结果在回调中返回,例如 Button 组件中的 onPress。","sidebar":"组件"},"profile-hermes":{"id":"profile-hermes","title":"在 Hermes 中进行性能分析","description":"你可以使用Hermes在 React Native 应用中可视化 JavaScript 的性能。Hermes 是一个小型且轻量的 JavaScript 引擎(你可以在这里阅读更多有关在 React Native 中使用它的信息)。Hermes 有助于提高应用性能,并且还提供了分析其运行的 JavaScript 性能的方式。"},"profiling":{"id":"profiling","title":"Profiling","description":"使用内置的性能分析器获取 JavaScript 线程和主线程并排的详细工作信息。从调试菜单中选择 Perf Monitor 即可访问它。","sidebar":"docs"},"progressbarandroid":{"id":"progressbarandroid","title":"🚧 ProgressBarAndroid","description":"已过时。 Use @react-native-community/progress-bar-android instead."},"progressviewios":{"id":"progressviewios","title":"🚧 ProgressViewIOS","description":"已过时。 Use @react-native-community/progress-view instead."},"props":{"id":"props","title":"Props(属性)","description":"大多数组件在创建时就可以使用各种参数来进行定制。用于定制的这些参数就称为props(属性)。"},"publishing-to-app-store":{"id":"publishing-to-app-store","title":"上架 App Store","description":"上架应用的过程和任何其它原生 iOS 应用一样,但有一些额外的注意事项要考虑。","sidebar":"docs"},"pushnotificationios":{"id":"pushnotificationios","title":"🚧 PushNotificationIOS","description":"已过时。 Use @react-native-community/push-notification-ios instead."},"ram-bundles-inline-requires":{"id":"ram-bundles-inline-requires","title":"RAM Bundles 和内联引用优化","description":"如果你有一个较为庞大的应用程序,你可能要考虑使用RAM(Random Access Modules,随机存取模块)格式的 bundle 和内联引用。这对于具有大量页面的应用程序是非常有用的,这些页面在应用程序的典型使用过程中可能不会被打开。通常对于启动后一段时间内不需要大量代码的应用程序来说是非常有用的。例如应用程序包含复杂的配置文件屏幕或较少使用的功能,但大多数会话只涉及访问应用程序的主屏幕更新。我们可以通过使用RAM格式来优化bundle的加载,并且内联引用这些功能和页面(当它们被实际使用时)。"},"react-18-and-react-native":{"id":"react-18-and-react-native","title":"React 18 与 React Native","description":"这个页面描述了如何在 React Native 的新架构中启用 React 18 版本。"},"react-native-devtools":{"id":"react-native-devtools","title":"React Native 开发者工具","description":"React Native DevTools 是我们新的调试体验,它对我们的调试堆栈进行了端到端的重新编写。它旨在比以前的调试方法更深入地集成,并且从根本上更可靠。","sidebar":"docs"},"react-native-gradle-plugin":{"id":"react-native-gradle-plugin","title":"React Native Gradle Plugin","description":"本指南描述了如何配置 React Native Gradle Plugin(通常称为 RNGP)来为 Android 构建 React Native 应用。","sidebar":"docs"},"react-node":{"id":"react-node","title":"React 节点对象","description":"React 节点对象有以下这些类型:","sidebar":"组件"},"rect":{"id":"rect","title":"矩形区域对象","description":"Rect 接受数值像素值来描述如何扩展矩形区域。这些值会被添加到原始区域的大小上以扩展它。","sidebar":"组件"},"rectorsize":{"id":"rectorsize","title":"RectOrSize Object Type","description":"RectOrSize接受数字像素值来描述如何扩展矩形区域。这些值会被添加到原始区域的大小上以扩展它。"},"refreshcontrol":{"id":"refreshcontrol","title":"RefreshControl","description":"这一组件可以用在 ScrollView 或 FlatList 内部,为其添加下拉刷新的功能。当 ScrollView 处于竖直方向的起点位置(scrollY: 0),此时下拉会触发一个onRefresh事件。","sidebar":"组件"},"removing-default-permissions":{"id":"removing-default-permissions","title":"移除不需要的权限","description":"默认情况下我们会给最终打包的 APK 加入一些权限申请,具体如下:"},"render-pipeline":{"id":"render-pipeline","title":"渲染,提交与挂载(渲染流水线)","description":"文档介绍了即将发布的新渲染器 Fabric 的架构。"},"roottag":{"id":"roottag","title":"RootTag","description":"RootTag 是用于标记 React Native 原生根视图层的不透明标识符(opaque identifier)。具体来说就是 ReactRootView(android) 或是 RCTRootView(iOS) 的实例 ID.","sidebar":"api"},"running-on-device":{"id":"running-on-device","title":"在设备上运行","description":"在真机上仔细测试 app 后再发布给用户总是不会错的。本文档将指导你通过必须的步骤在设备上运行 React Native app,为生产做准备。","sidebar":"docs"},"running-on-simulator-ios":{"id":"running-on-simulator-ios","title":"在iOS模拟器上运行","description":"启动模拟器","sidebar":"docs"},"safeareaview":{"id":"safeareaview","title":"SafeAreaView","description":"SafeAreaView的目的是在一个“安全”的可视区域内渲染内容。具体来说就是因为目前有 iPhone X 这样的带有“刘海”的全面屏设备,所以需要避免内容渲染到不可见的“刘海”范围内。本组件目前仅支持 iOS 设备以及 iOS 11 或更高版本。","sidebar":"组件"},"sample-application-movies":{"id":"sample-application-movies","title":"示例教程:电影列表","description":"简介"},"scrollview":{"id":"scrollview","title":"ScrollView","description":"一个封装了平台的 ScrollView(滚动视图)的组件,同时还集成了触摸锁定的“响应者”系统。","sidebar":"组件"},"sectionlist":{"id":"sectionlist","title":"SectionList","description":"高性能的分组(section)列表组件,支持下面这些常用的功能:","sidebar":"组件"},"security":{"id":"security","title":"网络安全策略","description":"开发应用时安全常常是一个被忽视的话题。的确,搭建一个完全无懈可击的软件是不可能的——我们还没有发明一个完全坚不可摧的锁(毕竟,银行金库已经足够坚固但仍然会被闯入)。然而,遭受恶意攻击或暴露安全漏洞的可能性与您愿意投入保护应用程序免受此类事件的努力成反比。尽管普通的挂锁可以被撬开,但它仍然比橱柜挂钩更难攻破!","sidebar":"docs"},"segmentedcontrolios":{"id":"segmentedcontrolios","title":"🚧 SegmentedControlIOS","description":"已过时。 Use @react-native-community/segmented-control instead."},"settings":{"id":"settings","title":"Settings","description":"Settings是对NSUserDefaults的封装。它是iOS平台上的一种持久的键值对存储。","sidebar":"api"},"shadow-props":{"id":"shadow-props","title":"阴影样式属性","description":"These properties are iOS only - for similar functionality on Android, use the elevation property.","sidebar":"组件"},"share":{"id":"share","title":"Share","description":"示例","sidebar":"api"},"signed-apk-android":{"id":"signed-apk-android","title":"打包发布","description":"Android 要求所有应用都有一个数字签名才会被允许安装在用户手机上,所以在把应用发布到应用市场之前,你需要先生成一个签名的 AAB 或 APK 包(Google Play 现在要求 AAB 格式,而国内的应用市场目前仅支持 APK 格式。但无论哪种格式,下面的签名步骤是一样的)。Android 开发者官网上的如何给你的应用签名文档描述了签名的细节。本指南旨在提供一个简化的签名和打包的操作步骤,不会涉及太多理论。","sidebar":"docs"},"slider":{"id":"slider","title":"🚧 Slider","description":"已过时。 Use @react-native-community/slider instead."},"speeding-ci-builds":{"id":"speeding-ci-builds","title":"优化 CI 构建","description":"You or your company may have set up a Continuous Integration (CI) environment to test your React Native application."},"state":{"id":"state","title":"State(状态)","description":"我们使用两种数据来控制一个组件:props和state。props是在父组件中指定,而且一经指定,在被指定的组件的生命周期中则不再改变。对于需要改变的数据,我们需要使用state。"},"statusbar":{"id":"statusbar","title":"StatusBar","description":"控制应用状态栏的组件。","sidebar":"组件"},"style":{"id":"style","title":"样式","description":"在 React Native 中,你并不需要学习什么特殊的语法来定义样式。我们仍然是使用 JavaScript 来写样式。所有的核心组件都接受名为style的属性。这些样式名基本上是遵循了 web 上的 CSS 的命名,只是按照 JS 的语法要求使用了驼峰命名法,例如将background-color改为backgroundColor。","sidebar":"docs"},"stylesheet":{"id":"stylesheet","title":"StyleSheet","description":"StyleSheet 提供了一种类似 CSS 样式表的抽象。","sidebar":"api"},"switch":{"id":"switch","title":"Switch","description":"跨平台通用的“开关”组件。","sidebar":"组件"},"symbolication":{"id":"symbolication","title":"Symbolicating a stack trace","description":"If a React Native app throws an unhandled exception in a release build, the output may be obfuscated and hard to read:"},"systrace":{"id":"systrace","title":"Systrace","description":"Systrace is a standard Android marker-based profiling tool (and is installed when you install the Android platform-tools package). Profiled code blocks are surrounded by start/end markers which are then visualized in a colorful chart format. Both the Android SDK and React Native framework provide standard markers that you can visualize.","sidebar":"api"},"testing-overview":{"id":"testing-overview","title":"Testing","description":"This guide introduces React Native developers to the key concepts behind testing, how to write good tests, and what kinds of tests you can incorporate into your workflow.","sidebar":"docs"},"text":{"id":"text","title":"Text","description":"一个用于显示文本的 React 组件,并且它也支持嵌套、样式,以及触摸处理。","sidebar":"组件"},"text-style-props":{"id":"text-style-props","title":"Text 样式属性","description":"示例","sidebar":"组件"},"textinput":{"id":"textinput","title":"TextInput","description":"TextInput 是一个允许用户在应用中通过键盘输入文本的基本组件。本组件的属性提供了多种特性的配置,譬如自动完成、自动大小写、占位文字,以及多种不同的键盘类型(如纯数字键盘)等等。","sidebar":"组件"},"the-new-architecture/backward-compatibility":{"id":"the-new-architecture/backward-compatibility","title":"向后兼容的意义","description":"创建一个向后兼容的模块很重要,这样可以实现在旧架构和新架构中都能工作的库。并不是所有用户都会立刻转到新架构,最好在他们使用旧架构时仍然保持兼容。"},"the-new-architecture/backward-compatibility-fabric-components":{"id":"the-new-architecture/backward-compatibility-fabric-components","title":"使 Fabric 组件与传统原生组件兼容","description":"创建向后兼容的 Fabric 原生组件需要了解如何创建传统的原生组件。要回忆这些概念,请查看此指南。"},"the-new-architecture/backward-compatibility-turbomodules":{"id":"the-new-architecture/backward-compatibility-turbomodules","title":"使 Turbo 模块与传统原生模块兼容","description":"创建向后兼容的 Turbo 原生模块需要了解如何创建传统的原生模块。要回忆这些概念,请查看此指南。"},"the-new-architecture/codegen-cli":{"id":"the-new-architecture/codegen-cli","title":"Codegen 命令行工具","description":"调用 Gradle 或手动调用脚本可能很难记住,并且需要很多步骤。","sidebar":"docs"},"the-new-architecture/create-module-library":{"id":"the-new-architecture/create-module-library","title":"创建模块库","description":"React Native 有一个丰富的生态系统库来解决常见问题。我们在 reactnative.directory 网站上收集 React Native 库,这是一个很好的资源,值得每个 React Native 开发者收藏。","sidebar":"docs"},"the-new-architecture/custom-cxx-types":{"id":"the-new-architecture/custom-cxx-types","title":"高级:自定义 C++ 类型","description":"本指南假设你熟悉 纯 C++ Turbo Native 模块 指南。它将在此基础上进行构建。","sidebar":"docs"},"the-new-architecture/cxx-custom-types":{"id":"the-new-architecture/cxx-custom-types","title":"支持自定义 C++ 类型","description":"默认情况下,C++ Turbo Native 模块支持大多数 std:: 标准类型的桥接功能。"},"the-new-architecture/cxx-cxxturbomodules":{"id":"the-new-architecture/cxx-cxxturbomodules","title":"C++ Turbo 原生模块","description":"本指南将向您展示如何仅使用 C++ 实现 Turbo 原生模块,以便与任何支持的平台(Android、iOS、macOS 或 Windows)共享相同的实现。"},"the-new-architecture/landing-page":{"id":"the-new-architecture/landing-page","title":"新架构介绍","description":"从 0.68 版本开始,React Native 提供了新架构,它为开发者提供了构建高性能和响应式应用的新功能。请访问\\"为何要设计新架构\\"来了解更多关于促使我们决定重新架构的原因,以及它提供的好处。"},"the-new-architecture/pillars":{"id":"the-new-architecture/pillars","title":"新架构的两大支柱","description":"新架构主要由两大支柱组成:"},"the-new-architecture/pillars-codegen":{"id":"the-new-architecture/pillars-codegen","title":"Codegen","description":"Codegen 不算是新架构的主要组成部分,它是一个帮助我们避免编写重复代码的工具。Codegen 并非必选项,您仍然可以手写它所生成的代码,但是使用它来生成脚手架代码可以帮您节省不少时间。"},"the-new-architecture/pillars-fabric-components":{"id":"the-new-architecture/pillars-fabric-components","title":"Fabric 组件","description":"Fabric 组件是一种使用 Fabric 渲染器渲染并展示在屏幕上的 UI 组件。在新架构中,使用 Fabric 组件替代原生组件具有以下优势:"},"the-new-architecture/pillars-turbomodules":{"id":"the-new-architecture/pillars-turbomodules","title":"TurboModules","description":"如果您使用过 React Native,您可能了解过 Native Modules 这个概念。它可以通过 React Native 的「Bridge」帮助 JavaScript 和原生代码进行交互,并使用跨平台的数据格式 JSON 进行通讯。"},"the-new-architecture/pure-cxx-modules":{"id":"the-new-architecture/pure-cxx-modules","title":"使用 C++ 实现跨平台的原生模块","description":"编写 C++ 模块是跨 Android 和 iOS 共享平台无关代码的最佳方式。使用纯 C++ 模块,您只需编写一次逻辑,即可在所有平台上重用它,而无需编写平台特定的代码。","sidebar":"docs"},"the-new-architecture/use-app-template":{"id":"the-new-architecture/use-app-template","title":"创建启用新架构的应用","description":"本文档将帮助你从头创建一个启用了新架构的 React Native 应用。"},"the-new-architecture/using-codegen":{"id":"the-new-architecture/using-codegen","title":"使用 Codegen","description":"本指南将教你如何:","sidebar":"docs"},"the-new-architecture/what-is-codegen":{"id":"the-new-architecture/what-is-codegen","title":"什么是 Codegen?","description":"Codegen 是一个避免编写大量重复代码的工具。使用 Codegen 并不是必须的:您可以手动编写所有生成的代码。然而,Codegen 生成的脚手架代码可以节省您很多时间。","sidebar":"docs"},"the-new-architecture/why":{"id":"the-new-architecture/why","title":"为何要设计新架构","description":"新架构的目标是解决困扰旧架构在性能和灵活性方面的一些问题。本节提供了基本的背景,以了解旧架构的局限性,以及如何通过新架构来克服这些局限性。"},"threading-model":{"id":"threading-model","title":"线程模型","description":"文档介绍了即将发布的新渲染器 Fabric 的架构。"},"timepickerandroid":{"id":"timepickerandroid","title":"🚧 TimePickerAndroid","description":"已过时。 Use @react-native-community/datetimepicker instead."},"timers":{"id":"timers","title":"定时器","description":"定时器是一个应用中非常重要的部分。React Native 实现了和浏览器一致的定时器 Timer。","sidebar":"docs"},"toastandroid":{"id":"toastandroid","title":"ToastAndroid","description":"本模块将原生的 ToastAndroid 模块导出为一个 JS 模块,用于在 Android 设备上显示一个悬浮的提示信息。本模块包含一个show方法接受以下的参数:","sidebar":"api"},"touchablehighlight":{"id":"touchablehighlight","title":"TouchableHighlight","description":"我们建议使用Pressable组件,它更具扩展性且会是官方未来力推的主流。","sidebar":"组件"},"touchablenativefeedback":{"id":"touchablenativefeedback","title":"TouchableNativeFeedback","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"组件"},"touchableopacity":{"id":"touchableopacity","title":"TouchableOpacity","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"组件"},"touchablewithoutfeedback":{"id":"touchablewithoutfeedback","title":"TouchableWithoutFeedback","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"组件"},"transforms":{"id":"transforms","title":"变换(Transform)","description":"变换(Transform)是样式属性,可帮助您使用 2D 或 3D 变换修改组件的外观和位置。然而,即便使用了变换,使用变换的组件的布局并不会变化,因此可能会与附近的组件重叠。您可以对变换的组件、附近的组件应用边距,或对容器应用填充,以防止这种重叠。","sidebar":"api"},"troubleshooting":{"id":"troubleshooting","title":"Troubleshooting","description":"These are some common issues you may run into while setting up React Native. If you encounter something that is not listed here, try searching for the issue in GitHub."},"turbo-native-modules-android":{"id":"turbo-native-modules-android","title":"Turbo 原生模块:Android","description":"现在我们来编写一些 Android 平台代码,以确保 localStorage 在应用关闭后仍然可以持久保存数据。"},"turbo-native-modules-introduction":{"id":"turbo-native-modules-introduction","title":"Turbo 原生模块介绍","description":"你的 React Native 应用代码可能需要与 React Native 或现有库未提供的原生平台 API 进行交互。你可以使用 Turbo 原生模块 自己编写集成代码。本指南将向你展示如何编写一个。","sidebar":"docs"},"turbo-native-modules-ios":{"id":"turbo-native-modules-ios","title":"Turbo 原生模块:iOS","description":"现在我们来编写一些 iOS 平台代码,以确保 localStorage 在应用关闭后仍然可以持久保存数据。"},"tutorial":{"id":"tutorial","title":"示例教程:Hello World","description":"React Native 看起来很像 React,只不过其基础组件是原生组件而非 web 组件。要理解 React Native 应用的基本结构,首先需要了解一些基本的 React 的概念,比如 JSX 语法、组件、state状态以及props属性。如果你已经了解了 React,那么还需要掌握一些 React Native 特有的知识,比如原生组件的使用。这篇教程可以供任何基础的读者学习,不管你是否有 React 方面的经验。"},"typescript":{"id":"typescript","title":"使用 TypeScript","description":"TypeScript 是一种通过添加类型定义来扩展 JavaScript 的语言。新的 React Native 项目默认以 TypeScript 为目标,同时也支持 JavaScript 和 Flow。","sidebar":"docs"},"upgrading":{"id":"upgrading","title":"更新","description":"时刻将 React Native 更新到最新的版本,可以获得更多 API、视图、开发者工具以及其他一些好东西(译注:官方开发任务繁重,人手紧缺,几乎不会对旧版本提供维护支持,所以即便更新可能带来一些兼容上的变更,但建议开发者还是尽一切可能第一时间更新)。由于一个完整的 React Native 项目是由 Android 项目、iOS 项目和 JavaScript 项目组成的,且都打包在一个 npm 包中,所以升级可能会有一些麻烦。我们会尽量简化这一流程。你可以在项目目录下使用npx react-native info命令查看当前的版本。","sidebar":"docs"},"usecolorscheme":{"id":"usecolorscheme","title":"useColorScheme","description":"useColorScheme 这个React hook 提供并订阅来自Appearance模块的颜色方案更新。返回值表示当前用户首选的颜色方案。该值可以稍后通过直接用户动作(例如,设备设置中的主题选择)或根据时间表(例如,遵循白天/夜晚周期的亮主题和暗主题)来更新。","sidebar":"api"},"usewindowdimensions":{"id":"usewindowdimensions","title":"useWindowDimensions","description":"useWindowDimensions会在屏幕尺寸变化时自动更新获取到的设备width和height值。使用方法如下:","sidebar":"api"},"using-a-listview":{"id":"using-a-listview","title":"使用长列表","description":"React Native 提供了几个适用于展示长列表数据的组件,一般而言我们会选用FlatList或是SectionList。","sidebar":"docs"},"using-a-scrollview":{"id":"using-a-scrollview","title":"使用滚动视图","description":"ScrollView是一个通用的可滚动的容器,你可以在其中放入多个组件和视图,而且这些组件并不需要是同类型的。ScrollView 不仅可以垂直滚动,还能水平滚动(通过horizontal属性来设置)。","sidebar":"docs"},"vibration":{"id":"vibration","title":"Vibration","description":"使设备振动。","sidebar":"api"},"view":{"id":"view","title":"View","description":"作为创建 UI 时最基础的组件,View 是一个支持 Flexbox 布局、样式、触摸响应、和一些无障碍功能的容器。不论在什么平台上,View 都直接对应当前平台的原生视图,无论它是 UIView、div 还是 android.view.View。","sidebar":"组件"},"view-flattening":{"id":"view-flattening","title":"视图拍平","description":"This document refers to the architecture of the new renderer, Fabric, that is in active roll-out."},"view-style-props":{"id":"view-style-props","title":"View 样式属性","description":"示例","sidebar":"组件"},"viewpagerandroid":{"id":"viewpagerandroid","title":"🚧 ViewPagerAndroid","description":"已过时。 Use @react-native-community/viewpager instead."},"viewtoken":{"id":"viewtoken","title":"ViewToken 对象","description":"ViewToken object is returned as one of properties in the onViewableItemsChanged callback, for example in FlatList component. It is exported by ViewabilityHelper.js.","sidebar":"组件"},"virtualizedlist":{"id":"virtualizedlist","title":"VirtualizedList","description":"FlatList和SectionList的底层实现。FlatList 和 SectionList 使用起来更方便,同时也有相对更详细的文档。一般来说,仅当想获得比 FlatList 更高的灵活性(比如说在使用 immutable data 而不是 普通数组)的时候,你才应该考虑使用 VirtualizedList。","sidebar":"组件"},"xplat-implementation":{"id":"xplat-implementation","title":"跨平台的实现","description":"This document refers to the architecture of the new renderer, Fabric, that is in active roll-out."}}}}'); + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/bf1307fc.d7595d29.js b/assets/js/bf1307fc.d7595d29.js new file mode 100644 index 00000000000..169be407b8a --- /dev/null +++ b/assets/js/bf1307fc.d7595d29.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[9525],{31413:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":"unreleased","badge":true,"noIndex":false,"className":"docs-version-current","isLast":false,"docsSidebars":{"docs":[{"type":"category","label":"\u5165\u95e8\u57fa\u7840","items":[{"type":"link","label":"\u7b80\u4ecb","href":"/docs/next/getting-started","docId":"getting-started","unlisted":false},{"type":"link","label":"\u6838\u5fc3\u7ec4\u4ef6\u4e0e\u539f\u751f\u7ec4\u4ef6","href":"/docs/next/intro-react-native-components","docId":"intro-react-native-components","unlisted":false},{"type":"link","label":"React \u57fa\u7840","href":"/docs/next/intro-react","docId":"intro-react","unlisted":false},{"type":"link","label":"\u5904\u7406\u6587\u672c\u8f93\u5165","href":"/docs/next/handling-text-input","docId":"handling-text-input","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u6eda\u52a8\u89c6\u56fe","href":"/docs/next/using-a-scrollview","docId":"using-a-scrollview","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u957f\u5217\u8868","href":"/docs/next/using-a-listview","docId":"using-a-listview","unlisted":false},{"type":"link","label":"\u7279\u5b9a\u5e73\u53f0\u4ee3\u7801","href":"/docs/next/platform-specific-code","docId":"platform-specific-code","unlisted":false},{"type":"link","label":"\u5176\u4ed6\u53c2\u8003\u8d44\u6e90","href":"/docs/next/more-resources","docId":"more-resources","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u73af\u5883\u642d\u5efa","items":[{"type":"link","label":"\u642d\u5efa\u5f00\u53d1\u73af\u5883","href":"/docs/next/environment-setup","docId":"environment-setup","unlisted":false},{"type":"link","label":"\u96c6\u6210\u5230\u73b0\u6709\u539f\u751f\u5e94\u7528","href":"/docs/next/integration-with-existing-apps","docId":"integration-with-existing-apps","unlisted":false},{"type":"link","label":"\u96c6\u6210\u5230 Android Fragment","href":"/docs/next/integration-with-android-fragment","docId":"integration-with-android-fragment","unlisted":false},{"type":"link","label":"\u4e3a\u7535\u89c6\u548c\u673a\u9876\u76d2\u5236\u4f5c\u5e94\u7528","href":"/docs/next/building-for-tv","docId":"building-for-tv","unlisted":false},{"type":"link","label":"\u591a\u5e73\u53f0\u652f\u6301","href":"/docs/next/out-of-tree-platforms","docId":"out-of-tree-platforms","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u5f00\u53d1\u6d41\u7a0b","items":[{"type":"link","label":"\u5728\u8bbe\u5907\u4e0a\u8fd0\u884c","href":"/docs/next/running-on-device","docId":"running-on-device","unlisted":false},{"type":"link","label":"\u5feb\u901f\u5237\u65b0","href":"/docs/next/fast-refresh","docId":"fast-refresh","unlisted":false},{"type":"link","label":"Metro","href":"/docs/next/metro","docId":"metro","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u7b2c\u4e09\u65b9\u5e93","href":"/docs/next/libraries","docId":"libraries","unlisted":false},{"type":"link","label":"\u4f7f\u7528 TypeScript","href":"/docs/next/typescript","docId":"typescript","unlisted":false},{"type":"link","label":"\u66f4\u65b0","href":"/docs/next/upgrading","docId":"upgrading","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u754c\u9762\u4e0e\u4ea4\u4e92","items":[{"type":"link","label":"\u6837\u5f0f","href":"/docs/next/style","docId":"style","unlisted":false},{"type":"link","label":"\u9ad8\u5ea6\u4e0e\u5bbd\u5ea6","href":"/docs/next/height-and-width","docId":"height-and-width","unlisted":false},{"type":"link","label":"\u4f7f\u7528 Flexbox \u5e03\u5c40","href":"/docs/next/flexbox","docId":"flexbox","unlisted":false},{"type":"link","label":"\u56fe\u7247","href":"/docs/next/images","docId":"images","unlisted":false},{"type":"link","label":"\u989c\u8272","href":"/docs/next/colors","docId":"colors","unlisted":false},{"type":"category","label":"\u4ea4\u4e92","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u5904\u7406\u89e6\u6478\u4e8b\u4ef6","href":"/docs/next/handling-touches","docId":"handling-touches","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u5bfc\u822a\u5668\u8df3\u8f6c\u9875\u9762","href":"/docs/next/navigation","docId":"navigation","unlisted":false},{"type":"link","label":"\u52a8\u753b","href":"/docs/next/animations","docId":"animations","unlisted":false},{"type":"link","label":"\u624b\u52bf\u54cd\u5e94\u7cfb\u7edf","href":"/docs/next/gesture-responder-system","docId":"gesture-responder-system","unlisted":false}]},{"type":"category","label":"\u7f51\u7edc\u8fde\u63a5","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u8bbf\u95ee\u7f51\u7edc","href":"/docs/next/network","docId":"network","unlisted":false},{"type":"link","label":"\u7f51\u7edc\u5b89\u5168\u7b56\u7565","href":"/docs/next/security","docId":"security","unlisted":false}]},{"type":"category","label":"\u5305\u5bb9\u6027","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u65e0\u969c\u788d\u529f\u80fd","href":"/docs/next/accessibility","docId":"accessibility","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u8c03\u8bd5","items":[{"type":"link","label":"\u8c03\u8bd5","href":"/docs/next/debugging","docId":"debugging","unlisted":false},{"type":"link","label":"React Native \u5f00\u53d1\u8005\u5de5\u5177","href":"/docs/next/react-native-devtools","docId":"react-native-devtools","unlisted":false},{"type":"link","label":"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801","href":"/docs/next/debugging-native-code","docId":"debugging-native-code","unlisted":false},{"type":"link","label":"\u8c03\u8bd5\u53d1\u884c\u7248\u672c","href":"/docs/next/debugging-release-builds","docId":"debugging-release-builds","unlisted":false},{"type":"link","label":"\u5176\u4ed6\u8c03\u8bd5\u65b9\u6cd5","href":"/docs/next/other-debugging-methods","docId":"other-debugging-methods","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u6d4b\u8bd5","items":[{"type":"link","label":"Testing","href":"/docs/next/testing-overview","docId":"testing-overview","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u6027\u80fd\u8c03\u4f18","items":[{"type":"link","label":"\u6027\u80fd\u7efc\u8ff0","href":"/docs/next/performance","docId":"performance","unlisted":false},{"type":"link","label":"\u4f18\u5316\u7f16\u8bd1\u901f\u5ea6","href":"/docs/next/build-speed","docId":"build-speed","unlisted":false},{"type":"link","label":"\u5217\u8868\u914d\u7f6e\u4f18\u5316","href":"/docs/next/optimizing-flatlist-configuration","docId":"optimizing-flatlist-configuration","unlisted":false},{"type":"link","label":"Optimizing JavaScript loading","href":"/docs/next/optimizing-javascript-loading","docId":"optimizing-javascript-loading","unlisted":false},{"type":"link","label":"Profiling","href":"/docs/next/profiling","docId":"profiling","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"JavaScript \u8fd0\u884c\u73af\u5883","items":[{"type":"link","label":"JavaScript \u73af\u5883","href":"/docs/next/javascript-environment","docId":"javascript-environment","unlisted":false},{"type":"link","label":"\u5b9a\u65f6\u5668","href":"/docs/next/timers","docId":"timers","unlisted":false},{"type":"link","label":"\u4f7f\u7528\u65b0\u7684 Hermes \u5f15\u64ce","href":"/docs/next/hermes","docId":"hermes","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Codegen","items":[{"type":"link","label":"\u4ec0\u4e48\u662f Codegen\uff1f","href":"/docs/next/the-new-architecture/what-is-codegen","docId":"the-new-architecture/what-is-codegen","unlisted":false},{"type":"link","label":"\u4f7f\u7528 Codegen","href":"/docs/next/the-new-architecture/using-codegen","docId":"the-new-architecture/using-codegen","unlisted":false},{"type":"link","label":"Codegen \u547d\u4ee4\u884c\u5de5\u5177","href":"/docs/next/the-new-architecture/codegen-cli","docId":"the-new-architecture/codegen-cli","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u539f\u751f\u5f00\u53d1","items":[{"type":"link","label":"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b","href":"/docs/next/native-platform","docId":"native-platform","unlisted":false},{"type":"category","label":"\u539f\u751f\u6a21\u5757","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Turbo \u539f\u751f\u6a21\u5757\u4ecb\u7ecd","href":"/docs/next/turbo-native-modules-introduction","docId":"turbo-native-modules-introduction","unlisted":false},{"type":"link","label":"\u4f7f\u7528 C++ \u5b9e\u73b0\u8de8\u5e73\u53f0\u7684\u539f\u751f\u6a21\u5757","href":"/docs/next/the-new-architecture/pure-cxx-modules","docId":"the-new-architecture/pure-cxx-modules","unlisted":false},{"type":"link","label":"\u9ad8\u7ea7\uff1a\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b","href":"/docs/next/the-new-architecture/custom-cxx-types","docId":"the-new-architecture/custom-cxx-types","unlisted":false}]},{"type":"category","label":"\u539f\u751f UI \u7ec4\u4ef6","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Fabric Native Components Introduction","href":"/docs/next/fabric-native-components-introduction","docId":"fabric-native-components-introduction","unlisted":false}]},{"type":"category","label":"\u5176\u4ed6","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u9644\u5f55","href":"/docs/next/appendix","docId":"appendix","unlisted":false},{"type":"link","label":"\u521b\u5efa\u6a21\u5757\u5e93","href":"/docs/next/the-new-architecture/create-module-library","docId":"the-new-architecture/create-module-library","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"Android \u4e0e iOS \u6307\u5357","items":[{"type":"category","label":"Android","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"Headless JS\uff08\u540e\u53f0\u4efb\u52a1\uff09","href":"/docs/next/headless-js-android","docId":"headless-js-android","unlisted":false},{"type":"link","label":"\u6253\u5305\u53d1\u5e03","href":"/docs/next/signed-apk-android","docId":"signed-apk-android","unlisted":false},{"type":"link","label":"\u548c\u539f\u751f\u7aef\u901a\u4fe1","href":"/docs/next/communication-android","docId":"communication-android","unlisted":false},{"type":"link","label":"React Native Gradle Plugin","href":"/docs/next/react-native-gradle-plugin","docId":"react-native-gradle-plugin","unlisted":false}]},{"type":"category","label":"iOS","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u94fe\u63a5\u539f\u751f\u5e93","href":"/docs/next/linking-libraries-ios","docId":"linking-libraries-ios","unlisted":false},{"type":"link","label":"\u5728iOS\u6a21\u62df\u5668\u4e0a\u8fd0\u884c","href":"/docs/next/running-on-simulator-ios","docId":"running-on-simulator-ios","unlisted":false},{"type":"link","label":"\u548c\u539f\u751f\u7aef\u901a\u4fe1","href":"/docs/next/communication-ios","docId":"communication-ios","unlisted":false},{"type":"link","label":"iOS \u5e94\u7528\u5c0f\u7ec4\u4ef6","href":"/docs/next/app-extensions","docId":"app-extensions","unlisted":false},{"type":"link","label":"\u4e0a\u67b6 App Store","href":"/docs/next/publishing-to-app-store","docId":"publishing-to-app-store","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u65e7\u67b6\u6784","items":[{"type":"category","label":"\u539f\u751f\u6a21\u5757\uff08\u65e7\u67b6\u6784\uff09","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u539f\u751f\u6a21\u5757\u7b80\u4ecb","href":"/docs/next/legacy/native-modules-intro","docId":"legacy/native-modules-intro","unlisted":false},{"type":"link","label":"Android \u539f\u751f\u6a21\u5757","href":"/docs/next/legacy/native-modules-android","docId":"legacy/native-modules-android","unlisted":false},{"type":"link","label":"iOS \u539f\u751f\u6a21\u5757","href":"/docs/next/legacy/native-modules-ios","docId":"legacy/native-modules-ios","unlisted":false},{"type":"link","label":"Native Modules NPM Package Setup","href":"/docs/next/legacy/native-modules-setup","docId":"legacy/native-modules-setup","unlisted":false},{"type":"link","label":"Local libraries setup","href":"/docs/next/legacy/local-library-setup","docId":"legacy/local-library-setup","unlisted":false}]},{"type":"category","label":"\u539f\u751f UI \u7ec4\u4ef6\uff08\u65e7\u67b6\u6784\uff09","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Android \u539f\u751fUI\u7ec4\u4ef6","href":"/docs/next/legacy/native-components-android","docId":"legacy/native-components-android","unlisted":false},{"type":"link","label":"iOS \u539f\u751fUI\u7ec4\u4ef6","href":"/docs/next/legacy/native-components-ios","docId":"legacy/native-components-ios","unlisted":false},{"type":"link","label":"\u76f4\u63a5\u64cd\u4f5c","href":"/docs/next/legacy/direct-manipulation","docId":"legacy/direct-manipulation","unlisted":false}]}],"collapsed":true,"collapsible":true}],"api":[{"type":"category","label":"APIs","items":[{"type":"link","label":"AccessibilityInfo","href":"/docs/next/accessibilityinfo","docId":"accessibilityinfo","unlisted":false},{"type":"link","label":"Alert","href":"/docs/next/alert","docId":"alert","unlisted":false},{"type":"link","label":"Animated","href":"/docs/next/animated","docId":"animated","unlisted":false},{"type":"link","label":"Animated.Value","href":"/docs/next/animatedvalue","docId":"animatedvalue","unlisted":false},{"type":"link","label":"Animated.ValueXY","href":"/docs/next/animatedvaluexy","docId":"animatedvaluexy","unlisted":false},{"type":"link","label":"Appearance","href":"/docs/next/appearance","docId":"appearance","unlisted":false},{"type":"link","label":"AppRegistry","href":"/docs/next/appregistry","docId":"appregistry","unlisted":false},{"type":"link","label":"AppState","href":"/docs/next/appstate","docId":"appstate","unlisted":false},{"type":"link","label":"DevSettings","href":"/docs/next/devsettings","docId":"devsettings","unlisted":false},{"type":"link","label":"Dimensions","href":"/docs/next/dimensions","docId":"dimensions","unlisted":false},{"type":"link","label":"Easing","href":"/docs/next/easing","docId":"easing","unlisted":false},{"type":"link","label":"InteractionManager","href":"/docs/next/interactionmanager","docId":"interactionmanager","unlisted":false},{"type":"link","label":"Keyboard","href":"/docs/next/keyboard","docId":"keyboard","unlisted":false},{"type":"link","label":"LayoutAnimation","href":"/docs/next/layoutanimation","docId":"layoutanimation","unlisted":false},{"type":"link","label":"Linking","href":"/docs/next/linking","docId":"linking","unlisted":false},{"type":"link","label":"PanResponder","href":"/docs/next/panresponder","docId":"panresponder","unlisted":false},{"type":"link","label":"PixelRatio","href":"/docs/next/pixelratio","docId":"pixelratio","unlisted":false},{"type":"link","label":"Platform","href":"/docs/next/platform","docId":"platform","unlisted":false},{"type":"link","label":"PlatformColor","href":"/docs/next/platformcolor","docId":"platformcolor","unlisted":false},{"type":"link","label":"RootTag","href":"/docs/next/roottag","docId":"roottag","unlisted":false},{"type":"link","label":"Share","href":"/docs/next/share","docId":"share","unlisted":false},{"type":"link","label":"StyleSheet","href":"/docs/next/stylesheet","docId":"stylesheet","unlisted":false},{"type":"link","label":"Systrace","href":"/docs/next/systrace","docId":"systrace","unlisted":false},{"type":"link","label":"\u53d8\u6362\uff08Transform\uff09","href":"/docs/next/transforms","docId":"transforms","unlisted":false},{"type":"link","label":"Vibration","href":"/docs/next/vibration","docId":"vibration","unlisted":false},{"type":"category","label":"Hooks","collapsed":false,"items":[{"type":"link","label":"useColorScheme","href":"/docs/next/usecolorscheme","docId":"usecolorscheme","unlisted":false},{"type":"link","label":"useWindowDimensions","href":"/docs/next/usewindowdimensions","docId":"usewindowdimensions","unlisted":false}],"collapsible":true},{"type":"category","label":"Android API","collapsed":false,"items":[{"type":"link","label":"BackHandler","href":"/docs/next/backhandler","docId":"backhandler","unlisted":false},{"type":"link","label":"PermissionsAndroid","href":"/docs/next/permissionsandroid","docId":"permissionsandroid","unlisted":false},{"type":"link","label":"ToastAndroid","href":"/docs/next/toastandroid","docId":"toastandroid","unlisted":false}],"collapsible":true},{"type":"category","label":"iOS API","collapsed":false,"items":[{"type":"link","label":"ActionSheetIOS","href":"/docs/next/actionsheetios","docId":"actionsheetios","unlisted":false},{"type":"link","label":"DynamicColorIOS","href":"/docs/next/dynamiccolorios","docId":"dynamiccolorios","unlisted":false},{"type":"link","label":"Settings","href":"/docs/next/settings","docId":"settings","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true}],"\u7ec4\u4ef6":[{"type":"category","label":"\u6838\u5fc3\u7ec4\u4ef6","items":[{"type":"link","label":"\u6838\u5fc3\u7ec4\u4ef6\u548cAPI","href":"/docs/next/components-and-apis","docId":"components-and-apis","unlisted":false},{"type":"link","label":"ActivityIndicator","href":"/docs/next/activityindicator","docId":"activityindicator","unlisted":false},{"type":"link","label":"Button","href":"/docs/next/button","docId":"button","unlisted":false},{"type":"link","label":"FlatList","href":"/docs/next/flatlist","docId":"flatlist","unlisted":false},{"type":"link","label":"Image","href":"/docs/next/image","docId":"image","unlisted":false},{"type":"link","label":"ImageBackground","href":"/docs/next/imagebackground","docId":"imagebackground","unlisted":false},{"type":"link","label":"KeyboardAvoidingView","href":"/docs/next/keyboardavoidingview","docId":"keyboardavoidingview","unlisted":false},{"type":"link","label":"Modal","href":"/docs/next/modal","docId":"modal","unlisted":false},{"type":"link","label":"Pressable","href":"/docs/next/pressable","docId":"pressable","unlisted":false},{"type":"link","label":"RefreshControl","href":"/docs/next/refreshcontrol","docId":"refreshcontrol","unlisted":false},{"type":"link","label":"ScrollView","href":"/docs/next/scrollview","docId":"scrollview","unlisted":false},{"type":"link","label":"SectionList","href":"/docs/next/sectionlist","docId":"sectionlist","unlisted":false},{"type":"link","label":"StatusBar","href":"/docs/next/statusbar","docId":"statusbar","unlisted":false},{"type":"link","label":"Switch","href":"/docs/next/switch","docId":"switch","unlisted":false},{"type":"link","label":"Text","href":"/docs/next/text","docId":"text","unlisted":false},{"type":"link","label":"TextInput","href":"/docs/next/textinput","docId":"textinput","unlisted":false},{"type":"link","label":"TouchableHighlight","href":"/docs/next/touchablehighlight","docId":"touchablehighlight","unlisted":false},{"type":"link","label":"TouchableOpacity","href":"/docs/next/touchableopacity","docId":"touchableopacity","unlisted":false},{"type":"link","label":"TouchableWithoutFeedback","href":"/docs/next/touchablewithoutfeedback","docId":"touchablewithoutfeedback","unlisted":false},{"type":"link","label":"View","href":"/docs/next/view","docId":"view","unlisted":false},{"type":"link","label":"VirtualizedList","href":"/docs/next/virtualizedlist","docId":"virtualizedlist","unlisted":false},{"type":"category","label":"Android \u7ec4\u4ef6","collapsed":false,"items":[{"type":"link","label":"DrawerLayoutAndroid","href":"/docs/next/drawerlayoutandroid","docId":"drawerlayoutandroid","unlisted":false},{"type":"link","label":"TouchableNativeFeedback","href":"/docs/next/touchablenativefeedback","docId":"touchablenativefeedback","unlisted":false}],"collapsible":true},{"type":"category","label":"iOS \u7ec4\u4ef6","collapsed":false,"items":[{"type":"link","label":"InputAccessoryView","href":"/docs/next/inputaccessoryview","docId":"inputaccessoryview","unlisted":false},{"type":"link","label":"SafeAreaView","href":"/docs/next/safeareaview","docId":"safeareaview","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Props","items":[{"type":"link","label":"\u56fe\u7247\u6837\u5f0f\u5c5e\u6027","href":"/docs/next/image-style-props","docId":"image-style-props","unlisted":false},{"type":"link","label":"\u5e03\u5c40\u5c5e\u6027","href":"/docs/next/layout-props","docId":"layout-props","unlisted":false},{"type":"link","label":"\u9634\u5f71\u6837\u5f0f\u5c5e\u6027","href":"/docs/next/shadow-props","docId":"shadow-props","unlisted":false},{"type":"link","label":"Text \u6837\u5f0f\u5c5e\u6027","href":"/docs/next/text-style-props","docId":"text-style-props","unlisted":false},{"type":"link","label":"View \u6837\u5f0f\u5c5e\u6027","href":"/docs/next/view-style-props","docId":"view-style-props","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u5185\u90e8\u5bf9\u8c61\u7c7b\u578b","items":[{"type":"link","label":"\u5e03\u5c40\u4e8b\u4ef6\u5bf9\u8c61","href":"/docs/next/layoutevent","docId":"layoutevent","unlisted":false},{"type":"link","label":"\u70b9\u51fb\u4e8b\u4ef6\u5bf9\u8c61","href":"/docs/next/pressevent","docId":"pressevent","unlisted":false},{"type":"link","label":"React \u8282\u70b9\u5bf9\u8c61","href":"/docs/next/react-node","docId":"react-node","unlisted":false},{"type":"link","label":"\u77e9\u5f62\u533a\u57df\u5bf9\u8c61","href":"/docs/next/rect","docId":"rect","unlisted":false},{"type":"link","label":"ViewToken \u5bf9\u8c61","href":"/docs/next/viewtoken","docId":"viewtoken","unlisted":false}],"collapsed":true,"collapsible":true}]},"docs":{"accessibility":{"id":"accessibility","title":"\u65e0\u969c\u788d\u529f\u80fd","description":"\u8bd1\u6ce8\uff1aaccessibility \u4e00\u8bcd\u5e38\u89c1\u591a\u79cd\u8bd1\u6cd5\uff1a\u53ef\u8bbf\u95ee\u6027\u3001\u65e0\u969c\u788d\u6027\u3001\u8f85\u52a9\u529f\u80fd\u7b49\u7b49\uff0c\u5176\u4e2d\u6587\u610f\u601d\u90fd\u4e0d\u592a\u80fd\u51c6\u786e\u8868\u8fbe\u5176\u529f\u80fd\u7684\u672c\u8d28\u2014\u2014\u5373\u4e3a\u6b8b\u969c\u4eba\u58eb\u63d0\u4f9b\u4fbf\u5229\u3002\u672c\u6587\u4e3b\u8981\u91c7\u7528\u201c\u65e0\u969c\u788d\u529f\u80fd\u201d\u548c\u201c\u8f85\u52a9\u6280\u672f/\u670d\u52a1\u201d\u7684\u8bf4\u6cd5\u3002\u5982\u679c\u4f60\u6216\u4f60\u7684\u516c\u53f8\u6682\u65f6\u6ca1\u6709\u8d44\u6e90\u548c\u7cbe\u529b\u53bb\u670d\u52a1\u8fd9\u4e9b\u7528\u6237\uff0c\u90a3\u4e48\u4f60\u53ef\u4ee5\u8df3\u8fc7\u672c\u6587\u3002\u4f46\u662f\uff0c\u8bd1\u8005\u4e2a\u4eba\u5e0c\u671b\u501f\u672c\u6587\u6863\uff0c\u547c\u5401\u6709\u80fd\u529b\u6709\u8d44\u6e90\u7684\u5546\u4e1a\u516c\u53f8/\u7ec4\u7ec7/\u4e2a\u4eba\uff0c\u91cd\u89c6\u6b8b\u969c\u4eba\u58eb\u4f7f\u7528\u667a\u80fd\u624b\u673a\u7684\u6743\u5229\u3002","sidebar":"docs"},"accessibilityinfo":{"id":"accessibilityinfo","title":"AccessibilityInfo","description":"\u6709\u65f6\u5019\u6211\u4eec\u5e0c\u671b\u77e5\u9053\u7528\u6237\u7684\u8bbe\u5907\u662f\u5426\u6b63\u5728\u8fd0\u884c\u8bfb\u5c4f\u5e94\u7528\u3002AccessibilityInfo\u6b63\u662f\u7528\u4e8e\u6b64\u76ee\u7684\u3002\u4f60\u53ef\u4ee5\u7528\u5b83\u6765\u67e5\u8be2\u8bfb\u5c4f\u5e94\u7528\u7684\u5f53\u524d\u72b6\u6001\uff0c\u5e76\u4e14\u53ef\u4ee5\u76d1\u542c\u5176\u72b6\u6001\u53d8\u5316\u3002","sidebar":"api"},"actionsheetios":{"id":"actionsheetios","title":"ActionSheetIOS","description":"\u663e\u793a\u4e00\u4e2a iOS \u539f\u751f\u7684Action Sheet\u7ec4\u4ef6\u3002","sidebar":"api"},"activityindicator":{"id":"activityindicator","title":"ActivityIndicator","description":"\u663e\u793a\u4e00\u4e2a\u5706\u5f62\u7684 loading \u63d0\u793a\u7b26\u53f7\u3002","sidebar":"\u7ec4\u4ef6"},"alert":{"id":"alert","title":"Alert","description":"\u542f\u52a8\u4e00\u4e2a\u63d0\u793a\u5bf9\u8bdd\u6846\uff0c\u5305\u542b\u5bf9\u5e94\u7684\u6807\u9898\u548c\u4fe1\u606f\u3002","sidebar":"api"},"alertios":{"id":"alertios","title":"AlertIOS","description":"AlertIOS\u7528\u4e8e\u5f39\u51fa\u4e00\u4e2a iOS \u63d0\u793a\u5bf9\u8bdd\u6846\uff0c\u53ef\u4ee5\u901a\u77e5\u7528\u6237\u4e00\u4e9b\u4fe1\u606f\u6216\u662f\u63d0\u793a\u7528\u6237\u8f93\u5165\u4e00\u4e9b\u6587\u5b57\u3002"},"animated":{"id":"animated","title":"Animated","description":"Animated\u5e93\u65e8\u5728\u4f7f\u52a8\u753b\u53d8\u5f97\u6d41\u7545\uff0c\u5f3a\u5927\u5e76\u6613\u4e8e\u6784\u5efa\u548c\u7ef4\u62a4\u3002Animated\u4fa7\u91cd\u4e8e\u8f93\u5165\u548c\u8f93\u51fa\u4e4b\u95f4\u7684\u58f0\u660e\u6027\u5173\u7cfb\uff0c\u4ee5\u53ca\u4e24\u8005\u4e4b\u95f4\u7684\u53ef\u914d\u7f6e\u53d8\u6362\uff0c\u6b64\u5916\u8fd8\u63d0\u4f9b\u4e86\u7b80\u5355\u7684 start/stop\u65b9\u6cd5\u6765\u63a7\u5236\u57fa\u4e8e\u65f6\u95f4\u7684\u52a8\u753b\u6267\u884c\u3002","sidebar":"api"},"animatedvalue":{"id":"animatedvalue","title":"Animated.Value","description":"\u9a71\u52a8\u52a8\u753b\u7684\u4e00\u7ef4\u6807\u91cf\u503c. \u4e00\u4e2aAnimated.Value\u53ef\u4ee5\u540c\u6b65\u5730\u9a71\u52a8\u591a\u4e2a\u5c5e\u6027\uff0c\u4f46\u6bcf\u6b21\u53ea\u80fd\u4ee5\u4e00\u79cd\u52a8\u753b\u673a\u5236\u53d8\u5316\u3002\u5982\u679c\u6539\u7528\u4e86\u5176\u4ed6\u52a8\u753b\u673a\u5236\uff08\u4f8b\u5982\u5f00\u59cb\u4e00\u4e2a\u65b0\u7684\u52a8\u753b\u6216\u662f\u8c03\u7528setValue\uff09\uff0c\u5219\u4f1a\u505c\u6b62\u5148\u524d\u7684\u52a8\u753b\u3002","sidebar":"api"},"animatedvaluexy":{"id":"animatedvaluexy","title":"Animated.ValueXY","description":"2D \u503c\u7528\u4e8e\u9a71\u52a8 2D \u52a8\u753b\uff0c\u4f8b\u5982\u5e73\u79fb\u624b\u52bf\u3002\u4e0e\u666e\u901a\u7684Animated.Value\u51e0\u4e4e\u76f8\u540c\u7684 API\uff0c\u4f46\u662f\u53ef\u4ee5\u591a\u8def\u590d\u7528\u3002\u5728\u5185\u90e8\u5305\u542b\u4e24\u4e2a\u5e38\u89c4\u7684Animated.Value\u3002","sidebar":"api"},"animations":{"id":"animations","title":"\u52a8\u753b","description":"\u6d41\u7545\u3001\u6709\u610f\u4e49\u7684\u52a8\u753b\u5bf9\u4e8e\u79fb\u52a8\u5e94\u7528\u7528\u6237\u4f53\u9a8c\u6765\u8bf4\u662f\u975e\u5e38\u91cd\u8981\u7684\u3002\u73b0\u5b9e\u751f\u6d3b\u4e2d\u7684\u7269\u4f53\u5728\u5f00\u59cb\u79fb\u52a8\u548c\u505c\u4e0b\u6765\u7684\u65f6\u5019\u90fd\u5177\u6709\u4e00\u5b9a\u7684\u60ef\u6027\uff0c\u6211\u4eec\u5728\u754c\u9762\u4e2d\u4e5f\u53ef\u4ee5\u4f7f\u7528\u52a8\u753b\u6765\u5b9e\u73b0\u5951\u5408\u7269\u7406\u89c4\u5f8b\u7684\u4ea4\u4e92\u3002","sidebar":"docs"},"app-extensions":{"id":"app-extensions","title":"iOS \u5e94\u7528\u5c0f\u7ec4\u4ef6","description":"\u5c0f\u7ec4\u4ef6\u5141\u8bb8\u60a8\u5728\u4e3b\u8981\u5e94\u7528\u7a0b\u5e8f\u4e4b\u5916\u63d0\u4f9b\u81ea\u5b9a\u4e49\u529f\u80fd\u548c\u5185\u5bb9\u3002iOS\u4e0a\u6709\u4e0d\u540c\u7c7b\u578b\u7684\u5e94\u7528\u5c0f\u7ec4\u4ef6\uff0c\u5b83\u4eec\u90fd\u5728App Extension\u7f16\u7a0b\u6307\u5357\u4e2d\u8fdb\u884c\u4e86\u4ecb\u7ecd\u3002\u5728\u672c\u6307\u5357\u4e2d\uff0c\u6211\u4eec\u5c06\u7b80\u8981\u4ecb\u7ecd\u5982\u4f55\u5728iOS\u4e0a\u5229\u7528\u5e94\u7528\u5c0f\u7ec4\u4ef6\u7684\u4f18\u52bf\u3002","sidebar":"docs"},"appearance":{"id":"appearance","title":"Appearance","description":"Appearance \u6a21\u5757\u63d0\u4f9b\u4e86\u5173\u4e8e\u7528\u6237\u5916\u89c2\u504f\u597d\u7684\u4fe1\u606f\uff0c\u4f8b\u5982\u4ed6\u4eec\u559c\u6b22\u7684\u989c\u8272\u65b9\u6848\uff08\u660e\u4eae\u6216\u6697\u9ed1\uff09\u3002","sidebar":"api"},"appendix":{"id":"appendix","title":"\u9644\u5f55","description":"\u4e00\u3001\u672f\u8bed","sidebar":"docs"},"appregistry":{"id":"appregistry","title":"AppRegistry","description":"\u4ec5\u9002\u7528\u4e8e\u975e\u6c99\u76d2\u9879\u76ee","sidebar":"api"},"appstate":{"id":"appstate","title":"AppState","description":"AppState\u80fd\u544a\u8bc9\u4f60\u5e94\u7528\u5f53\u524d\u662f\u5728\u524d\u53f0\u8fd8\u662f\u5728\u540e\u53f0\uff0c\u5e76\u4e14\u80fd\u5728\u72b6\u6001\u53d8\u5316\u7684\u65f6\u5019\u901a\u77e5\u4f60\u3002","sidebar":"api"},"architecture-glossary":{"id":"architecture-glossary","title":"\u672f\u8bed\u8868","description":"Fabric \u6e32\u67d3\u5668\uff08Fabric Renderer\uff09"},"architecture-overview":{"id":"architecture-overview","title":"\u67b6\u6784\u6982\u89c8","description":"\u672c\u6587\u6863\u8fd8\u5728\u6301\u7eed\u66f4\u65b0\u4e2d\uff0c\u4f1a\u4ece\u6982\u5ff5\u4e0a\u4ecb\u7ecd React Native \u65b0\u67b6\u6784\u662f\u5982\u4f55\u5de5\u4f5c\u7684\u3002\u76ee\u6807\u8bfb\u8005\u5305\u62ec\u751f\u6001\u5e93\u7684\u5f00\u53d1\u8005\u3001\u6838\u5fc3\u8d21\u732e\u8005\u548c\u7279\u522b\u6709\u597d\u5947\u5fc3\u7684\u4eba\u3002"},"asyncstorage":{"id":"asyncstorage","title":"\ud83d\udea7 AsyncStorage","description":"\u5df2\u8fc7\u65f6\u3002 Use one of the community packages instead."},"backhandler":{"id":"backhandler","title":"BackHandler","description":"BackHandler API \u7528\u4e8e\u76d1\u542c\u8bbe\u5907\u4e0a\u7684\u540e\u9000\u6309\u94ae\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u8c03\u7528\u4f60\u81ea\u5df1\u7684\u51fd\u6570\u6765\u5904\u7406\u540e\u9000\u884c\u4e3a\u3002\u6b64 API \u4ec5\u80fd\u5728 Android \u4e0a\u4f7f\u7528\u3002","sidebar":"api"},"build-speed":{"id":"build-speed","title":"\u4f18\u5316\u7f16\u8bd1\u901f\u5ea6","description":"\u6784\u5efa React Native \u5e94\u7528\u53ef\u80fd\u4f1a\u975e\u5e38\u6602\u8d35\uff0c\u5e76\u4e14\u9700\u8981\u5f00\u53d1\u4eba\u5458\u82b1\u8d39\u6570\u5206\u949f\u7684\u65f6\u95f4\u3002","sidebar":"docs"},"building-for-tv":{"id":"building-for-tv","title":"\u4e3a\u7535\u89c6\u548c\u673a\u9876\u76d2\u5236\u4f5c\u5e94\u7528","description":"\u76ee\u524d\u7684 React Native \u5e94\u7528\u53ea\u9700\u5728 JavaScript \u7aef\u7b80\u5355\u4fee\u6539\u751a\u81f3\u65e0\u9700\u4fee\u6539\uff0c\u5728\u7535\u89c6\u548c\u673a\u9876\u76d2\u8bbe\u5907\u4e0a\u5c31\u57fa\u672c\u53ef\u7528\u4e86\u3002","sidebar":"docs"},"button":{"id":"button","title":"Button","description":"\u4e00\u4e2a\u7b80\u5355\u7684\u8de8\u5e73\u53f0\u7684\u6309\u94ae\u7ec4\u4ef6\u3002\u53ef\u4ee5\u8fdb\u884c\u4e00\u4e9b\u7b80\u5355\u7684\u5b9a\u5236\u3002","sidebar":"\u7ec4\u4ef6"},"checkbox":{"id":"checkbox","title":"\ud83d\udea7 CheckBox","description":"Removed. Use one of the community packages instead."},"clipboard":{"id":"clipboard","title":"\ud83d\udea7 Clipboard","description":"Deprecated. Use one of the community packages instead."},"colors":{"id":"colors","title":"\u989c\u8272","description":"React Native \u4e2d\u7684\u7ec4\u4ef6\u662f\u4f7f\u7528 JavaScript \u8fdb\u884c\u6837\u5f0f\u5316\u7684\u3002\u989c\u8272\u5c5e\u6027\u901a\u5e38\u4e0e Web \u4e0a\u7684 CSS \u5de5\u4f5c\u65b9\u5f0f\u76f8\u5339\u914d\u3002\u6bcf\u4e2a\u5e73\u53f0\u4e0a\u5173\u4e8e\u989c\u8272\u4f7f\u7528\u7684\u4e00\u822c\u6307\u5357\u5982\u4e0b\uff1a","sidebar":"docs"},"communication-android":{"id":"communication-android","title":"\u548c\u539f\u751f\u7aef\u901a\u4fe1","description":"\u901a\u8fc7\u690d\u5165\u539f\u751f\u5e94\u7528\u548c\u539f\u751f UI \u7ec4\u4ef6\u4e24\u7bc7\u6587\u6863\uff0c\u6211\u4eec\u5b66\u4e60\u4e86 React Native \u548c\u539f\u751f\u7ec4\u4ef6\u7684\u4e92\u76f8\u6574\u5408\u3002\u5728\u6574\u5408\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u4f1a\u9700\u8981\u5728\u4e24\u4e2a\u4e16\u754c\u95f4\u4e92\u76f8\u901a\u4fe1\u3002\u6709\u4e9b\u65b9\u6cd5\u5df2\u7ecf\u5728\u5176\u4ed6\u7684\u6307\u5357\u4e2d\u63d0\u5230\u4e86\uff0c\u8fd9\u7bc7\u6587\u7ae0\u603b\u7ed3\u4e86\u6240\u6709\u53ef\u884c\u7684\u6280\u672f\u3002","sidebar":"docs"},"communication-ios":{"id":"communication-ios","title":"\u548c\u539f\u751f\u7aef\u901a\u4fe1","description":"\u901a\u8fc7\u690d\u5165\u539f\u751f\u5e94\u7528\u548c\u539f\u751f UI \u7ec4\u4ef6\u4e24\u7bc7\u6587\u6863\uff0c\u6211\u4eec\u5b66\u4e60\u4e86 React Native \u548c\u539f\u751f\u7ec4\u4ef6\u7684\u4e92\u76f8\u6574\u5408\u3002\u5728\u6574\u5408\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u4f1a\u9700\u8981\u5728\u4e24\u4e2a\u4e16\u754c\u95f4\u4e92\u76f8\u901a\u4fe1\u3002\u6709\u4e9b\u65b9\u6cd5\u5df2\u7ecf\u5728\u5176\u4ed6\u7684\u6307\u5357\u4e2d\u63d0\u5230\u4e86\uff0c\u8fd9\u7bc7\u6587\u7ae0\u603b\u7ed3\u4e86\u6240\u6709\u53ef\u884c\u7684\u6280\u672f\u3002","sidebar":"docs"},"components-and-apis":{"id":"components-and-apis","title":"\u6838\u5fc3\u7ec4\u4ef6\u548cAPI","description":"React Native \u63d0\u4f9b\u4e86\u4e00\u4e9b\u5185\u7f6e\u7684\u6838\u5fc3\u7ec4\u4ef6\u4f9b\u4f60\u4f7f\u7528\u3002\u4f60\u53ef\u4ee5\u5728\u7f51\u7ad9\u7684\u5de6\u4fa7\u770b\u5230\u7ec4\u4ef6\u7684\u5b8c\u6574\u5217\u8868\u3002\u5982\u679c\u4f60\u4e0d\u77e5\u9053\u4ece\u54ea\u770b\u8d77\uff0c\u90a3\u4e48\u53ef\u4ee5\u5148\u770b\u4e00\u4e0b\u4e0b\u9762\u8fd9\u4e2a\u7b80\u5355\u7684\u5206\u7c7b\uff1a","sidebar":"\u7ec4\u4ef6"},"custom-webview-android":{"id":"custom-webview-android","title":"Custom WebView","description":"While the built-in web view has a lot of features, it is not possible to handle every use-case in React Native. You can, however, extend the web view with native code without forking React Native or duplicating all the existing web view code."},"custom-webview-ios":{"id":"custom-webview-ios","title":"Custom WebView","description":"While the built-in web view has a lot of features, it is not possible to handle every use-case in React Native. You can, however, extend the web view with native code without forking React Native or duplicating all the existing web view code."},"datepickerandroid":{"id":"datepickerandroid","title":"\ud83d\udea7 DatePickerAndroid","description":"Deprecated. Use one of the community packages instead."},"datepickerios":{"id":"datepickerios","title":"\ud83d\udea7 DatePickerIOS","description":"Deprecated. Use one of the community packages instead."},"debugging":{"id":"debugging","title":"\u8c03\u8bd5","description":"\u8bbf\u95ee App \u5185\u7684\u5f00\u53d1\u83dc\u5355","sidebar":"docs"},"debugging-native-code":{"id":"debugging-native-code","title":"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801","description":"\u4ec5\u9650\u5305\u542b\u539f\u751f\u4ee3\u7801\u7684\u9879\u76ee","sidebar":"docs"},"debugging-release-builds":{"id":"debugging-release-builds","title":"\u8c03\u8bd5\u53d1\u884c\u7248\u672c","description":"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a","sidebar":"docs"},"devsettings":{"id":"devsettings","title":"DevSettings","description":"DevSettings \u6a21\u5757\u53ef\u4ee5\u5bf9\u5f00\u53d1\u8005\u83dc\u5355\u8fdb\u884c\u4e00\u4e9b\u81ea\u5b9a\u4e49\u3002","sidebar":"api"},"dimensions":{"id":"dimensions","title":"Dimensions","description":"\u672c\u6a21\u5757\u7528\u4e8e\u83b7\u53d6\u8bbe\u5907\u5c4f\u5e55\u7684\u5bbd\u9ad8\u3002","sidebar":"api"},"drawerlayoutandroid":{"id":"drawerlayoutandroid","title":"DrawerLayoutAndroid","description":"\u5c01\u88c5\u4e86 Android \u5e73\u53f0DrawerLayout\u7684 React \u7ec4\u4ef6\u3002\u62bd\u5c49\uff08\u901a\u5e38\u7528\u4e8e\u5bfc\u822a\u5207\u6362\uff09\u662f\u901a\u8fc7renderNavigationView\u65b9\u6cd5\u6e32\u67d3\u7684\uff0c\u5e76\u4e14 DrawerLayoutAndroid \u7684\u76f4\u63a5\u5b50\u89c6\u56fe\u4f1a\u6210\u4e3a\u4e3b\u89c6\u56fe\uff08\u7528\u4e8e\u653e\u7f6e\u5185\u5bb9\uff09\u3002\u5bfc\u822a\u89c6\u56fe\u4e00\u5f00\u59cb\u5728\u5c4f\u5e55\u4e0a\u5e76\u4e0d\u53ef\u89c1\uff0c\u4e0d\u8fc7\u53ef\u4ee5\u4ecedrawerPosition\u6307\u5b9a\u7684\u7a97\u53e3\u4fa7\u9762\u62d6\u62fd\u51fa\u6765\uff0c\u5e76\u4e14\u62bd\u5c49\u7684\u5bbd\u5ea6\u53ef\u4ee5\u4f7f\u7528drawerWidth\u5c5e\u6027\u6765\u6307\u5b9a\u3002","sidebar":"\u7ec4\u4ef6"},"dynamiccolorios":{"id":"dynamiccolorios","title":"DynamicColorIOS","description":"DynamicColorIOS\u51fd\u6570\u662f\u4e13\u95e8\u9488\u5bf9iOS\u5e73\u53f0\u7684\u989c\u8272\u7c7b\u578b\u3002","sidebar":"api"},"easing":{"id":"easing","title":"Easing","description":"Easing\u6a21\u5757\u5b9e\u73b0\u4e86\u5e38\u89c1\u7684\u52a8\u753b\u7f13\u52a8\u51fd\u6570\u3002 \u8fd9\u4e2a\u6a21\u5757\u88abAnimated.timing()\u7528\u4e8e\u5728\u52a8\u753b\u4e2d\u4f20\u8fbe\u771f\u5b9e\u53ef\u4fe1\u7684\u8fd0\u52a8\u3002","sidebar":"api"},"environment-setup":{"id":"environment-setup","title":"\u642d\u5efa\u5f00\u53d1\u73af\u5883","description":"\u6b22\u8fce\u4f7f\u7528 React Native\uff01\u8fd9\u7bc7\u6587\u6863\u4f1a\u5e2e\u52a9\u4f60\u642d\u5efa\u57fa\u672c\u7684 React Native \u5f00\u53d1\u73af\u5883\u3002","sidebar":"docs"},"fabric-native-components-android":{"id":"fabric-native-components-android","title":"Fabric Native Modules: Android","description":"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b Android \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a"},"fabric-native-components-introduction":{"id":"fabric-native-components-introduction","title":"Fabric Native Components Introduction","description":"\u5982\u679c\u4f60\u60f3\u6784\u5efa\u4e00\u4e2a \u65b0\u67b6\u6784 \u7684 React Native \u7ec4\u4ef6\uff0c\u8be5\u7ec4\u4ef6\u53ef\u4ee5\u5305\u88c5\u4e00\u4e2a Host Component\uff0c\u4f8b\u5982 Android \u4e0a\u7684 CheckBox\uff0c\u6216\u8005 iOS \u4e0a\u7684 UIButton\uff0c\u4f60\u5e94\u8be5\u4f7f\u7528 Fabric \u539f\u751f\u7ec4\u4ef6\u3002","sidebar":"docs"},"fabric-native-components-ios":{"id":"fabric-native-components-ios","title":"Fabric Native Components: iOS","description":"\u73b0\u5728\uff0c\u662f\u65f6\u5019\u7f16\u5199\u4e00\u4e9b iOS \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u4fbf\u80fd\u591f\u6e32\u67d3 web \u89c6\u56fe\u3002\u4ee5\u4e0b\u662f\u9700\u8981\u7684\u6b65\u9aa4\uff1a"},"fabric-renderer":{"id":"fabric-renderer","title":"Fabric \u6e32\u67d3\u5668","description":"Fabric \u662f React Native \u65b0\u67b6\u6784\u7684\u6e32\u67d3\u7cfb\u7edf\uff0c\u662f\u4ece\u8001\u67b6\u6784\u7684\u6e32\u67d3\u7cfb\u7edf\u6f14\u53d8\u800c\u6765\u7684\u3002\u6838\u5fc3\u539f\u7406\u662f\u5728 C++ \u5c42\u7edf\u4e00\u66f4\u591a\u7684\u6e32\u67d3\u903b\u8f91\uff0c\u63d0\u5347\u4e0e\u5bbf\u4e3b\u5e73\u53f0\uff08host platforms\uff09\u4e92\u64cd\u4f5c\u6027\uff0c\u5e76\u4e3a React Native \u89e3\u9501\u66f4\u591a\u80fd\u529b\u3002\u5176\u7814\u53d1\u59cb\u4e8e 2018 \u5e74\u3002\u4ece 2021 \u5e74\u5f00\u59cb\uff0c Facebook App \u4e2d\u7684 React Native \u542f\u7528\u4e86\u65b0\u7684\u6e32\u67d3\u5668\u3002"},"fast-refresh":{"id":"fast-refresh","title":"\u5feb\u901f\u5237\u65b0","description":"\u5feb\u901f\u5237\u65b0\u662f React Native \u4e00\u4e2a\u7279\u6027\uff0c\u5728\u4fee\u6539\u7ec4\u4ef6\u7684\u65f6\u5019\u5feb\u901f\u5237\u65b0\u4f1a\u7ed9\u4f60\u4e00\u4e2a\u5373\u65f6\u7684\u53cd\u9988\u3002\u5feb\u901f\u5237\u65b0\u9ed8\u8ba4\u662f\u5f00\u542f\u7684\uff0c\u53ef\u4ee5\u901a\u8fc7\u8c03\u6574 React Native \u5f00\u53d1\u8005\u83dc\u5355\u91cc\u9762\u7684 \\"Enable Fast Refresh\\" \u6765\u5f00\u542f\u6216\u5173\u95ed\u3002\u5728\u5feb\u901f\u5237\u65b0\u5f00\u542f\u7684\u65f6\u5019\uff0c\u5927\u591a\u6570\u7684\u4fee\u6539\u80fd\u5728\u4e00\u5230\u4e24\u79d2\u4e4b\u5185\u5448\u73b0\u3002","sidebar":"docs"},"flatlist":{"id":"flatlist","title":"FlatList","description":"\u9ad8\u6027\u80fd\u7684\u7b80\u5355\u5217\u8868\u7ec4\u4ef6\uff0c\u652f\u6301\u4e0b\u9762\u8fd9\u4e9b\u5e38\u7528\u7684\u529f\u80fd\uff1a","sidebar":"\u7ec4\u4ef6"},"flexbox":{"id":"flexbox","title":"\u4f7f\u7528 Flexbox \u5e03\u5c40","description":"\u6211\u4eec\u5728 React Native \u4e2d\u4f7f\u7528 flexbox \u89c4\u5219\u6765\u6307\u5b9a\u67d0\u4e2a\u7ec4\u4ef6\u7684\u5b50\u5143\u7d20\u7684\u5e03\u5c40\u3002Flexbox \u53ef\u4ee5\u5728\u4e0d\u540c\u5c4f\u5e55\u5c3a\u5bf8\u4e0a\u63d0\u4f9b\u4e00\u81f4\u7684\u5e03\u5c40\u7ed3\u6784\u3002","sidebar":"docs"},"gesture-responder-system":{"id":"gesture-responder-system","title":"\u624b\u52bf\u54cd\u5e94\u7cfb\u7edf","description":"\u79fb\u52a8\u8bbe\u5907\u4e0a\u7684\u624b\u52bf\u8bc6\u522b\u8981\u6bd4\u5728 web \u4e0a\u590d\u6742\u5f97\u591a\u3002\u7528\u6237\u7684\u4e00\u6b21\u89e6\u6478\u64cd\u4f5c\u7684\u771f\u5b9e\u610f\u56fe\u662f\u4ec0\u4e48\uff0cApp \u8981\u7ecf\u8fc7\u597d\u51e0\u4e2a\u9636\u6bb5\u624d\u80fd\u5224\u65ad\u3002\u6bd4\u5982 App \u9700\u8981\u5224\u65ad\u7528\u6237\u7684\u89e6\u6478\u5230\u5e95\u662f\u5728\u6eda\u52a8\u9875\u9762\uff0c\u8fd8\u662f\u6ed1\u52a8\u4e00\u4e2a widget\uff0c\u6216\u8005\u53ea\u662f\u4e00\u4e2a\u5355\u7eaf\u7684\u70b9\u51fb\u3002\u751a\u81f3\u968f\u7740\u6301\u7eed\u65f6\u95f4\u7684\u4e0d\u540c\uff0c\u8fd9\u4e9b\u64cd\u4f5c\u8fd8\u4f1a\u8f6c\u5316\u3002\u6b64\u5916\uff0c\u8fd8\u6709\u591a\u70b9\u540c\u65f6\u89e6\u63a7\u7684\u60c5\u51b5\u3002","sidebar":"docs"},"getting-started":{"id":"getting-started","title":"\u7b80\u4ecb","description":"\u6b22\u8fce\u5f00\u542f React Native \u7684\u65c5\u7a0b\uff01\u5982\u679c\u4f60\u5728\u627e\u5982\u4f55\u642d\u5efa\u73af\u5883\u7684\u6587\u6863\uff0c\u8bf7\u79fb\u6b65\u642d\u5efa\u5f00\u53d1\u73af\u5883\u3002 \u7ee7\u7eed\u5f80\u4e0b\u9605\u8bfb\u53ef\u4e86\u89e3\u5173\u4e8e\u6587\u6863\u7ed3\u6784\u3001\u539f\u751f\u7ec4\u4ef6\u3001React\u7b49\u76f8\u5173\u7684\u4e00\u4e9b\u4ecb\u7ecd\u3002","sidebar":"docs"},"handling-text-input":{"id":"handling-text-input","title":"\u5904\u7406\u6587\u672c\u8f93\u5165","description":"TextInput\u662f\u4e00\u4e2a\u5141\u8bb8\u7528\u6237\u8f93\u5165\u6587\u672c\u7684\u57fa\u7840\u7ec4\u4ef6\u3002\u5b83\u6709\u4e00\u4e2a\u540d\u4e3aonChangeText\u7684\u5c5e\u6027\uff0c\u6b64\u5c5e\u6027\u63a5\u53d7\u4e00\u4e2a\u51fd\u6570\uff0c\u800c\u6b64\u51fd\u6570\u4f1a\u5728\u6587\u672c\u53d8\u5316\u65f6\u88ab\u8c03\u7528\u3002\u53e6\u5916\u8fd8\u6709\u4e00\u4e2a\u540d\u4e3aonSubmitEditing\u7684\u5c5e\u6027\uff0c\u4f1a\u5728\u6587\u672c\u88ab\u63d0\u4ea4\u540e\uff08\u7528\u6237\u6309\u4e0b\u8f6f\u952e\u76d8\u4e0a\u7684\u63d0\u4ea4\u952e\uff09\u8c03\u7528\u3002","sidebar":"docs"},"handling-touches":{"id":"handling-touches","title":"\u5904\u7406\u89e6\u6478\u4e8b\u4ef6","description":"\u79fb\u52a8\u5e94\u7528\u4e0a\u7684\u7528\u6237\u4ea4\u4e92\u57fa\u672c\u9760\u201c\u6478\u201d\u3002\u5f53\u7136\uff0c\u201c\u6478\u201d\u4e5f\u662f\u6709\u5404\u79cd\u59ff\u52bf\u7684\uff1a\u5728\u4e00\u4e2a\u6309\u94ae\u4e0a\u70b9\u51fb\uff0c\u5728\u4e00\u4e2a\u5217\u8868\u4e0a\u6ed1\u52a8\uff0c\u6216\u662f\u5728\u4e00\u4e2a\u5730\u56fe\u4e0a\u7f29\u653e\u3002React Native \u63d0\u4f9b\u4e86\u53ef\u4ee5\u5904\u7406\u5e38\u89c1\u89e6\u6478\u624b\u52bf\uff08\u4f8b\u5982\u70b9\u51fb\u6216\u6ed1\u52a8\uff09\u7684\u7ec4\u4ef6\uff0c \u4ee5\u53ca\u53ef\u7528\u4e8e\u8bc6\u522b\u66f4\u590d\u6742\u7684\u624b\u52bf\u7684\u5b8c\u6574\u7684\u624b\u52bf\u54cd\u5e94\u7cfb\u7edf\u3002","sidebar":"docs"},"headless-js-android":{"id":"headless-js-android","title":"Headless JS\uff08\u540e\u53f0\u4efb\u52a1\uff09","description":"Headless JS \u662f\u4e00\u79cd\u4f7f\u7528 js \u5728\u540e\u53f0\u6267\u884c\u4efb\u52a1\u7684\u65b9\u6cd5\u3002\u5b83\u53ef\u4ee5\u7528\u6765\u5728\u540e\u53f0\u540c\u6b65\u6570\u636e\u3001\u5904\u7406\u63a8\u9001\u901a\u77e5\u6216\u662f\u64ad\u653e\u97f3\u4e50\u7b49\u7b49\u3002","sidebar":"docs"},"height-and-width":{"id":"height-and-width","title":"\u9ad8\u5ea6\u4e0e\u5bbd\u5ea6","description":"\u7ec4\u4ef6\u7684\u9ad8\u5ea6\u548c\u5bbd\u5ea6\u51b3\u5b9a\u4e86\u5176\u5728\u5c4f\u5e55\u4e0a\u663e\u793a\u7684\u5c3a\u5bf8\u3002","sidebar":"docs"},"hermes":{"id":"hermes","title":"\u4f7f\u7528\u65b0\u7684 Hermes \u5f15\u64ce","description":"Hermes \u662f\u4e13\u95e8\u9488\u5bf9 React Native \u5e94\u7528\u800c\u4f18\u5316\u7684\u5168\u65b0\u5f00\u6e90 JavaScript \u5f15\u64ce\u3002\u5bf9\u4e8e\u5f88\u591a\u5e94\u7528\u6765\u8bf4\uff0c\u542f\u7528 Hermes \u5f15\u64ce\u53ef\u4ee5\u4f18\u5316\u542f\u52a8\u65f6\u95f4\uff0c\u51cf\u5c11\u5185\u5b58\u5360\u7528\u4ee5\u53ca\u7a7a\u95f4\u5360\u7528\u3002\u4ece React Native 0.70 \u7248\u672c\u5f00\u59cb Hermes \u5df2\u7ecf\u9ed8\u8ba4\u542f\u7528\uff0c\u65e0\u9700\u5f00\u53d1\u8005\u518d\u505a\u4efb\u4f55\u914d\u7f6e\u3002","sidebar":"docs"},"image":{"id":"image","title":"Image","description":"\u7528\u4e8e\u663e\u793a\u591a\u79cd\u4e0d\u540c\u7c7b\u578b\u56fe\u7247\u7684 React \u7ec4\u4ef6\uff0c\u5305\u62ec\u7f51\u7edc\u56fe\u7247\u3001\u9759\u6001\u8d44\u6e90\u3001\u4e34\u65f6\u7684\u672c\u5730\u56fe\u7247\u3001\u4ee5\u53ca\u672c\u5730\u78c1\u76d8\u4e0a\u7684\u56fe\u7247\uff08\u5982\u76f8\u518c\uff09\u7b49\u3002","sidebar":"\u7ec4\u4ef6"},"image-style-props":{"id":"image-style-props","title":"\u56fe\u7247\u6837\u5f0f\u5c5e\u6027","description":"\u793a\u4f8b","sidebar":"\u7ec4\u4ef6"},"imagebackground":{"id":"imagebackground","title":"ImageBackground","description":"\u5bf9\u4e8e\u719f\u6089 Web \u5f00\u53d1\u7684\u5f00\u53d1\u4eba\u5458\u6765\u8bf4\uff0cbackground-image\u662f\u4e00\u4e2a\u5e38\u89c1\u7684\u529f\u80fd\u8bf7\u6c42\u3002\u4e3a\u4e86\u5904\u7406\u8fd9\u79cd\u60c5\u51b5\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528`\u7ec4\u4ef6\uff0c\u5b83\u5177\u6709\u4e0e`\u76f8\u540c\u7684\u5c5e\u6027\uff0c\u5e76\u4e14\u53ef\u4ee5\u6dfb\u52a0\u4efb\u4f55\u5b50\u5143\u7d20\u4ee5\u8986\u76d6\u5728\u5176\u4e0a\u9762\u3002","sidebar":"\u7ec4\u4ef6"},"imagepickerios":{"id":"imagepickerios","title":"\ud83d\udea7 ImagePickerIOS","description":"Deprecated. Use one of the community packages instead."},"images":{"id":"images","title":"\u56fe\u7247","description":"\u9759\u6001\u56fe\u7247\u8d44\u6e90","sidebar":"docs"},"improvingux":{"id":"improvingux","title":"\u6539\u8fdb\u7528\u6237\u4f53\u9a8c","description":"\u914d\u7f6e\u6587\u672c\u8f93\u5165"},"inputaccessoryview":{"id":"inputaccessoryview","title":"InputAccessoryView","description":"\u4e00\u4e2a\u53ef\u4ee5\u5728iOS\u4e0a\u81ea\u5b9a\u4e49\u952e\u76d8\u8f93\u5165\u8f85\u52a9\u89c6\u56fe\u7684\u7ec4\u4ef6\u3002\u5f53TextInput\u83b7\u5f97\u7126\u70b9\u65f6\uff0c\u8f93\u5165\u8f85\u52a9\u89c6\u56fe\u663e\u793a\u5728\u952e\u76d8\u4e0a\u65b9\u3002\u8be5\u7ec4\u4ef6\u53ef\u7528\u4e8e\u521b\u5efa\u81ea\u5b9a\u4e49\u5de5\u5177\u680f\u3002","sidebar":"\u7ec4\u4ef6"},"integration-with-android-fragment":{"id":"integration-with-android-fragment","title":"\u96c6\u6210\u5230 Android Fragment","description":"\u4e0e\u73b0\u6709\u5e94\u7528\u7a0b\u5e8f\u96c6\u6210\u6307\u5357\u4e2d\u8be6\u7ec6\u4ecb\u7ecd\u4e86\u5982\u4f55\u5c06\u5168\u5c4f React Native \u5e94\u7528\u7a0b\u5e8f\u4f5c\u4e3a Activity \u96c6\u6210\u5230\u73b0\u6709 Android \u5e94\u7528\u7a0b\u5e8f\u4e2d\u3002\u8981\u5728\u73b0\u6709\u5e94\u7528\u7a0b\u5e8f\u7684 Fragments \u4e2d\u4f7f\u7528 React Native \u7ec4\u4ef6\uff0c\u9700\u8981\u8fdb\u884c\u4e00\u4e9b\u989d\u5916\u7684\u8bbe\u7f6e\u3002\u8fd9\u6837\u505a\u7684\u597d\u5904\u662f\u5b83\u5141\u8bb8\u539f\u751f\u5e94\u7528\u7a0b\u5e8f\u5c06 React Native \u7ec4\u4ef6\u4e0e Activity \u4e2d\u7684\u539f\u751f Fragments \u96c6\u6210\u5728\u4e00\u8d77\u3002","sidebar":"docs"},"integration-with-existing-apps":{"id":"integration-with-existing-apps","title":"\u96c6\u6210\u5230\u73b0\u6709\u539f\u751f\u5e94\u7528","description":"\u5982\u679c\u4f60\u6b63\u51c6\u5907\u4ece\u5934\u5f00\u59cb\u5236\u4f5c\u4e00\u4e2a\u65b0\u7684\u5e94\u7528\uff0c\u90a3\u4e48 React Native \u4f1a\u662f\u4e2a\u975e\u5e38\u597d\u7684\u9009\u62e9\u3002\u4f46\u5982\u679c\u4f60\u53ea\u60f3\u7ed9\u73b0\u6709\u7684\u539f\u751f\u5e94\u7528\u4e2d\u6dfb\u52a0\u4e00\u4e24\u4e2a\u89c6\u56fe\u6216\u662f\u4e1a\u52a1\u6d41\u7a0b\uff0cReact Native \u4e5f\u540c\u6837\u4e0d\u5728\u8bdd\u4e0b\u3002\u53ea\u9700\u7b80\u5355\u51e0\u6b65\uff0c\u4f60\u5c31\u53ef\u4ee5\u7ed9\u539f\u6709\u5e94\u7528\u52a0\u4e0a\u65b0\u7684\u57fa\u4e8e React Native \u7684\u7279\u6027\u3001\u753b\u9762\u548c\u89c6\u56fe\u7b49\u3002","sidebar":"docs"},"interactionmanager":{"id":"interactionmanager","title":"InteractionManager","description":"Interactionmanager \u53ef\u4ee5\u5c06\u4e00\u4e9b\u8017\u65f6\u8f83\u957f\u7684\u5de5\u4f5c\u5b89\u6392\u5230\u6240\u6709\u4e92\u52a8\u6216\u52a8\u753b\u5b8c\u6210\u4e4b\u540e\u518d\u8fdb\u884c\u3002\u8fd9\u6837\u53ef\u4ee5\u4fdd\u8bc1 JavaScript \u52a8\u753b\u7684\u6d41\u7545\u8fd0\u884c\u3002","sidebar":"api"},"intro-react":{"id":"intro-react","title":"React \u57fa\u7840","description":"\u8981\u6df1\u5165\u7406\u89e3 React Native\uff0c\u9700\u8981\u624e\u5b9e\u7684React \u57fa\u7840\u77e5\u8bc6\u3002\u8fd9\u7bc7\u5c0f\u6559\u7a0b\u53ef\u4ee5\u5e2e\u52a9\u4f60\u5165\u95e8\u6216\u8005\u6e29\u4e60\u76f8\u5173\u77e5\u8bc6\u3002","sidebar":"docs"},"intro-react-native-components":{"id":"intro-react-native-components","title":"\u6838\u5fc3\u7ec4\u4ef6\u4e0e\u539f\u751f\u7ec4\u4ef6","description":"React Native \u4f7f\u7528\u5b8c\u5168\u539f\u751f\u7684\u7ec4\u4ef6\u6765\u6784\u5efa\u5e94\u7528\u754c\u9762\u3002\u5c24\u5176\u65b9\u4fbf\u7684\u662f\u5b83\u5df2\u7ecf\u5185\u7f6e\u4e86\u5927\u91cf\u76f4\u63a5\u4e0a\u624b\u53ef\u7528\u7684\u6838\u5fc3\u7ec4\u4ef6\u3002","sidebar":"docs"},"javascript-environment":{"id":"javascript-environment","title":"JavaScript \u73af\u5883","description":"JavaScript \u8fd0\u884c\u65f6\u73af\u5883","sidebar":"docs"},"keyboard":{"id":"keyboard","title":"Keyboard","description":"Keyboard\u6a21\u5757\u7528\u6765\u63a7\u5236\u952e\u76d8\u76f8\u5173\u7684\u4e8b\u4ef6\u3002","sidebar":"api"},"keyboardavoidingview":{"id":"keyboardavoidingview","title":"KeyboardAvoidingView","description":"\u672c\u7ec4\u4ef6\u7528\u4e8e\u89e3\u51b3\u4e00\u4e2a\u5e38\u89c1\u7684\u5c34\u5c2c\u95ee\u9898\uff1a\u624b\u673a\u4e0a\u5f39\u51fa\u7684\u952e\u76d8\u5e38\u5e38\u4f1a\u6321\u4f4f\u5f53\u524d\u7684\u89c6\u56fe\u3002\u672c\u7ec4\u4ef6\u53ef\u4ee5\u81ea\u52a8\u6839\u636e\u952e\u76d8\u7684\u9ad8\u5ea6\uff0c\u8c03\u6574\u81ea\u8eab\u7684 height \u6216\u5e95\u90e8\u7684 padding\uff0c\u4ee5\u907f\u514d\u88ab\u906e\u6321\u3002","sidebar":"\u7ec4\u4ef6"},"layout-props":{"id":"layout-props","title":"\u5e03\u5c40\u5c5e\u6027","description":"\u66f4\u591a\u5173\u4e8e\u8fd9\u4e9b\u5c5e\u6027\u7684\u8be6\u7ec6\u793a\u4f8b\u53ef\u4ee5\u5728Flexbox \u5e03\u5c40\u9875\u9762\u4e0a\u627e\u5230\u3002","sidebar":"\u7ec4\u4ef6"},"layoutanimation":{"id":"layoutanimation","title":"LayoutAnimation","description":"\u5f53\u5e03\u5c40\u53d8\u5316\u65f6\uff0c\u81ea\u52a8\u5c06\u89c6\u56fe\u8fd0\u52a8\u5230\u5b83\u4eec\u65b0\u7684\u4f4d\u7f6e\u4e0a\u3002","sidebar":"api"},"layoutevent":{"id":"layoutevent","title":"\u5e03\u5c40\u4e8b\u4ef6\u5bf9\u8c61","description":"LayoutEvent object is returned in the callback as a result of component layout change, for example onLayout in View component.","sidebar":"\u7ec4\u4ef6"},"legacy/direct-manipulation":{"id":"legacy/direct-manipulation","title":"\u76f4\u63a5\u64cd\u4f5c","description":"\u6709\u65f6\u5019\u6211\u4eec\u9700\u8981\u76f4\u63a5\u6539\u52a8\u7ec4\u4ef6\u5e76\u89e6\u53d1\u5c40\u90e8\u7684\u5237\u65b0\uff0c\u4f46\u4e0d\u4f7f\u7528 state \u6216\u662f props\u3002\u8b6c\u5982\u5728\u6d4f\u89c8\u5668\u4e2d\u4f7f\u7528 React \u5e93\uff0c\u6709\u65f6\u5019\u4f1a\u9700\u8981\u76f4\u63a5\u4fee\u6539\u4e00\u4e2a DOM \u8282\u70b9\uff0c\u800c\u5728\u624b\u673a App \u4e2d\u64cd\u4f5c View \u65f6\u4e5f\u4f1a\u78b0\u5230\u540c\u6837\u7684\u60c5\u51b5\u3002\u5728 React Native \u4e2d\uff0csetNativeProps\u5c31\u662f\u7b49\u4ef7\u4e8e\u76f4\u63a5\u64cd\u4f5c DOM \u8282\u70b9\u7684\u65b9\u6cd5\u3002","sidebar":"docs"},"legacy/local-library-setup":{"id":"legacy/local-library-setup","title":"Local libraries setup","description":"A local library is a library containing views or modules that\'s local to your app and not published to a registry. This is different from the traditional setup for view and modules in the sense that a local library is decoupled from your app\'s native code.","sidebar":"docs"},"legacy/native-components-android":{"id":"legacy/native-components-android","title":"Android \u539f\u751fUI\u7ec4\u4ef6","description":"\u5728\u5982\u4eca\u7684 App \u4e2d\uff0c\u5df2\u7ecf\u6709\u6210\u5343\u4e0a\u4e07\u7684\u539f\u751f UI \u90e8\u4ef6\u4e86\u2014\u2014\u5176\u4e2d\u7684\u4e00\u4e9b\u662f\u5e73\u53f0\u7684\u4e00\u90e8\u5206\uff0c\u53e6\u4e00\u4e9b\u53ef\u80fd\u6765\u81ea\u4e8e\u4e00\u4e9b\u7b2c\u4e09\u65b9\u5e93\uff0c\u800c\u4e14\u53ef\u80fd\u4f60\u81ea\u5df1\u8fd8\u6536\u85cf\u4e86\u5f88\u591a\u3002React Native \u5df2\u7ecf\u5c01\u88c5\u4e86\u5927\u90e8\u5206\u6700\u5e38\u89c1\u7684\u7ec4\u4ef6\uff0c\u8b6c\u5982ScrollView\u548cTextInput\uff0c\u4f46\u4e0d\u53ef\u80fd\u5c01\u88c5\u5168\u90e8\u7ec4\u4ef6\u3002\u800c\u4e14\uff0c\u8bf4\u4e0d\u5b9a\u4f60\u66fe\u7ecf\u4e3a\u81ea\u5df1\u4ee5\u524d\u7684 App \u8fd8\u5c01\u88c5\u8fc7\u4e00\u4e9b\u7ec4\u4ef6\uff0cReact Native \u80af\u5b9a\u6ca1\u6cd5\u5305\u542b\u5b83\u4eec\u3002\u5e78\u8fd0\u7684\u662f\uff0c\u5728 React Naitve \u5e94\u7528\u7a0b\u5e8f\u4e2d\u5c01\u88c5\u548c\u690d\u5165\u5df2\u6709\u7684\u7ec4\u4ef6\u975e\u5e38\u7b80\u5355\u3002","sidebar":"docs"},"legacy/native-components-ios":{"id":"legacy/native-components-ios","title":"iOS \u539f\u751fUI\u7ec4\u4ef6","description":"\u5728\u5982\u4eca\u7684 App \u4e2d\uff0c\u5df2\u7ecf\u6709\u6210\u5343\u4e0a\u4e07\u7684\u539f\u751f UI \u90e8\u4ef6\u4e86\u2014\u2014\u5176\u4e2d\u7684\u4e00\u4e9b\u662f\u5e73\u53f0\u7684\u4e00\u90e8\u5206\uff0c\u53e6\u4e00\u4e9b\u53ef\u80fd\u6765\u81ea\u4e8e\u4e00\u4e9b\u7b2c\u4e09\u65b9\u5e93\uff0c\u800c\u4e14\u53ef\u80fd\u4f60\u81ea\u5df1\u8fd8\u6536\u85cf\u4e86\u5f88\u591a\u3002React Native \u5df2\u7ecf\u5c01\u88c5\u4e86\u5927\u90e8\u5206\u6700\u5e38\u89c1\u7684\u7ec4\u4ef6\uff0c\u8b6c\u5982ScrollView\u548cTextInput\uff0c\u4f46\u4e0d\u53ef\u80fd\u5c01\u88c5\u5168\u90e8\u7ec4\u4ef6\u3002\u800c\u4e14\uff0c\u8bf4\u4e0d\u5b9a\u4f60\u66fe\u7ecf\u4e3a\u81ea\u5df1\u4ee5\u524d\u7684 App \u8fd8\u5c01\u88c5\u8fc7\u4e00\u4e9b\u7ec4\u4ef6\uff0cReact Native \u80af\u5b9a\u6ca1\u6cd5\u5305\u542b\u5b83\u4eec\u3002\u5e78\u8fd0\u7684\u662f\uff0c\u5728 React Naitve \u5e94\u7528\u7a0b\u5e8f\u4e2d\u5c01\u88c5\u548c\u690d\u5165\u5df2\u6709\u7684\u7ec4\u4ef6\u975e\u5e38\u7b80\u5355\u3002","sidebar":"docs"},"legacy/native-modules-android":{"id":"legacy/native-modules-android","title":"Android \u539f\u751f\u6a21\u5757","description":"\u6b22\u8fce\u6765\u5230 Android \u7684\u539f\u751f\u6a21\u5757\u3002\u8bf7\u5148\u9605\u8bfb \u539f\u751f\u6a21\u5757\u7b80\u4ecb \u4ee5\u4e86\u89e3\u539f\u751f\u6a21\u5757\u7684\u57fa\u672c\u6982\u5ff5\u3002","sidebar":"docs"},"legacy/native-modules-intro":{"id":"legacy/native-modules-intro","title":"\u539f\u751f\u6a21\u5757\u7b80\u4ecb","description":"\u6709\u65f6\u5019 App \u9700\u8981\u8bbf\u95ee\u5e73\u53f0 API\uff0c\u4f46 React Native \u53ef\u80fd\u8fd8\u6ca1\u6709\u76f8\u5e94\u7684\u6a21\u5757\u5305\u88c5\uff1b\u6216\u8005\u4f60\u9700\u8981\u590d\u7528\u4e00\u4e9b Java \u4ee3\u7801\uff0c\u800c\u4e0d\u662f\u7528 Javascript \u91cd\u65b0\u5b9e\u73b0\u4e00\u904d\uff1b\u53c8\u6216\u8005\u4f60\u9700\u8981\u5b9e\u73b0\u67d0\u4e9b\u9ad8\u6027\u80fd\u7684\u3001\u591a\u7ebf\u7a0b\u7684\u4ee3\u7801\uff0c\u8b6c\u5982\u56fe\u7247\u5904\u7406\u3001\u6570\u636e\u5e93\u3001\u6216\u8005\u5404\u79cd\u9ad8\u7ea7\u6269\u5c55\u7b49\u7b49\u3002","sidebar":"docs"},"legacy/native-modules-ios":{"id":"legacy/native-modules-ios","title":"iOS \u539f\u751f\u6a21\u5757","description":"\u6709\u65f6\u5019 App \u9700\u8981\u8bbf\u95ee\u5e73\u53f0 API\uff0c\u4f46 React Native \u53ef\u80fd\u8fd8\u6ca1\u6709\u76f8\u5e94\u7684\u6a21\u5757\u5c01\u88c5\uff1b\u6216\u8005\u4f60\u9700\u8981\u590d\u7528 Objective-C\u3001Swift \u6216 C++\u4ee3\u7801\uff0c\u800c\u4e0d\u662f\u7528 JavaScript \u91cd\u65b0\u5b9e\u73b0\u4e00\u904d\uff1b\u53c8\u6216\u8005\u4f60\u9700\u8981\u5b9e\u73b0\u67d0\u4e9b\u9ad8\u6027\u80fd\u3001\u591a\u7ebf\u7a0b\u7684\u4ee3\u7801\uff0c\u8b6c\u5982\u56fe\u7247\u5904\u7406\u3001\u6570\u636e\u5e93\u3001\u6216\u8005\u5404\u79cd\u9ad8\u7ea7\u6269\u5c55\u7b49\u7b49\u3002","sidebar":"docs"},"legacy/native-modules-setup":{"id":"legacy/native-modules-setup","title":"Native Modules NPM Package Setup","description":"Native modules are usually distributed as npm packages, except that on top of the usual JavaScript they will include some native code per platform. To understand more about npm packages you may find this guide useful.","sidebar":"docs"},"libraries":{"id":"libraries","title":"\u4f7f\u7528\u7b2c\u4e09\u65b9\u5e93","description":"This guide introduces React Native developers to finding, installing, and using third-party libraries in their apps.","sidebar":"docs"},"linking":{"id":"linking","title":"Linking","description":"Linking\u63d0\u4f9b\u4e86\u4e00\u4e2a\u901a\u7528\u7684\u63a5\u53e3\u6765\u4e0e\u4f20\u5165\u548c\u4f20\u51fa\u7684 App \u94fe\u63a5\u8fdb\u884c\u4ea4\u4e92\u3002","sidebar":"api"},"linking-libraries-ios":{"id":"linking-libraries-ios","title":"\u94fe\u63a5\u539f\u751f\u5e93","description":"\u5e76\u4e0d\u662f\u6240\u6709\u7684 APP \u90fd\u9700\u8981\u4f7f\u7528\u5168\u90e8\u7684\u539f\u751f\u529f\u80fd\uff0c\u5305\u542b\u652f\u6301\u5168\u90e8\u7279\u6027\u7684\u4ee3\u7801\u4f1a\u589e\u5927\u5e94\u7528\u7684\u4f53\u79ef\u3002\u4f46\u6211\u4eec\u4ecd\u7136\u5e0c\u671b\u80fd\u8ba9\u4f60\u7b80\u5355\u5730\u6839\u636e\u81ea\u5df1\u7684\u9700\u6c42\u6dfb\u52a0\u9700\u8981\u7684\u7279\u6027\u3002","sidebar":"docs"},"metro":{"id":"metro","title":"Metro","description":"React Native \u4f7f\u7528Metro\u6784\u5efa JavaScript \u4ee3\u7801\u548c\u8d44\u6e90\u3002","sidebar":"docs"},"modal":{"id":"modal","title":"Modal","description":"Modal \u7ec4\u4ef6\u662f\u4e00\u79cd\u7b80\u5355\u7684\u8986\u76d6\u5728\u5176\u4ed6\u89c6\u56fe\u4e4b\u4e0a\u663e\u793a\u5185\u5bb9\u7684\u65b9\u5f0f\u3002","sidebar":"\u7ec4\u4ef6"},"more-resources":{"id":"more-resources","title":"\u5176\u4ed6\u53c2\u8003\u8d44\u6e90","description":"\u5982\u679c\u4f60\u8010\u5fc3\u7684\u8bfb\u5b8c\u5e76\u7406\u89e3\u4e86\u672c\u7f51\u7ad9\u4e0a\u7684\u6240\u6709\u6587\u6863\uff0c\u90a3\u4e48\u4f60\u5e94\u8be5\u5df2\u7ecf\u53ef\u4ee5\u7f16\u5199\u4e00\u4e2a\u50cf\u6837\u7684 React Native \u5e94\u7528\u4e86\u3002\u4f46\u662f React Native \u5e76\u4e0d\u5168\u662f\u67d0\u4e00\u5bb6\u516c\u53f8\u7684\u4f5c\u54c1\u2014\u2014\u5b83\u6c47\u805a\u4e86\u6210\u5343\u4e0a\u4e07\u5f00\u6e90\u793e\u533a\u5f00\u53d1\u8005\u7684\u667a\u6167\u7ed3\u6676\u3002\u5982\u679c\u4f60\u60f3\u6df1\u5165\u7814\u7a76 React Native\uff0c\u90a3\u4e48\u5efa\u8bae\u4e0d\u8981\u9519\u8fc7\u4e0b\u9762\u8fd9\u4e9b\u53c2\u8003\u8d44\u6e90\u3002","sidebar":"docs"},"native-platform":{"id":"native-platform","title":"\u6865\u63a5\u539f\u751f\u5e73\u53f0\u80fd\u529b","description":"\u4f60\u7684\u5e94\u7528\u53ef\u80fd\u9700\u8981\u8bbf\u95ee React Native \u6216\u793e\u533a\u7ef4\u62a4\u7684\u6570\u767e\u4e2a \u7b2c\u4e09\u65b9\u5e93 \u4e2d\u672a\u76f4\u63a5\u63d0\u4f9b\u7684\u5e73\u53f0\u529f\u80fd\u3002\u4e5f\u8bb8\u4f60\u60f3\u8981\u91cd\u7528\u4e00\u4e9b\u73b0\u6709\u7684 Objective-C\u3001Swift\u3001Java\u3001Kotlin \u6216 C++ \u4ee3\u7801\u3002\u65e0\u8bba\u4f60\u7684\u539f\u56e0\u662f\u4ec0\u4e48\uff0cReact Native \u90fd\u63d0\u4f9b\u4e86\u4e00\u7ec4\u5f3a\u5927\u7684 API \u6765\u8fde\u63a5\u4f60\u7684\u539f\u751f\u4ee3\u7801\u548c JavaScript \u5e94\u7528\u4ee3\u7801\u3002","sidebar":"docs"},"navigation":{"id":"navigation","title":"\u4f7f\u7528\u5bfc\u822a\u5668\u8df3\u8f6c\u9875\u9762","description":"\u79fb\u52a8\u5e94\u7528\u57fa\u672c\u4e0d\u4f1a\u53ea\u7531\u4e00\u4e2a\u9875\u9762\u7ec4\u6210\u3002\u7ba1\u7406\u591a\u4e2a\u9875\u9762\u7684\u5448\u73b0\u3001\u8df3\u8f6c\u7684\u7ec4\u4ef6\u5c31\u662f\u6211\u4eec\u901a\u5e38\u6240\u8bf4\u7684\u5bfc\u822a\u5668\uff08navigator\uff09\u3002","sidebar":"docs"},"netinfo":{"id":"netinfo","title":"NetInfo","description":"\u5df2\u8fc7\u65f6\u3002 Use react-native-community/react-native-netinfo instead."},"network":{"id":"network","title":"\u8bbf\u95ee\u7f51\u7edc","description":"\u5f88\u591a\u79fb\u52a8\u5e94\u7528\u90fd\u9700\u8981\u4ece\u8fdc\u7a0b\u5730\u5740\u4e2d\u83b7\u53d6\u6570\u636e\u6216\u8d44\u6e90\u3002\u4f60\u53ef\u80fd\u9700\u8981\u7ed9\u67d0\u4e2a REST API \u53d1\u8d77 POST \u8bf7\u6c42\u4ee5\u63d0\u4ea4\u7528\u6237\u6570\u636e\uff0c\u53c8\u6216\u8005\u53ef\u80fd\u4ec5\u4ec5\u9700\u8981\u4ece\u67d0\u4e2a\u670d\u52a1\u5668\u4e0a\u83b7\u53d6\u4e00\u4e9b\u9759\u6001\u5185\u5bb9\u2014\u2014\u4ee5\u4e0b\u5c31\u662f\u4f60\u4f1a\u7528\u5230\u7684\u4e1c\u897f\u3002\u65b0\u624b\u53ef\u4ee5\u5bf9\u7167\u8fd9\u4e2a\u7b80\u77ed\u7684\u89c6\u9891\u6559\u7a0b\u52a0\u6df1\u7406\u89e3\u3002","sidebar":"docs"},"new-architecture-app-intro":{"id":"new-architecture-app-intro","title":"\u5728\u5e94\u7528\u4e2d\u542f\u7528\u7684\u9884\u5907\u5de5\u4f5c","description":"\u5728\u542f\u7528\u65b0\u67b6\u6784\u4e4b\u524d\uff0c\u5e94\u5148\u6ee1\u8db3\u4e00\u4e9b\u5148\u51b3\u6761\u4ef6\u3002"},"new-architecture-app-modules-ios":{"id":"new-architecture-app-modules-ios","title":"\u5728 iOS \u4e0a\u542f\u7528 TurboModule","description":"Make sure your application meets all the prerequisites."},"new-architecture-app-renderer-android":{"id":"new-architecture-app-renderer-android","title":"\u5728 Android \u4e0a\u542f\u7528 Fabric","description":"Make sure your application meets all the prerequisites."},"new-architecture-app-renderer-ios":{"id":"new-architecture-app-renderer-ios","title":"\u5728 iOS \u4e0a\u542f\u7528 Fabric","description":"This section will go over how to enable the new renderer in your app. Make sure your application meets all the prerequisites."},"new-architecture-intro":{"id":"new-architecture-intro","title":"\u8fc1\u79fb\u5230\u65b0\u67b6\u6784","description":"\u6b64\u8fc1\u79fb\u6307\u5357\u65e8\u5728\u4e3aReact Native\u7684\u5e93\u4f5c\u8005\u548c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u8005\u63d0\u4f9b\u3002\u5b83\u6982\u8ff0\u4e86\u60a8\u9700\u8981\u9075\u5faa\u7684\u6b65\u9aa4\uff0c\u4ee5\u5728\u60a8\u7684Android\u548ciOS\u5e93\u548c\u5e94\u7528\u4e2d\u4f7f\u7528\u7531\u65b0\u7684NativeModule\u7cfb\u7edf\uff08TurboModule\uff09\u548c\u65b0\u7684\u6e32\u67d3\u5668\uff08Fabric\uff09\u7ec4\u6210\u7684\u65b0\u67b6\u6784\u3002"},"new-architecture-library-android":{"id":"new-architecture-library-android","title":"\u5728 Android \u5e93\u4e2d\u542f\u7528","description":"\u4e00\u65e6\u60a8\u5728\u5148\u51b3\u6761\u4ef6\u4e2d\u5b9a\u4e49\u4e86\u672c\u673a\u6a21\u5757\u7684 JavaScript \u89c4\u8303\uff0c\u8bbe\u7f6e\u4e86 CodeGen \u914d\u7f6e\uff0c\u5e76\u9075\u5faa\u4e86 Android/Gradle \u8bbe\u7f6e\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u5c06\u60a8\u7684\u5e93\u8fc1\u79fb\u5230\u65b0\u67b6\u6784\u3002\u4ee5\u4e0b\u662f\u8fc1\u79fb\u6240\u9700\u7684\u6b65\u9aa4\u3002"},"new-architecture-library-intro":{"id":"new-architecture-library-intro","title":"\u5728\u5e93\u4e2d\u542f\u7528\u7684\u9884\u5907\u5de5\u4f5c","description":"The following steps will help ensure your modules and components are ready for the New Architecture."},"new-architecture-library-ios":{"id":"new-architecture-library-ios","title":"\u5728 iOS \u5e93\u4e2d\u542f\u7528","description":"You have defined the JavaScript specs for your native modules as part of the prerequisites, and you are now ready to migrate your library to the New Architecture. Here are the steps you can follow to accomplish this."},"new-architecture-troubleshooting":{"id":"new-architecture-troubleshooting","title":"\u5e38\u89c1\u95ee\u9898","description":"\u672c\u9875\u9762\u4f1a\u8bb0\u5f55\u4e00\u4e9b\u8fc1\u79fb\u5230\u65b0\u67b6\u6784\u65f6\u53ef\u80fd\u9047\u5230\u7684\u5e38\u89c1\u95ee\u9898\u7684\u89e3\u51b3\u65b9\u6848\u3002"},"new-architecture-turbo-modules":{"id":"new-architecture-turbo-modules","title":"\u65b0\u67b6\u6784\u7684\u539f\u751f\u6a21\u5757\uff08Turbo Module\uff09","description":"If you\'ve worked with React Native, you may be familiar with the concept of Native Modules, which allow JavaScript and platform-native code to communicate over the React Native \\"bridge\\", which handles cross-platform serialization via JSON."},"optimizing-flatlist-configuration":{"id":"optimizing-flatlist-configuration","title":"\u5217\u8868\u914d\u7f6e\u4f18\u5316","description":"\u672f\u8bed\u5b9a\u4e49","sidebar":"docs"},"optimizing-javascript-loading":{"id":"optimizing-javascript-loading","title":"Optimizing JavaScript loading","description":"\u89e3\u6790\u548c\u8fd0\u884c JavaScript \u4ee3\u7801\u9700\u8981\u5185\u5b58\u548c\u65f6\u95f4\u3002\u56e0\u6b64\uff0c\u968f\u7740\u4f60\u7684\u5e94\u7528\u7a0b\u5e8f\u589e\u957f\uff0c\u901a\u5e38\u5c06\u4ee3\u7801\u52a0\u8f7d\u5ef6\u8fdf\u5230\u9996\u6b21\u9700\u8981\u65f6\u662f\u6709\u7528\u7684\u3002React Native \u81ea\u5e26\u4e00\u4e9b\u9ed8\u8ba4\u5f00\u542f\u7684\u6807\u51c6\u4f18\u5316\uff0c\u5e76\u4e14\u4f60\u53ef\u4ee5\u5728\u81ea\u5df1\u7684\u4ee3\u7801\u4e2d\u91c7\u7528\u4e00\u4e9b\u6280\u672f\u6765\u5e2e\u52a9 React \u66f4\u6709\u6548\u5730\u52a0\u8f7d\u4f60\u7684\u5e94\u7528\u7a0b\u5e8f\u3002\u8fd8\u6709\u4e00\u4e9b\u9002\u5408\u975e\u5e38\u5927\u5e94\u7528\u7a0b\u5e8f\u7684\u9ad8\u7ea7\u81ea\u52a8\u4f18\u5316\uff08\u5b83\u4eec\u4e5f\u6709\u81ea\u5df1\u7684\u6743\u8861\uff09\u3002","sidebar":"docs"},"other-debugging-methods":{"id":"other-debugging-methods","title":"\u5176\u4ed6\u8c03\u8bd5\u65b9\u6cd5","description":"\u6b64\u9875\u9762\u4ecb\u7ecd\u4e86\u9664 \u6253\u5f00\u8c03\u8bd5\u5668 \u4e2d\u63cf\u8ff0\u7684\u65b9\u6cd5\u4e4b\u5916\u7684\u5176\u4ed6 JavaScript \u8c03\u8bd5\u65b9\u6cd5\u3002\u5982\u679c\u4f60\u6b63\u5728\u4f7f\u7528\u65b0\u521b\u5efa\u7684 React Native \u6216 Expo \u5e94\u7528\uff0c\u6211\u4eec\u5efa\u8bae\u4ece\u90a3\u91cc\u5f00\u59cb\u3002","sidebar":"docs"},"out-of-tree-platforms":{"id":"out-of-tree-platforms","title":"\u591a\u5e73\u53f0\u652f\u6301","description":"React Native\u4e0d\u4ec5\u9002\u7528\u4e8e Android \u548c iOS - \u8fd8\u6709\u793e\u533a\u652f\u6301\u7684\u9879\u76ee\u5c06\u5176\u5e94\u7528\u4e8e\u5176\u4ed6\u5e73\u53f0\uff0c\u4f8b\u5982\uff1a","sidebar":"docs"},"panresponder":{"id":"panresponder","title":"PanResponder","description":"PanResponder\u7c7b\u53ef\u4ee5\u5c06\u591a\u70b9\u89e6\u6478\u64cd\u4f5c\u534f\u8c03\u6210\u4e00\u4e2a\u624b\u52bf\u3002\u5b83\u4f7f\u5f97\u4e00\u4e2a\u5355\u70b9\u89e6\u6478\u53ef\u4ee5\u63a5\u53d7\u66f4\u591a\u7684\u89e6\u6478\u64cd\u4f5c\uff0c\u4e5f\u53ef\u4ee5\u7528\u4e8e\u8bc6\u522b\u7b80\u5355\u7684\u591a\u70b9\u89e6\u6478\u624b\u52bf\u3002","sidebar":"api"},"performance":{"id":"performance","title":"\u6027\u80fd\u7efc\u8ff0","description":"\u4f7f\u7528 React Native \u66ff\u4ee3\u57fa\u4e8e WebView \u7684\u6846\u67b6\u6765\u5f00\u53d1 App \u7684\u4e00\u4e2a\u5f3a\u6709\u529b\u7684\u7406\u7531\uff0c\u5c31\u662f\u4e3a\u4e86\u4f7f App \u53ef\u4ee5\u8fbe\u5230\u6bcf\u79d2 60 \u5e27\uff08\u8db3\u591f\u6d41\u7545\uff09\uff0c\u5e76\u4e14\u80fd\u6709\u7c7b\u4f3c\u539f\u751f App \u7684\u5916\u89c2\u548c\u624b\u611f\u3002\u56e0\u6b64\u6211\u4eec\u4e5f\u5c3d\u53ef\u80fd\u5730\u4f18\u5316 React Native \u53bb\u5b9e\u73b0\u8fd9\u4e00\u76ee\u6807\uff0c\u4f7f\u5f00\u53d1\u8005\u80fd\u96c6\u4e2d\u7cbe\u529b\u5904\u7406 App \u7684\u4e1a\u52a1\u903b\u8f91\uff0c\u800c\u4e0d\u7528\u8d39\u5fc3\u8003\u8651\u6027\u80fd\u3002\u4f46\u662f\uff0c\u603b\u8fd8\u662f\u6709\u4e00\u4e9b\u5730\u65b9\u6709\u6240\u6b20\u7f3a\uff0c\u4ee5\u53ca\u5728\u67d0\u4e9b\u573a\u5408 React Native \u8fd8\u4e0d\u80fd\u591f\u66ff\u4f60\u51b3\u5b9a\u5982\u4f55\u8fdb\u884c\u4f18\u5316\uff08\u7528\u539f\u751f\u4ee3\u7801\u5199\u4e5f\u65e0\u6cd5\u907f\u514d\uff09\uff0c\u56e0\u6b64\u4eba\u5de5\u7684\u5e72\u9884\u4f9d\u7136\u662f\u5fc5\u8981\u7684\u3002","sidebar":"docs"},"permissionsandroid":{"id":"permissionsandroid","title":"PermissionsAndroid","description":"\u4ec5\u9002\u7528\u4e8e\u975e\u6c99\u76d2\u9879\u76ee","sidebar":"api"},"pixelratio":{"id":"pixelratio","title":"PixelRatio","description":"PixelRatio \u53ef\u4ee5\u83b7\u53d6\u5230\u8bbe\u5907\u7684\u50cf\u7d20\u5bc6\u5ea6\u548c\u5b57\u4f53\u7f29\u653e\u6bd4\u3002","sidebar":"api"},"platform":{"id":"platform","title":"Platform","description":"Example","sidebar":"api"},"platform-specific-code":{"id":"platform-specific-code","title":"\u7279\u5b9a\u5e73\u53f0\u4ee3\u7801","description":"\u5728\u7f16\u5199\u8de8\u5e73\u53f0\u7684\u5e94\u7528\u65f6\uff0c\u6211\u4eec\u80af\u5b9a\u5e0c\u671b\u5c3d\u53ef\u80fd\u591a\u5730\u590d\u7528\u4ee3\u7801\u3002\u4f46\u662f\u603b\u6709\u4e9b\u65f6\u5019\u6211\u4eec\u4f1a\u78b0\u5230\u9488\u5bf9\u4e0d\u540c\u5e73\u53f0\u7f16\u5199\u4e0d\u540c\u4ee3\u7801\u7684\u9700\u6c42\u3002","sidebar":"docs"},"platformcolor":{"id":"platformcolor","title":"PlatformColor","description":"You can use the PlatformColor function to access native colors on the target platform by supplying the native color\u2019s corresponding string value. You pass a string to the PlatformColor function and, provided it exists on that platform, it will return the corresponding native color, which you can apply in any part of your application.","sidebar":"api"},"pressable":{"id":"pressable","title":"Pressable","description":"Pressable \u662f\u4e00\u4e2a\u6838\u5fc3\u7ec4\u4ef6\u7684\u5c01\u88c5\uff0c\u5b83\u53ef\u4ee5\u68c0\u6d4b\u5230\u4efb\u610f\u5b50\u7ec4\u4ef6\u7684\u4e0d\u540c\u9636\u6bb5\u7684\u6309\u538b\u4ea4\u4e92\u60c5\u51b5\u3002","sidebar":"\u7ec4\u4ef6"},"pressevent":{"id":"pressevent","title":"\u70b9\u51fb\u4e8b\u4ef6\u5bf9\u8c61","description":"\u70b9\u51fb\u4e8b\u4ef6\u5bf9\u8c61\u4f5c\u4e3a\u7528\u6237\u6309\u538b\u4ea4\u4e92\u7684\u7ed3\u679c\u5728\u56de\u8c03\u4e2d\u8fd4\u56de\uff0c\u4f8b\u5982 Button \u7ec4\u4ef6\u4e2d\u7684 onPress\u3002","sidebar":"\u7ec4\u4ef6"},"profile-hermes":{"id":"profile-hermes","title":"\u5728 Hermes \u4e2d\u8fdb\u884c\u6027\u80fd\u5206\u6790","description":"\u4f60\u53ef\u4ee5\u4f7f\u7528Hermes\u5728 React Native \u5e94\u7528\u4e2d\u53ef\u89c6\u5316 JavaScript \u7684\u6027\u80fd\u3002Hermes \u662f\u4e00\u4e2a\u5c0f\u578b\u4e14\u8f7b\u91cf\u7684 JavaScript \u5f15\u64ce\uff08\u4f60\u53ef\u4ee5\u5728\u8fd9\u91cc\u9605\u8bfb\u66f4\u591a\u6709\u5173\u5728 React Native \u4e2d\u4f7f\u7528\u5b83\u7684\u4fe1\u606f\uff09\u3002Hermes \u6709\u52a9\u4e8e\u63d0\u9ad8\u5e94\u7528\u6027\u80fd\uff0c\u5e76\u4e14\u8fd8\u63d0\u4f9b\u4e86\u5206\u6790\u5176\u8fd0\u884c\u7684 JavaScript \u6027\u80fd\u7684\u65b9\u5f0f\u3002"},"profiling":{"id":"profiling","title":"Profiling","description":"\u4f7f\u7528\u5185\u7f6e\u7684\u6027\u80fd\u5206\u6790\u5668\u83b7\u53d6 JavaScript \u7ebf\u7a0b\u548c\u4e3b\u7ebf\u7a0b\u5e76\u6392\u7684\u8be6\u7ec6\u5de5\u4f5c\u4fe1\u606f\u3002\u4ece\u8c03\u8bd5\u83dc\u5355\u4e2d\u9009\u62e9 Perf Monitor \u5373\u53ef\u8bbf\u95ee\u5b83\u3002","sidebar":"docs"},"progressbarandroid":{"id":"progressbarandroid","title":"\ud83d\udea7 ProgressBarAndroid","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/progress-bar-android instead."},"progressviewios":{"id":"progressviewios","title":"\ud83d\udea7 ProgressViewIOS","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/progress-view instead."},"props":{"id":"props","title":"Props\uff08\u5c5e\u6027\uff09","description":"\u5927\u591a\u6570\u7ec4\u4ef6\u5728\u521b\u5efa\u65f6\u5c31\u53ef\u4ee5\u4f7f\u7528\u5404\u79cd\u53c2\u6570\u6765\u8fdb\u884c\u5b9a\u5236\u3002\u7528\u4e8e\u5b9a\u5236\u7684\u8fd9\u4e9b\u53c2\u6570\u5c31\u79f0\u4e3aprops\uff08\u5c5e\u6027\uff09\u3002"},"publishing-to-app-store":{"id":"publishing-to-app-store","title":"\u4e0a\u67b6 App Store","description":"\u4e0a\u67b6\u5e94\u7528\u7684\u8fc7\u7a0b\u548c\u4efb\u4f55\u5176\u5b83\u539f\u751f iOS \u5e94\u7528\u4e00\u6837\uff0c\u4f46\u6709\u4e00\u4e9b\u989d\u5916\u7684\u6ce8\u610f\u4e8b\u9879\u8981\u8003\u8651\u3002","sidebar":"docs"},"pushnotificationios":{"id":"pushnotificationios","title":"\ud83d\udea7 PushNotificationIOS","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/push-notification-ios instead."},"ram-bundles-inline-requires":{"id":"ram-bundles-inline-requires","title":"RAM Bundles \u548c\u5185\u8054\u5f15\u7528\u4f18\u5316","description":"\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u8f83\u4e3a\u5e9e\u5927\u7684\u5e94\u7528\u7a0b\u5e8f\uff0c\u4f60\u53ef\u80fd\u8981\u8003\u8651\u4f7f\u7528RAM(Random Access Modules\uff0c\u968f\u673a\u5b58\u53d6\u6a21\u5757\uff09\u683c\u5f0f\u7684 bundle \u548c\u5185\u8054\u5f15\u7528\u3002\u8fd9\u5bf9\u4e8e\u5177\u6709\u5927\u91cf\u9875\u9762\u7684\u5e94\u7528\u7a0b\u5e8f\u662f\u975e\u5e38\u6709\u7528\u7684\uff0c\u8fd9\u4e9b\u9875\u9762\u5728\u5e94\u7528\u7a0b\u5e8f\u7684\u5178\u578b\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u53ef\u80fd\u4e0d\u4f1a\u88ab\u6253\u5f00\u3002\u901a\u5e38\u5bf9\u4e8e\u542f\u52a8\u540e\u4e00\u6bb5\u65f6\u95f4\u5185\u4e0d\u9700\u8981\u5927\u91cf\u4ee3\u7801\u7684\u5e94\u7528\u7a0b\u5e8f\u6765\u8bf4\u662f\u975e\u5e38\u6709\u7528\u7684\u3002\u4f8b\u5982\u5e94\u7528\u7a0b\u5e8f\u5305\u542b\u590d\u6742\u7684\u914d\u7f6e\u6587\u4ef6\u5c4f\u5e55\u6216\u8f83\u5c11\u4f7f\u7528\u7684\u529f\u80fd\uff0c\u4f46\u5927\u591a\u6570\u4f1a\u8bdd\u53ea\u6d89\u53ca\u8bbf\u95ee\u5e94\u7528\u7a0b\u5e8f\u7684\u4e3b\u5c4f\u5e55\u66f4\u65b0\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528RAM\u683c\u5f0f\u6765\u4f18\u5316bundle\u7684\u52a0\u8f7d\uff0c\u5e76\u4e14\u5185\u8054\u5f15\u7528\u8fd9\u4e9b\u529f\u80fd\u548c\u9875\u9762\uff08\u5f53\u5b83\u4eec\u88ab\u5b9e\u9645\u4f7f\u7528\u65f6\uff09\u3002"},"react-18-and-react-native":{"id":"react-18-and-react-native","title":"React 18 \u4e0e React Native","description":"\u8fd9\u4e2a\u9875\u9762\u63cf\u8ff0\u4e86\u5982\u4f55\u5728 React Native \u7684\u65b0\u67b6\u6784\u4e2d\u542f\u7528 React 18 \u7248\u672c\u3002"},"react-native-devtools":{"id":"react-native-devtools","title":"React Native \u5f00\u53d1\u8005\u5de5\u5177","description":"React Native DevTools \u662f\u6211\u4eec\u65b0\u7684\u8c03\u8bd5\u4f53\u9a8c\uff0c\u5b83\u5bf9\u6211\u4eec\u7684\u8c03\u8bd5\u5806\u6808\u8fdb\u884c\u4e86\u7aef\u5230\u7aef\u7684\u91cd\u65b0\u7f16\u5199\u3002\u5b83\u65e8\u5728\u6bd4\u4ee5\u524d\u7684\u8c03\u8bd5\u65b9\u6cd5\u66f4\u6df1\u5165\u5730\u96c6\u6210\uff0c\u5e76\u4e14\u4ece\u6839\u672c\u4e0a\u66f4\u53ef\u9760\u3002","sidebar":"docs"},"react-native-gradle-plugin":{"id":"react-native-gradle-plugin","title":"React Native Gradle Plugin","description":"\u672c\u6307\u5357\u63cf\u8ff0\u4e86\u5982\u4f55\u914d\u7f6e React Native Gradle Plugin\uff08\u901a\u5e38\u79f0\u4e3a RNGP\uff09\u6765\u4e3a Android \u6784\u5efa React Native \u5e94\u7528\u3002","sidebar":"docs"},"react-node":{"id":"react-node","title":"React \u8282\u70b9\u5bf9\u8c61","description":"React \u8282\u70b9\u5bf9\u8c61\u6709\u4ee5\u4e0b\u8fd9\u4e9b\u7c7b\u578b\uff1a","sidebar":"\u7ec4\u4ef6"},"rect":{"id":"rect","title":"\u77e9\u5f62\u533a\u57df\u5bf9\u8c61","description":"Rect \u63a5\u53d7\u6570\u503c\u50cf\u7d20\u503c\u6765\u63cf\u8ff0\u5982\u4f55\u6269\u5c55\u77e9\u5f62\u533a\u57df\u3002\u8fd9\u4e9b\u503c\u4f1a\u88ab\u6dfb\u52a0\u5230\u539f\u59cb\u533a\u57df\u7684\u5927\u5c0f\u4e0a\u4ee5\u6269\u5c55\u5b83\u3002","sidebar":"\u7ec4\u4ef6"},"rectorsize":{"id":"rectorsize","title":"RectOrSize Object Type","description":"RectOrSize\u63a5\u53d7\u6570\u5b57\u50cf\u7d20\u503c\u6765\u63cf\u8ff0\u5982\u4f55\u6269\u5c55\u77e9\u5f62\u533a\u57df\u3002\u8fd9\u4e9b\u503c\u4f1a\u88ab\u6dfb\u52a0\u5230\u539f\u59cb\u533a\u57df\u7684\u5927\u5c0f\u4e0a\u4ee5\u6269\u5c55\u5b83\u3002"},"refreshcontrol":{"id":"refreshcontrol","title":"RefreshControl","description":"\u8fd9\u4e00\u7ec4\u4ef6\u53ef\u4ee5\u7528\u5728 ScrollView \u6216 FlatList \u5185\u90e8\uff0c\u4e3a\u5176\u6dfb\u52a0\u4e0b\u62c9\u5237\u65b0\u7684\u529f\u80fd\u3002\u5f53 ScrollView \u5904\u4e8e\u7ad6\u76f4\u65b9\u5411\u7684\u8d77\u70b9\u4f4d\u7f6e\uff08scrollY: 0\uff09\uff0c\u6b64\u65f6\u4e0b\u62c9\u4f1a\u89e6\u53d1\u4e00\u4e2aonRefresh\u4e8b\u4ef6\u3002","sidebar":"\u7ec4\u4ef6"},"removing-default-permissions":{"id":"removing-default-permissions","title":"\u79fb\u9664\u4e0d\u9700\u8981\u7684\u6743\u9650","description":"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u6211\u4eec\u4f1a\u7ed9\u6700\u7ec8\u6253\u5305\u7684 APK \u52a0\u5165\u4e00\u4e9b\u6743\u9650\u7533\u8bf7\uff0c\u5177\u4f53\u5982\u4e0b\uff1a"},"render-pipeline":{"id":"render-pipeline","title":"\u6e32\u67d3\uff0c\u63d0\u4ea4\u4e0e\u6302\u8f7d\uff08\u6e32\u67d3\u6d41\u6c34\u7ebf\uff09","description":"\u6587\u6863\u4ecb\u7ecd\u4e86\u5373\u5c06\u53d1\u5e03\u7684\u65b0\u6e32\u67d3\u5668 Fabric \u7684\u67b6\u6784\u3002"},"roottag":{"id":"roottag","title":"RootTag","description":"RootTag \u662f\u7528\u4e8e\u6807\u8bb0 React Native \u539f\u751f\u6839\u89c6\u56fe\u5c42\u7684\u4e0d\u900f\u660e\u6807\u8bc6\u7b26\uff08opaque identifier\uff09\u3002\u5177\u4f53\u6765\u8bf4\u5c31\u662f ReactRootView(android) \u6216\u662f RCTRootView(iOS) \u7684\u5b9e\u4f8b ID.","sidebar":"api"},"running-on-device":{"id":"running-on-device","title":"\u5728\u8bbe\u5907\u4e0a\u8fd0\u884c","description":"\u5728\u771f\u673a\u4e0a\u4ed4\u7ec6\u6d4b\u8bd5 app \u540e\u518d\u53d1\u5e03\u7ed9\u7528\u6237\u603b\u662f\u4e0d\u4f1a\u9519\u7684\u3002\u672c\u6587\u6863\u5c06\u6307\u5bfc\u4f60\u901a\u8fc7\u5fc5\u987b\u7684\u6b65\u9aa4\u5728\u8bbe\u5907\u4e0a\u8fd0\u884c React Native app\uff0c\u4e3a\u751f\u4ea7\u505a\u51c6\u5907\u3002","sidebar":"docs"},"running-on-simulator-ios":{"id":"running-on-simulator-ios","title":"\u5728iOS\u6a21\u62df\u5668\u4e0a\u8fd0\u884c","description":"\u542f\u52a8\u6a21\u62df\u5668","sidebar":"docs"},"safeareaview":{"id":"safeareaview","title":"SafeAreaView","description":"SafeAreaView\u7684\u76ee\u7684\u662f\u5728\u4e00\u4e2a\u201c\u5b89\u5168\u201d\u7684\u53ef\u89c6\u533a\u57df\u5185\u6e32\u67d3\u5185\u5bb9\u3002\u5177\u4f53\u6765\u8bf4\u5c31\u662f\u56e0\u4e3a\u76ee\u524d\u6709 iPhone X \u8fd9\u6837\u7684\u5e26\u6709\u201c\u5218\u6d77\u201d\u7684\u5168\u9762\u5c4f\u8bbe\u5907\uff0c\u6240\u4ee5\u9700\u8981\u907f\u514d\u5185\u5bb9\u6e32\u67d3\u5230\u4e0d\u53ef\u89c1\u7684\u201c\u5218\u6d77\u201d\u8303\u56f4\u5185\u3002\u672c\u7ec4\u4ef6\u76ee\u524d\u4ec5\u652f\u6301 iOS \u8bbe\u5907\u4ee5\u53ca iOS 11 \u6216\u66f4\u9ad8\u7248\u672c\u3002","sidebar":"\u7ec4\u4ef6"},"sample-application-movies":{"id":"sample-application-movies","title":"\u793a\u4f8b\u6559\u7a0b\uff1a\u7535\u5f71\u5217\u8868","description":"\u7b80\u4ecb"},"scrollview":{"id":"scrollview","title":"ScrollView","description":"\u4e00\u4e2a\u5c01\u88c5\u4e86\u5e73\u53f0\u7684 ScrollView\uff08\u6eda\u52a8\u89c6\u56fe\uff09\u7684\u7ec4\u4ef6\uff0c\u540c\u65f6\u8fd8\u96c6\u6210\u4e86\u89e6\u6478\u9501\u5b9a\u7684\u201c\u54cd\u5e94\u8005\u201d\u7cfb\u7edf\u3002","sidebar":"\u7ec4\u4ef6"},"sectionlist":{"id":"sectionlist","title":"SectionList","description":"\u9ad8\u6027\u80fd\u7684\u5206\u7ec4(section)\u5217\u8868\u7ec4\u4ef6\uff0c\u652f\u6301\u4e0b\u9762\u8fd9\u4e9b\u5e38\u7528\u7684\u529f\u80fd\uff1a","sidebar":"\u7ec4\u4ef6"},"security":{"id":"security","title":"\u7f51\u7edc\u5b89\u5168\u7b56\u7565","description":"\u5f00\u53d1\u5e94\u7528\u65f6\u5b89\u5168\u5e38\u5e38\u662f\u4e00\u4e2a\u88ab\u5ffd\u89c6\u7684\u8bdd\u9898\u3002\u7684\u786e\uff0c\u642d\u5efa\u4e00\u4e2a\u5b8c\u5168\u65e0\u61c8\u53ef\u51fb\u7684\u8f6f\u4ef6\u662f\u4e0d\u53ef\u80fd\u7684\u2014\u2014\u6211\u4eec\u8fd8\u6ca1\u6709\u53d1\u660e\u4e00\u4e2a\u5b8c\u5168\u575a\u4e0d\u53ef\u6467\u7684\u9501\uff08\u6bd5\u7adf\uff0c\u94f6\u884c\u91d1\u5e93\u5df2\u7ecf\u8db3\u591f\u575a\u56fa\u4f46\u4ecd\u7136\u4f1a\u88ab\u95ef\u5165\uff09\u3002\u7136\u800c\uff0c\u906d\u53d7\u6076\u610f\u653b\u51fb\u6216\u66b4\u9732\u5b89\u5168\u6f0f\u6d1e\u7684\u53ef\u80fd\u6027\u4e0e\u60a8\u613f\u610f\u6295\u5165\u4fdd\u62a4\u5e94\u7528\u7a0b\u5e8f\u514d\u53d7\u6b64\u7c7b\u4e8b\u4ef6\u7684\u52aa\u529b\u6210\u53cd\u6bd4\u3002\u5c3d\u7ba1\u666e\u901a\u7684\u6302\u9501\u53ef\u4ee5\u88ab\u64ac\u5f00\uff0c\u4f46\u5b83\u4ecd\u7136\u6bd4\u6a71\u67dc\u6302\u94a9\u66f4\u96be\u653b\u7834\uff01","sidebar":"docs"},"segmentedcontrolios":{"id":"segmentedcontrolios","title":"\ud83d\udea7 SegmentedControlIOS","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/segmented-control instead."},"settings":{"id":"settings","title":"Settings","description":"Settings\u662f\u5bf9NSUserDefaults\u7684\u5c01\u88c5\u3002\u5b83\u662fiOS\u5e73\u53f0\u4e0a\u7684\u4e00\u79cd\u6301\u4e45\u7684\u952e\u503c\u5bf9\u5b58\u50a8\u3002","sidebar":"api"},"shadow-props":{"id":"shadow-props","title":"\u9634\u5f71\u6837\u5f0f\u5c5e\u6027","description":"These properties are iOS only - for similar functionality on Android, use the elevation property.","sidebar":"\u7ec4\u4ef6"},"share":{"id":"share","title":"Share","description":"\u793a\u4f8b","sidebar":"api"},"signed-apk-android":{"id":"signed-apk-android","title":"\u6253\u5305\u53d1\u5e03","description":"Android \u8981\u6c42\u6240\u6709\u5e94\u7528\u90fd\u6709\u4e00\u4e2a\u6570\u5b57\u7b7e\u540d\u624d\u4f1a\u88ab\u5141\u8bb8\u5b89\u88c5\u5728\u7528\u6237\u624b\u673a\u4e0a\uff0c\u6240\u4ee5\u5728\u628a\u5e94\u7528\u53d1\u5e03\u5230\u5e94\u7528\u5e02\u573a\u4e4b\u524d\uff0c\u4f60\u9700\u8981\u5148\u751f\u6210\u4e00\u4e2a\u7b7e\u540d\u7684 AAB \u6216 APK \u5305\uff08Google Play \u73b0\u5728\u8981\u6c42 AAB \u683c\u5f0f\uff0c\u800c\u56fd\u5185\u7684\u5e94\u7528\u5e02\u573a\u76ee\u524d\u4ec5\u652f\u6301 APK \u683c\u5f0f\u3002\u4f46\u65e0\u8bba\u54ea\u79cd\u683c\u5f0f\uff0c\u4e0b\u9762\u7684\u7b7e\u540d\u6b65\u9aa4\u662f\u4e00\u6837\u7684\uff09\u3002Android \u5f00\u53d1\u8005\u5b98\u7f51\u4e0a\u7684\u5982\u4f55\u7ed9\u4f60\u7684\u5e94\u7528\u7b7e\u540d\u6587\u6863\u63cf\u8ff0\u4e86\u7b7e\u540d\u7684\u7ec6\u8282\u3002\u672c\u6307\u5357\u65e8\u5728\u63d0\u4f9b\u4e00\u4e2a\u7b80\u5316\u7684\u7b7e\u540d\u548c\u6253\u5305\u7684\u64cd\u4f5c\u6b65\u9aa4\uff0c\u4e0d\u4f1a\u6d89\u53ca\u592a\u591a\u7406\u8bba\u3002","sidebar":"docs"},"slider":{"id":"slider","title":"\ud83d\udea7 Slider","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/slider instead."},"speeding-ci-builds":{"id":"speeding-ci-builds","title":"\u4f18\u5316 CI \u6784\u5efa","description":"You or your company may have set up a Continuous Integration (CI) environment to test your React Native application."},"state":{"id":"state","title":"State\uff08\u72b6\u6001\uff09","description":"\u6211\u4eec\u4f7f\u7528\u4e24\u79cd\u6570\u636e\u6765\u63a7\u5236\u4e00\u4e2a\u7ec4\u4ef6\uff1aprops\u548cstate\u3002props\u662f\u5728\u7236\u7ec4\u4ef6\u4e2d\u6307\u5b9a\uff0c\u800c\u4e14\u4e00\u7ecf\u6307\u5b9a\uff0c\u5728\u88ab\u6307\u5b9a\u7684\u7ec4\u4ef6\u7684\u751f\u547d\u5468\u671f\u4e2d\u5219\u4e0d\u518d\u6539\u53d8\u3002\u5bf9\u4e8e\u9700\u8981\u6539\u53d8\u7684\u6570\u636e\uff0c\u6211\u4eec\u9700\u8981\u4f7f\u7528state\u3002"},"statusbar":{"id":"statusbar","title":"StatusBar","description":"\u63a7\u5236\u5e94\u7528\u72b6\u6001\u680f\u7684\u7ec4\u4ef6\u3002","sidebar":"\u7ec4\u4ef6"},"style":{"id":"style","title":"\u6837\u5f0f","description":"\u5728 React Native \u4e2d\uff0c\u4f60\u5e76\u4e0d\u9700\u8981\u5b66\u4e60\u4ec0\u4e48\u7279\u6b8a\u7684\u8bed\u6cd5\u6765\u5b9a\u4e49\u6837\u5f0f\u3002\u6211\u4eec\u4ecd\u7136\u662f\u4f7f\u7528 JavaScript \u6765\u5199\u6837\u5f0f\u3002\u6240\u6709\u7684\u6838\u5fc3\u7ec4\u4ef6\u90fd\u63a5\u53d7\u540d\u4e3astyle\u7684\u5c5e\u6027\u3002\u8fd9\u4e9b\u6837\u5f0f\u540d\u57fa\u672c\u4e0a\u662f\u9075\u5faa\u4e86 web \u4e0a\u7684 CSS \u7684\u547d\u540d\uff0c\u53ea\u662f\u6309\u7167 JS \u7684\u8bed\u6cd5\u8981\u6c42\u4f7f\u7528\u4e86\u9a7c\u5cf0\u547d\u540d\u6cd5\uff0c\u4f8b\u5982\u5c06background-color\u6539\u4e3abackgroundColor\u3002","sidebar":"docs"},"stylesheet":{"id":"stylesheet","title":"StyleSheet","description":"StyleSheet \u63d0\u4f9b\u4e86\u4e00\u79cd\u7c7b\u4f3c CSS \u6837\u5f0f\u8868\u7684\u62bd\u8c61\u3002","sidebar":"api"},"switch":{"id":"switch","title":"Switch","description":"\u8de8\u5e73\u53f0\u901a\u7528\u7684\u201c\u5f00\u5173\u201d\u7ec4\u4ef6\u3002","sidebar":"\u7ec4\u4ef6"},"symbolication":{"id":"symbolication","title":"Symbolicating a stack trace","description":"If a React Native app throws an unhandled exception in a release build, the output may be obfuscated and hard to read:"},"systrace":{"id":"systrace","title":"Systrace","description":"Systrace is a standard Android marker-based profiling tool (and is installed when you install the Android platform-tools package). Profiled code blocks are surrounded by start/end markers which are then visualized in a colorful chart format. Both the Android SDK and React Native framework provide standard markers that you can visualize.","sidebar":"api"},"testing-overview":{"id":"testing-overview","title":"Testing","description":"This guide introduces React Native developers to the key concepts behind testing, how to write good tests, and what kinds of tests you can incorporate into your workflow.","sidebar":"docs"},"text":{"id":"text","title":"Text","description":"\u4e00\u4e2a\u7528\u4e8e\u663e\u793a\u6587\u672c\u7684 React \u7ec4\u4ef6\uff0c\u5e76\u4e14\u5b83\u4e5f\u652f\u6301\u5d4c\u5957\u3001\u6837\u5f0f\uff0c\u4ee5\u53ca\u89e6\u6478\u5904\u7406\u3002","sidebar":"\u7ec4\u4ef6"},"text-style-props":{"id":"text-style-props","title":"Text \u6837\u5f0f\u5c5e\u6027","description":"\u793a\u4f8b","sidebar":"\u7ec4\u4ef6"},"textinput":{"id":"textinput","title":"TextInput","description":"TextInput \u662f\u4e00\u4e2a\u5141\u8bb8\u7528\u6237\u5728\u5e94\u7528\u4e2d\u901a\u8fc7\u952e\u76d8\u8f93\u5165\u6587\u672c\u7684\u57fa\u672c\u7ec4\u4ef6\u3002\u672c\u7ec4\u4ef6\u7684\u5c5e\u6027\u63d0\u4f9b\u4e86\u591a\u79cd\u7279\u6027\u7684\u914d\u7f6e\uff0c\u8b6c\u5982\u81ea\u52a8\u5b8c\u6210\u3001\u81ea\u52a8\u5927\u5c0f\u5199\u3001\u5360\u4f4d\u6587\u5b57\uff0c\u4ee5\u53ca\u591a\u79cd\u4e0d\u540c\u7684\u952e\u76d8\u7c7b\u578b\uff08\u5982\u7eaf\u6570\u5b57\u952e\u76d8\uff09\u7b49\u7b49\u3002","sidebar":"\u7ec4\u4ef6"},"the-new-architecture/backward-compatibility":{"id":"the-new-architecture/backward-compatibility","title":"\u5411\u540e\u517c\u5bb9\u7684\u610f\u4e49","description":"\u521b\u5efa\u4e00\u4e2a\u5411\u540e\u517c\u5bb9\u7684\u6a21\u5757\u5f88\u91cd\u8981\uff0c\u8fd9\u6837\u53ef\u4ee5\u5b9e\u73b0\u5728\u65e7\u67b6\u6784\u548c\u65b0\u67b6\u6784\u4e2d\u90fd\u80fd\u5de5\u4f5c\u7684\u5e93\u3002\u5e76\u4e0d\u662f\u6240\u6709\u7528\u6237\u90fd\u4f1a\u7acb\u523b\u8f6c\u5230\u65b0\u67b6\u6784\uff0c\u6700\u597d\u5728\u4ed6\u4eec\u4f7f\u7528\u65e7\u67b6\u6784\u65f6\u4ecd\u7136\u4fdd\u6301\u517c\u5bb9\u3002"},"the-new-architecture/backward-compatibility-fabric-components":{"id":"the-new-architecture/backward-compatibility-fabric-components","title":"\u4f7f Fabric \u7ec4\u4ef6\u4e0e\u4f20\u7edf\u539f\u751f\u7ec4\u4ef6\u517c\u5bb9","description":"\u521b\u5efa\u5411\u540e\u517c\u5bb9\u7684 Fabric \u539f\u751f\u7ec4\u4ef6\u9700\u8981\u4e86\u89e3\u5982\u4f55\u521b\u5efa\u4f20\u7edf\u7684\u539f\u751f\u7ec4\u4ef6\u3002\u8981\u56de\u5fc6\u8fd9\u4e9b\u6982\u5ff5\uff0c\u8bf7\u67e5\u770b\u6b64\u6307\u5357\u3002"},"the-new-architecture/backward-compatibility-turbomodules":{"id":"the-new-architecture/backward-compatibility-turbomodules","title":"\u4f7f Turbo \u6a21\u5757\u4e0e\u4f20\u7edf\u539f\u751f\u6a21\u5757\u517c\u5bb9","description":"\u521b\u5efa\u5411\u540e\u517c\u5bb9\u7684 Turbo \u539f\u751f\u6a21\u5757\u9700\u8981\u4e86\u89e3\u5982\u4f55\u521b\u5efa\u4f20\u7edf\u7684\u539f\u751f\u6a21\u5757\u3002\u8981\u56de\u5fc6\u8fd9\u4e9b\u6982\u5ff5\uff0c\u8bf7\u67e5\u770b\u6b64\u6307\u5357\u3002"},"the-new-architecture/codegen-cli":{"id":"the-new-architecture/codegen-cli","title":"Codegen \u547d\u4ee4\u884c\u5de5\u5177","description":"\u8c03\u7528 Gradle \u6216\u624b\u52a8\u8c03\u7528\u811a\u672c\u53ef\u80fd\u5f88\u96be\u8bb0\u4f4f\uff0c\u5e76\u4e14\u9700\u8981\u5f88\u591a\u6b65\u9aa4\u3002","sidebar":"docs"},"the-new-architecture/create-module-library":{"id":"the-new-architecture/create-module-library","title":"\u521b\u5efa\u6a21\u5757\u5e93","description":"React Native \u6709\u4e00\u4e2a\u4e30\u5bcc\u7684\u751f\u6001\u7cfb\u7edf\u5e93\u6765\u89e3\u51b3\u5e38\u89c1\u95ee\u9898\u3002\u6211\u4eec\u5728 reactnative.directory \u7f51\u7ad9\u4e0a\u6536\u96c6 React Native \u5e93\uff0c\u8fd9\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u8d44\u6e90\uff0c\u503c\u5f97\u6bcf\u4e2a React Native \u5f00\u53d1\u8005\u6536\u85cf\u3002","sidebar":"docs"},"the-new-architecture/custom-cxx-types":{"id":"the-new-architecture/custom-cxx-types","title":"\u9ad8\u7ea7\uff1a\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b","description":"\u672c\u6307\u5357\u5047\u8bbe\u4f60\u719f\u6089 \u7eaf C++ Turbo Native \u6a21\u5757 \u6307\u5357\u3002\u5b83\u5c06\u5728\u6b64\u57fa\u7840\u4e0a\u8fdb\u884c\u6784\u5efa\u3002","sidebar":"docs"},"the-new-architecture/cxx-custom-types":{"id":"the-new-architecture/cxx-custom-types","title":"\u652f\u6301\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b","description":"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cC++ Turbo Native \u6a21\u5757\u652f\u6301\u5927\u591a\u6570 std:: \u6807\u51c6\u7c7b\u578b\u7684\u6865\u63a5\u529f\u80fd\u3002"},"the-new-architecture/cxx-cxxturbomodules":{"id":"the-new-architecture/cxx-cxxturbomodules","title":"C++ Turbo \u539f\u751f\u6a21\u5757","description":"\u672c\u6307\u5357\u5c06\u5411\u60a8\u5c55\u793a\u5982\u4f55\u4ec5\u4f7f\u7528 C++ \u5b9e\u73b0 Turbo \u539f\u751f\u6a21\u5757\uff0c\u4ee5\u4fbf\u4e0e\u4efb\u4f55\u652f\u6301\u7684\u5e73\u53f0\uff08Android\u3001iOS\u3001macOS \u6216 Windows\uff09\u5171\u4eab\u76f8\u540c\u7684\u5b9e\u73b0\u3002"},"the-new-architecture/landing-page":{"id":"the-new-architecture/landing-page","title":"\u65b0\u67b6\u6784\u4ecb\u7ecd","description":"\u4ece 0.68 \u7248\u672c\u5f00\u59cb\uff0cReact Native \u63d0\u4f9b\u4e86\u65b0\u67b6\u6784\uff0c\u5b83\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u4e86\u6784\u5efa\u9ad8\u6027\u80fd\u548c\u54cd\u5e94\u5f0f\u5e94\u7528\u7684\u65b0\u529f\u80fd\u3002\u8bf7\u8bbf\u95ee\\"\u4e3a\u4f55\u8981\u8bbe\u8ba1\u65b0\u67b6\u6784\\"\u6765\u4e86\u89e3\u66f4\u591a\u5173\u4e8e\u4fc3\u4f7f\u6211\u4eec\u51b3\u5b9a\u91cd\u65b0\u67b6\u6784\u7684\u539f\u56e0\uff0c\u4ee5\u53ca\u5b83\u63d0\u4f9b\u7684\u597d\u5904\u3002"},"the-new-architecture/pillars":{"id":"the-new-architecture/pillars","title":"\u65b0\u67b6\u6784\u7684\u4e24\u5927\u652f\u67f1","description":"\u65b0\u67b6\u6784\u4e3b\u8981\u7531\u4e24\u5927\u652f\u67f1\u7ec4\u6210\uff1a"},"the-new-architecture/pillars-codegen":{"id":"the-new-architecture/pillars-codegen","title":"Codegen","description":"Codegen \u4e0d\u7b97\u662f\u65b0\u67b6\u6784\u7684\u4e3b\u8981\u7ec4\u6210\u90e8\u5206\uff0c\u5b83\u662f\u4e00\u4e2a\u5e2e\u52a9\u6211\u4eec\u907f\u514d\u7f16\u5199\u91cd\u590d\u4ee3\u7801\u7684\u5de5\u5177\u3002Codegen \u5e76\u975e\u5fc5\u9009\u9879\uff0c\u60a8\u4ecd\u7136\u53ef\u4ee5\u624b\u5199\u5b83\u6240\u751f\u6210\u7684\u4ee3\u7801\uff0c\u4f46\u662f\u4f7f\u7528\u5b83\u6765\u751f\u6210\u811a\u624b\u67b6\u4ee3\u7801\u53ef\u4ee5\u5e2e\u60a8\u8282\u7701\u4e0d\u5c11\u65f6\u95f4\u3002"},"the-new-architecture/pillars-fabric-components":{"id":"the-new-architecture/pillars-fabric-components","title":"Fabric \u7ec4\u4ef6","description":"Fabric \u7ec4\u4ef6\u662f\u4e00\u79cd\u4f7f\u7528 Fabric \u6e32\u67d3\u5668\u6e32\u67d3\u5e76\u5c55\u793a\u5728\u5c4f\u5e55\u4e0a\u7684 UI \u7ec4\u4ef6\u3002\u5728\u65b0\u67b6\u6784\u4e2d\uff0c\u4f7f\u7528 Fabric \u7ec4\u4ef6\u66ff\u4ee3\u539f\u751f\u7ec4\u4ef6\u5177\u6709\u4ee5\u4e0b\u4f18\u52bf\uff1a"},"the-new-architecture/pillars-turbomodules":{"id":"the-new-architecture/pillars-turbomodules","title":"TurboModules","description":"\u5982\u679c\u60a8\u4f7f\u7528\u8fc7 React Native\uff0c\u60a8\u53ef\u80fd\u4e86\u89e3\u8fc7 Native Modules \u8fd9\u4e2a\u6982\u5ff5\u3002\u5b83\u53ef\u4ee5\u901a\u8fc7 React Native \u7684\u300cBridge\u300d\u5e2e\u52a9 JavaScript \u548c\u539f\u751f\u4ee3\u7801\u8fdb\u884c\u4ea4\u4e92\uff0c\u5e76\u4f7f\u7528\u8de8\u5e73\u53f0\u7684\u6570\u636e\u683c\u5f0f JSON \u8fdb\u884c\u901a\u8baf\u3002"},"the-new-architecture/pure-cxx-modules":{"id":"the-new-architecture/pure-cxx-modules","title":"\u4f7f\u7528 C++ \u5b9e\u73b0\u8de8\u5e73\u53f0\u7684\u539f\u751f\u6a21\u5757","description":"\u7f16\u5199 C++ \u6a21\u5757\u662f\u8de8 Android \u548c iOS \u5171\u4eab\u5e73\u53f0\u65e0\u5173\u4ee3\u7801\u7684\u6700\u4f73\u65b9\u5f0f\u3002\u4f7f\u7528\u7eaf C++ \u6a21\u5757\uff0c\u60a8\u53ea\u9700\u7f16\u5199\u4e00\u6b21\u903b\u8f91\uff0c\u5373\u53ef\u5728\u6240\u6709\u5e73\u53f0\u4e0a\u91cd\u7528\u5b83\uff0c\u800c\u65e0\u9700\u7f16\u5199\u5e73\u53f0\u7279\u5b9a\u7684\u4ee3\u7801\u3002","sidebar":"docs"},"the-new-architecture/use-app-template":{"id":"the-new-architecture/use-app-template","title":"\u521b\u5efa\u542f\u7528\u65b0\u67b6\u6784\u7684\u5e94\u7528","description":"\u672c\u6587\u6863\u5c06\u5e2e\u52a9\u4f60\u4ece\u5934\u521b\u5efa\u4e00\u4e2a\u542f\u7528\u4e86\u65b0\u67b6\u6784\u7684 React Native \u5e94\u7528\u3002"},"the-new-architecture/using-codegen":{"id":"the-new-architecture/using-codegen","title":"\u4f7f\u7528 Codegen","description":"\u672c\u6307\u5357\u5c06\u6559\u4f60\u5982\u4f55\uff1a","sidebar":"docs"},"the-new-architecture/what-is-codegen":{"id":"the-new-architecture/what-is-codegen","title":"\u4ec0\u4e48\u662f Codegen\uff1f","description":"Codegen \u662f\u4e00\u4e2a\u907f\u514d\u7f16\u5199\u5927\u91cf\u91cd\u590d\u4ee3\u7801\u7684\u5de5\u5177\u3002\u4f7f\u7528 Codegen \u5e76\u4e0d\u662f\u5fc5\u987b\u7684\uff1a\u60a8\u53ef\u4ee5\u624b\u52a8\u7f16\u5199\u6240\u6709\u751f\u6210\u7684\u4ee3\u7801\u3002\u7136\u800c\uff0cCodegen \u751f\u6210\u7684\u811a\u624b\u67b6\u4ee3\u7801\u53ef\u4ee5\u8282\u7701\u60a8\u5f88\u591a\u65f6\u95f4\u3002","sidebar":"docs"},"the-new-architecture/why":{"id":"the-new-architecture/why","title":"\u4e3a\u4f55\u8981\u8bbe\u8ba1\u65b0\u67b6\u6784","description":"\u65b0\u67b6\u6784\u7684\u76ee\u6807\u662f\u89e3\u51b3\u56f0\u6270\u65e7\u67b6\u6784\u5728\u6027\u80fd\u548c\u7075\u6d3b\u6027\u65b9\u9762\u7684\u4e00\u4e9b\u95ee\u9898\u3002\u672c\u8282\u63d0\u4f9b\u4e86\u57fa\u672c\u7684\u80cc\u666f\uff0c\u4ee5\u4e86\u89e3\u65e7\u67b6\u6784\u7684\u5c40\u9650\u6027\uff0c\u4ee5\u53ca\u5982\u4f55\u901a\u8fc7\u65b0\u67b6\u6784\u6765\u514b\u670d\u8fd9\u4e9b\u5c40\u9650\u6027\u3002"},"threading-model":{"id":"threading-model","title":"\u7ebf\u7a0b\u6a21\u578b","description":"\u6587\u6863\u4ecb\u7ecd\u4e86\u5373\u5c06\u53d1\u5e03\u7684\u65b0\u6e32\u67d3\u5668 Fabric \u7684\u67b6\u6784\u3002"},"timepickerandroid":{"id":"timepickerandroid","title":"\ud83d\udea7 TimePickerAndroid","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/datetimepicker instead."},"timers":{"id":"timers","title":"\u5b9a\u65f6\u5668","description":"\u5b9a\u65f6\u5668\u662f\u4e00\u4e2a\u5e94\u7528\u4e2d\u975e\u5e38\u91cd\u8981\u7684\u90e8\u5206\u3002React Native \u5b9e\u73b0\u4e86\u548c\u6d4f\u89c8\u5668\u4e00\u81f4\u7684\u5b9a\u65f6\u5668 Timer\u3002","sidebar":"docs"},"toastandroid":{"id":"toastandroid","title":"ToastAndroid","description":"\u672c\u6a21\u5757\u5c06\u539f\u751f\u7684 ToastAndroid \u6a21\u5757\u5bfc\u51fa\u4e3a\u4e00\u4e2a JS \u6a21\u5757\uff0c\u7528\u4e8e\u5728 Android \u8bbe\u5907\u4e0a\u663e\u793a\u4e00\u4e2a\u60ac\u6d6e\u7684\u63d0\u793a\u4fe1\u606f\u3002\u672c\u6a21\u5757\u5305\u542b\u4e00\u4e2ashow\u65b9\u6cd5\u63a5\u53d7\u4ee5\u4e0b\u7684\u53c2\u6570\uff1a","sidebar":"api"},"touchablehighlight":{"id":"touchablehighlight","title":"TouchableHighlight","description":"\u6211\u4eec\u5efa\u8bae\u4f7f\u7528Pressable\u7ec4\u4ef6\uff0c\u5b83\u66f4\u5177\u6269\u5c55\u6027\u4e14\u4f1a\u662f\u5b98\u65b9\u672a\u6765\u529b\u63a8\u7684\u4e3b\u6d41\u3002","sidebar":"\u7ec4\u4ef6"},"touchablenativefeedback":{"id":"touchablenativefeedback","title":"TouchableNativeFeedback","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"\u7ec4\u4ef6"},"touchableopacity":{"id":"touchableopacity","title":"TouchableOpacity","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"\u7ec4\u4ef6"},"touchablewithoutfeedback":{"id":"touchablewithoutfeedback","title":"TouchableWithoutFeedback","description":"If you\'re looking for a more extensive and future-proof way to handle touch-based input, check out the Pressable API.","sidebar":"\u7ec4\u4ef6"},"transforms":{"id":"transforms","title":"\u53d8\u6362\uff08Transform\uff09","description":"\u53d8\u6362\uff08Transform\uff09\u662f\u6837\u5f0f\u5c5e\u6027\uff0c\u53ef\u5e2e\u52a9\u60a8\u4f7f\u7528 2D \u6216 3D \u53d8\u6362\u4fee\u6539\u7ec4\u4ef6\u7684\u5916\u89c2\u548c\u4f4d\u7f6e\u3002\u7136\u800c\uff0c\u5373\u4fbf\u4f7f\u7528\u4e86\u53d8\u6362\uff0c\u4f7f\u7528\u53d8\u6362\u7684\u7ec4\u4ef6\u7684\u5e03\u5c40\u5e76\u4e0d\u4f1a\u53d8\u5316\uff0c\u56e0\u6b64\u53ef\u80fd\u4f1a\u4e0e\u9644\u8fd1\u7684\u7ec4\u4ef6\u91cd\u53e0\u3002\u60a8\u53ef\u4ee5\u5bf9\u53d8\u6362\u7684\u7ec4\u4ef6\u3001\u9644\u8fd1\u7684\u7ec4\u4ef6\u5e94\u7528\u8fb9\u8ddd\uff0c\u6216\u5bf9\u5bb9\u5668\u5e94\u7528\u586b\u5145\uff0c\u4ee5\u9632\u6b62\u8fd9\u79cd\u91cd\u53e0\u3002","sidebar":"api"},"troubleshooting":{"id":"troubleshooting","title":"Troubleshooting","description":"These are some common issues you may run into while setting up React Native. If you encounter something that is not listed here, try searching for the issue in GitHub."},"turbo-native-modules-android":{"id":"turbo-native-modules-android","title":"Turbo \u539f\u751f\u6a21\u5757\uff1aAndroid","description":"\u73b0\u5728\u6211\u4eec\u6765\u7f16\u5199\u4e00\u4e9b Android \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u786e\u4fdd localStorage \u5728\u5e94\u7528\u5173\u95ed\u540e\u4ecd\u7136\u53ef\u4ee5\u6301\u4e45\u4fdd\u5b58\u6570\u636e\u3002"},"turbo-native-modules-introduction":{"id":"turbo-native-modules-introduction","title":"Turbo \u539f\u751f\u6a21\u5757\u4ecb\u7ecd","description":"\u4f60\u7684 React Native \u5e94\u7528\u4ee3\u7801\u53ef\u80fd\u9700\u8981\u4e0e React Native \u6216\u73b0\u6709\u5e93\u672a\u63d0\u4f9b\u7684\u539f\u751f\u5e73\u53f0 API \u8fdb\u884c\u4ea4\u4e92\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528 Turbo \u539f\u751f\u6a21\u5757 \u81ea\u5df1\u7f16\u5199\u96c6\u6210\u4ee3\u7801\u3002\u672c\u6307\u5357\u5c06\u5411\u4f60\u5c55\u793a\u5982\u4f55\u7f16\u5199\u4e00\u4e2a\u3002","sidebar":"docs"},"turbo-native-modules-ios":{"id":"turbo-native-modules-ios","title":"Turbo \u539f\u751f\u6a21\u5757\uff1aiOS","description":"\u73b0\u5728\u6211\u4eec\u6765\u7f16\u5199\u4e00\u4e9b iOS \u5e73\u53f0\u4ee3\u7801\uff0c\u4ee5\u786e\u4fdd localStorage \u5728\u5e94\u7528\u5173\u95ed\u540e\u4ecd\u7136\u53ef\u4ee5\u6301\u4e45\u4fdd\u5b58\u6570\u636e\u3002"},"tutorial":{"id":"tutorial","title":"\u793a\u4f8b\u6559\u7a0b\uff1aHello World","description":"React Native \u770b\u8d77\u6765\u5f88\u50cf React\uff0c\u53ea\u4e0d\u8fc7\u5176\u57fa\u7840\u7ec4\u4ef6\u662f\u539f\u751f\u7ec4\u4ef6\u800c\u975e web \u7ec4\u4ef6\u3002\u8981\u7406\u89e3 React Native \u5e94\u7528\u7684\u57fa\u672c\u7ed3\u6784\uff0c\u9996\u5148\u9700\u8981\u4e86\u89e3\u4e00\u4e9b\u57fa\u672c\u7684 React \u7684\u6982\u5ff5\uff0c\u6bd4\u5982 JSX \u8bed\u6cd5\u3001\u7ec4\u4ef6\u3001state\u72b6\u6001\u4ee5\u53caprops\u5c5e\u6027\u3002\u5982\u679c\u4f60\u5df2\u7ecf\u4e86\u89e3\u4e86 React\uff0c\u90a3\u4e48\u8fd8\u9700\u8981\u638c\u63e1\u4e00\u4e9b React Native \u7279\u6709\u7684\u77e5\u8bc6\uff0c\u6bd4\u5982\u539f\u751f\u7ec4\u4ef6\u7684\u4f7f\u7528\u3002\u8fd9\u7bc7\u6559\u7a0b\u53ef\u4ee5\u4f9b\u4efb\u4f55\u57fa\u7840\u7684\u8bfb\u8005\u5b66\u4e60\uff0c\u4e0d\u7ba1\u4f60\u662f\u5426\u6709 React \u65b9\u9762\u7684\u7ecf\u9a8c\u3002"},"typescript":{"id":"typescript","title":"\u4f7f\u7528 TypeScript","description":"TypeScript \u662f\u4e00\u79cd\u901a\u8fc7\u6dfb\u52a0\u7c7b\u578b\u5b9a\u4e49\u6765\u6269\u5c55 JavaScript \u7684\u8bed\u8a00\u3002\u65b0\u7684 React Native \u9879\u76ee\u9ed8\u8ba4\u4ee5 TypeScript \u4e3a\u76ee\u6807\uff0c\u540c\u65f6\u4e5f\u652f\u6301 JavaScript \u548c Flow\u3002","sidebar":"docs"},"upgrading":{"id":"upgrading","title":"\u66f4\u65b0","description":"\u65f6\u523b\u5c06 React Native \u66f4\u65b0\u5230\u6700\u65b0\u7684\u7248\u672c\uff0c\u53ef\u4ee5\u83b7\u5f97\u66f4\u591a API\u3001\u89c6\u56fe\u3001\u5f00\u53d1\u8005\u5de5\u5177\u4ee5\u53ca\u5176\u4ed6\u4e00\u4e9b\u597d\u4e1c\u897f\uff08\u8bd1\u6ce8\uff1a\u5b98\u65b9\u5f00\u53d1\u4efb\u52a1\u7e41\u91cd\uff0c\u4eba\u624b\u7d27\u7f3a\uff0c\u51e0\u4e4e\u4e0d\u4f1a\u5bf9\u65e7\u7248\u672c\u63d0\u4f9b\u7ef4\u62a4\u652f\u6301\uff0c\u6240\u4ee5\u5373\u4fbf\u66f4\u65b0\u53ef\u80fd\u5e26\u6765\u4e00\u4e9b\u517c\u5bb9\u4e0a\u7684\u53d8\u66f4\uff0c\u4f46\u5efa\u8bae\u5f00\u53d1\u8005\u8fd8\u662f\u5c3d\u4e00\u5207\u53ef\u80fd\u7b2c\u4e00\u65f6\u95f4\u66f4\u65b0\uff09\u3002\u7531\u4e8e\u4e00\u4e2a\u5b8c\u6574\u7684 React Native \u9879\u76ee\u662f\u7531 Android \u9879\u76ee\u3001iOS \u9879\u76ee\u548c JavaScript \u9879\u76ee\u7ec4\u6210\u7684\uff0c\u4e14\u90fd\u6253\u5305\u5728\u4e00\u4e2a npm \u5305\u4e2d\uff0c\u6240\u4ee5\u5347\u7ea7\u53ef\u80fd\u4f1a\u6709\u4e00\u4e9b\u9ebb\u70e6\u3002\u6211\u4eec\u4f1a\u5c3d\u91cf\u7b80\u5316\u8fd9\u4e00\u6d41\u7a0b\u3002\u4f60\u53ef\u4ee5\u5728\u9879\u76ee\u76ee\u5f55\u4e0b\u4f7f\u7528npx react-native info\u547d\u4ee4\u67e5\u770b\u5f53\u524d\u7684\u7248\u672c\u3002","sidebar":"docs"},"usecolorscheme":{"id":"usecolorscheme","title":"useColorScheme","description":"useColorScheme \u8fd9\u4e2aReact hook \u63d0\u4f9b\u5e76\u8ba2\u9605\u6765\u81eaAppearance\u6a21\u5757\u7684\u989c\u8272\u65b9\u6848\u66f4\u65b0\u3002\u8fd4\u56de\u503c\u8868\u793a\u5f53\u524d\u7528\u6237\u9996\u9009\u7684\u989c\u8272\u65b9\u6848\u3002\u8be5\u503c\u53ef\u4ee5\u7a0d\u540e\u901a\u8fc7\u76f4\u63a5\u7528\u6237\u52a8\u4f5c\uff08\u4f8b\u5982\uff0c\u8bbe\u5907\u8bbe\u7f6e\u4e2d\u7684\u4e3b\u9898\u9009\u62e9\uff09\u6216\u6839\u636e\u65f6\u95f4\u8868\uff08\u4f8b\u5982\uff0c\u9075\u5faa\u767d\u5929/\u591c\u665a\u5468\u671f\u7684\u4eae\u4e3b\u9898\u548c\u6697\u4e3b\u9898\uff09\u6765\u66f4\u65b0\u3002","sidebar":"api"},"usewindowdimensions":{"id":"usewindowdimensions","title":"useWindowDimensions","description":"useWindowDimensions\u4f1a\u5728\u5c4f\u5e55\u5c3a\u5bf8\u53d8\u5316\u65f6\u81ea\u52a8\u66f4\u65b0\u83b7\u53d6\u5230\u7684\u8bbe\u5907width\u548cheight\u503c\u3002\u4f7f\u7528\u65b9\u6cd5\u5982\u4e0b\uff1a","sidebar":"api"},"using-a-listview":{"id":"using-a-listview","title":"\u4f7f\u7528\u957f\u5217\u8868","description":"React Native \u63d0\u4f9b\u4e86\u51e0\u4e2a\u9002\u7528\u4e8e\u5c55\u793a\u957f\u5217\u8868\u6570\u636e\u7684\u7ec4\u4ef6\uff0c\u4e00\u822c\u800c\u8a00\u6211\u4eec\u4f1a\u9009\u7528FlatList\u6216\u662fSectionList\u3002","sidebar":"docs"},"using-a-scrollview":{"id":"using-a-scrollview","title":"\u4f7f\u7528\u6eda\u52a8\u89c6\u56fe","description":"ScrollView\u662f\u4e00\u4e2a\u901a\u7528\u7684\u53ef\u6eda\u52a8\u7684\u5bb9\u5668\uff0c\u4f60\u53ef\u4ee5\u5728\u5176\u4e2d\u653e\u5165\u591a\u4e2a\u7ec4\u4ef6\u548c\u89c6\u56fe\uff0c\u800c\u4e14\u8fd9\u4e9b\u7ec4\u4ef6\u5e76\u4e0d\u9700\u8981\u662f\u540c\u7c7b\u578b\u7684\u3002ScrollView \u4e0d\u4ec5\u53ef\u4ee5\u5782\u76f4\u6eda\u52a8\uff0c\u8fd8\u80fd\u6c34\u5e73\u6eda\u52a8\uff08\u901a\u8fc7horizontal\u5c5e\u6027\u6765\u8bbe\u7f6e\uff09\u3002","sidebar":"docs"},"vibration":{"id":"vibration","title":"Vibration","description":"\u4f7f\u8bbe\u5907\u632f\u52a8\u3002","sidebar":"api"},"view":{"id":"view","title":"View","description":"\u4f5c\u4e3a\u521b\u5efa UI \u65f6\u6700\u57fa\u7840\u7684\u7ec4\u4ef6\uff0cView \u662f\u4e00\u4e2a\u652f\u6301 Flexbox \u5e03\u5c40\u3001\u6837\u5f0f\u3001\u89e6\u6478\u54cd\u5e94\u3001\u548c\u4e00\u4e9b\u65e0\u969c\u788d\u529f\u80fd\u7684\u5bb9\u5668\u3002\u4e0d\u8bba\u5728\u4ec0\u4e48\u5e73\u53f0\u4e0a\uff0cView \u90fd\u76f4\u63a5\u5bf9\u5e94\u5f53\u524d\u5e73\u53f0\u7684\u539f\u751f\u89c6\u56fe\uff0c\u65e0\u8bba\u5b83\u662f UIView\u3001div \u8fd8\u662f android.view.View\u3002","sidebar":"\u7ec4\u4ef6"},"view-flattening":{"id":"view-flattening","title":"\u89c6\u56fe\u62cd\u5e73","description":"This document refers to the architecture of the new renderer, Fabric, that is in active roll-out."},"view-style-props":{"id":"view-style-props","title":"View \u6837\u5f0f\u5c5e\u6027","description":"\u793a\u4f8b","sidebar":"\u7ec4\u4ef6"},"viewpagerandroid":{"id":"viewpagerandroid","title":"\ud83d\udea7 ViewPagerAndroid","description":"\u5df2\u8fc7\u65f6\u3002 Use @react-native-community/viewpager instead."},"viewtoken":{"id":"viewtoken","title":"ViewToken \u5bf9\u8c61","description":"ViewToken object is returned as one of properties in the onViewableItemsChanged callback, for example in FlatList component. It is exported by ViewabilityHelper.js.","sidebar":"\u7ec4\u4ef6"},"virtualizedlist":{"id":"virtualizedlist","title":"VirtualizedList","description":"FlatList\u548cSectionList\u7684\u5e95\u5c42\u5b9e\u73b0\u3002FlatList \u548c SectionList \u4f7f\u7528\u8d77\u6765\u66f4\u65b9\u4fbf\uff0c\u540c\u65f6\u4e5f\u6709\u76f8\u5bf9\u66f4\u8be6\u7ec6\u7684\u6587\u6863\u3002\u4e00\u822c\u6765\u8bf4\uff0c\u4ec5\u5f53\u60f3\u83b7\u5f97\u6bd4 FlatList \u66f4\u9ad8\u7684\u7075\u6d3b\u6027\uff08\u6bd4\u5982\u8bf4\u5728\u4f7f\u7528 immutable data \u800c\u4e0d\u662f \u666e\u901a\u6570\u7ec4\uff09\u7684\u65f6\u5019\uff0c\u4f60\u624d\u5e94\u8be5\u8003\u8651\u4f7f\u7528 VirtualizedList\u3002","sidebar":"\u7ec4\u4ef6"},"xplat-implementation":{"id":"xplat-implementation","title":"\u8de8\u5e73\u53f0\u7684\u5b9e\u73b0","description":"This document refers to the architecture of the new renderer, Fabric, that is in active roll-out."}}}}')}}]); \ No newline at end of file diff --git a/assets/js/ced1c827.27a47131.js b/assets/js/ced1c827.27a47131.js new file mode 100644 index 00000000000..36d5c28bde5 --- /dev/null +++ b/assets/js/ced1c827.27a47131.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[23282],{79367:(e,n,d)=>{d.r(n),d.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>x,frontMatter:()=>s,metadata:()=>t,toc:()=>o});var r=d(62540),c=d(43023);const s={},i="\u9644\u5f55",t={id:"appendix",title:"\u9644\u5f55",description:"\u4e00\u3001\u672f\u8bed",source:"@site/../cndocs/appendix.md",sourceDirName:".",slug:"/appendix",permalink:"/docs/next/appendix",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/appendix.md",tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Fabric Native Components Introduction",permalink:"/docs/next/fabric-native-components-introduction"},next:{title:"\u521b\u5efa\u6a21\u5757\u5e93",permalink:"/docs/next/the-new-architecture/create-module-library"}},l={},o=[{value:"\u4e00\u3001\u672f\u8bed",id:"\u4e00\u672f\u8bed",level:2},{value:"II. Codegen \u7c7b\u578b",id:"ii-codegen-\u7c7b\u578b",level:2},{value:"Notes:",id:"notes",level:3}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,c.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"\u9644\u5f55",children:"\u9644\u5f55"})}),"\n",(0,r.jsx)(n.h2,{id:"\u4e00\u672f\u8bed",children:"\u4e00\u3001\u672f\u8bed"}),"\n",(0,r.jsxs)(n.p,{children:["\u6574\u4e2a\u4e0e\u65b0\u67b6\u6784\u76f8\u5173\u7684\u6307\u5357\u5c06\u9075\u5faa\u4ee5\u4e0b",(0,r.jsx)(n.strong,{children:"\u672f\u8bed"}),"\uff1a"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Spec"})," - TypeScript \u6216 Flow \u5f62\u5f0f\u7684\u4ee3\u7801\uff0c\u7528\u4e8e\u63cf\u8ff0 Turbo Native \u6a21\u5757\u6216 Fabric \u539f\u751f\u7ec4\u4ef6\u7684 API\u3002 ",(0,r.jsx)(n.strong,{children:"Codegen"})," \u6839\u636e\u5b83\u6765\u751f\u6210\u6837\u677f\u4ee3\u7801\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Fabric \u539f\u751f\u7ec4\u4ef6"})," - \u6307\u5df2\u7ecf\u9002\u914d\u4ee5\u4e0e\u65b0\u67b6\u6784\uff08\u5373\u65b0\u6e32\u67d3\u5668\uff09\u826f\u597d\u534f\u540c\u5de5\u4f5c\u7684\u7ec4\u4ef6\u3002\u4e3a\u7b80\u6d01\u8d77\u89c1\uff0c\u60a8\u53ef\u80fd\u4f1a\u770b\u5230\u5b83\u4eec\u88ab\u79f0\u4e3a",(0,r.jsx)(n.strong,{children:"Fabric \u7ec4\u4ef6"}),"\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Turbo \u539f\u751f\u6a21\u5757"})," - \u6307\u5df2\u7ecf\u9002\u914d\u4ee5\u4e0e\u65b0\u67b6\u6784\uff08\u5373\u65b0\u539f\u751f\u6a21\u5757\u7cfb\u7edf\uff09\u826f\u597d\u534f\u540c\u5de5\u4f5c\u7684\u6a21\u5757\u3002\u4e3a\u7b80\u6d01\u8d77\u89c1\uff0c\u60a8\u53ef\u80fd\u4f1a\u770b\u5230\u5b83\u4eec\u88ab\u79f0\u4e3a",(0,r.jsx)(n.strong,{children:"Turbo \u6a21\u5757"}),"\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u4f20\u7edf\u539f\u751f\u7ec4\u4ef6"})," - \u6307\u8fd0\u884c\u5728 React Native \u65e7\u67b6\u6784\u4e0a\u7684\u7ec4\u4ef6\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u4f20\u7edf\u539f\u751f\u6a21\u5757"})," - \u6307\u8fd0\u884c\u5728 React Native \u65e7\u67b6\u6784\u4e0a\u7684\u6a21\u5757\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"ii-codegen-\u7c7b\u578b",children:"II. Codegen \u7c7b\u578b"}),"\n",(0,r.jsx)(n.p,{children:"\u60a8\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u8868\u683c\u4f5c\u4e3a\u53c2\u8003\uff0c\u4e86\u89e3\u6bcf\u79cd\u7c7b\u578b\u5728\u4e0d\u540c\u5e73\u53f0\u4e0a\u7684\u652f\u6301\u60c5\u51b5\uff1a"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Flow"}),(0,r.jsx)(n.th,{children:"TypeScript"}),(0,r.jsx)(n.th,{children:"Flow Nullable Support"}),(0,r.jsx)(n.th,{children:"TypeScript Nullable Support"}),(0,r.jsx)(n.th,{children:"Android (Java)"}),(0,r.jsx)(n.th,{children:"iOS (ObjC)"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"?string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"string | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"NSString"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"boolean"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"boolean"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"?boolean"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"boolean | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"Boolean"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"NSNumber"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:["Object Literal",(0,r.jsx)("br",{}),(0,r.jsx)("code",{children:"{| foo: string, ...|}"})]}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"{ foo: string, ...} as const"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"?{| foo: string, ...|}"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"?{ foo: string, ...} as const"})}),(0,r.jsx)(n.td,{children:"-"}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:["Object [",(0,r.jsx)(n.a,{href:"#notes",children:"1"}),"]"]}),(0,r.jsxs)(n.td,{children:["Object [",(0,r.jsx)(n.a,{href:"#notes",children:"1"}),"]"]}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"?Object"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Object | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"ReadableMap"})}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"@"})," (untyped dictionary)"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Array"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Array"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"?Array"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Array | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"ReadableArray"})}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"NSArray"})," (or ",(0,r.jsx)(n.code,{children:"RCTConvertVecToArray"})," when used inside objects)"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"Function"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"Function"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"?Function"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Function | null"})}),(0,r.jsx)(n.td,{children:"-"}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Promise"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Promise"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"?Promise"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Promise | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"com.facebook.react.bridge.Promise"})}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"RCTPromiseResolve"})," and ",(0,r.jsx)(n.code,{children:"RCTPromiseRejectBlock"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:["Type Unions",(0,r.jsx)("br",{}),(0,r.jsx)("code",{children:"'SUCCESS'|'FAIL'"})]}),(0,r.jsxs)(n.td,{children:["Type Unions",(0,r.jsx)("br",{}),(0,r.jsx)("code",{children:"'SUCCESS'|'FAIL'"})]}),(0,r.jsx)(n.td,{children:"Only as callbacks"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:"-"}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:["Callbacks",(0,r.jsx)("br",{}),(0,r.jsx)(n.code,{children:"() =>"})]}),(0,r.jsxs)(n.td,{children:["Callbacks",(0,r.jsx)("br",{}),(0,r.jsx)(n.code,{children:"() =>"})]}),(0,r.jsx)(n.td,{children:"Yes"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"com.facebook.react.bridge.Callback"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"RCTResponseSenderBlock"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"number"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"number"})}),(0,r.jsx)(n.td,{children:"No"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"double"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"NSNumber"})})]})]})]}),"\n",(0,r.jsx)(n.h3,{id:"notes",children:"Notes:"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)("b",{children:"[1]"})," \u6211\u4eec\u5f3a\u70c8\u5efa\u8bae\u4f7f\u7528\u5bf9\u8c61\u5b57\u9762\u91cf\u800c\u4e0d\u662f\u5bf9\u8c61\u3002"]}),"\n",(0,r.jsx)(n.admonition,{type:"info",children:(0,r.jsxs)(n.p,{children:["\u60a8\u4e5f\u53ef\u4ee5\u53c2\u8003 React Native \u6838\u5fc3\u6a21\u5757\u7684 JavaScript \u89c4\u8303\u3002\u8fd9\u4e9b\u4f4d\u4e8e React Native \u4ed3\u5e93\u7684 ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/react-native/tree/main/packages/react-native/Libraries",children:(0,r.jsx)(n.code,{children:"Libraries/"})})," \u76ee\u5f55\u4e2d\u3002"]})})]})}function x(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},43023:(e,n,d)=>{d.d(n,{R:()=>i,x:()=>t});var r=d(63696);const c={},s=r.createContext(c);function i(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:i(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ced1c827.050e6d71.js b/assets/js/ced1c827.dc4607ae.js similarity index 97% rename from assets/js/ced1c827.050e6d71.js rename to assets/js/ced1c827.dc4607ae.js index 662f666bee1..d463dced7c1 100644 --- a/assets/js/ced1c827.050e6d71.js +++ b/assets/js/ced1c827.dc4607ae.js @@ -20,10 +20,10 @@ __webpack_require__.r(__webpack_exports__); const frontMatter = {}; -const contentTitle = undefined; +const contentTitle = '附录'; const metadata = { "id": "appendix", - "title": "appendix", + "title": "附录", "description": "一、术语", "source": "@site/../cndocs/appendix.md", "sourceDirName": ".", @@ -69,8 +69,10 @@ function _createMdxContent(props) { a: "a", admonition: "admonition", code: "code", + h1: "h1", h2: "h2", h3: "h3", + header: "header", li: "li", p: "p", strong: "strong", @@ -85,7 +87,12 @@ function _createMdxContent(props) { ...props.components }; return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { - children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.h2, { + children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.header, { + children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.h1, { + id: "附录", + children: "附录" + }) + }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.h2, { id: "一术语", children: "一、术语" }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, { @@ -97,9 +104,9 @@ function _createMdxContent(props) { children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.strong, { children: "Spec" - }), " - TypeScript or Flow code that describes the API for a Turbo Native Module or Fabric Native component. Used by ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.strong, { + }), " - TypeScript 或 Flow 形式的代码,用于描述 Turbo Native 模块或 Fabric 原生组件的 API。 ", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.strong, { children: "Codegen" - }), " to generate boilerplate code."] + }), " 根据它来生成样板代码。"] }), "\n"] }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.li, { children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, { @@ -121,13 +128,13 @@ function _createMdxContent(props) { children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.strong, { children: "传统原生组件" - }), " - 指运行在旧版 React Native 架构上的组件。"] + }), " - 指运行在 React Native 旧架构上的组件。"] }), "\n"] }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.li, { children: ["\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components.p, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.strong, { children: "传统原生模块" - }), " - 指运行在旧版 React Native 架构上的模块。"] + }), " - 指运行在 React Native 旧架构上的模块。"] }), "\n"] }), "\n"] }), "\n", (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components.h2, { diff --git a/assets/js/ced1c827.f92907e6.js b/assets/js/ced1c827.f92907e6.js deleted file mode 100644 index b12aa2780da..00000000000 --- a/assets/js/ced1c827.f92907e6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[23282],{79367:(e,n,d)=>{d.r(n),d.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>x,frontMatter:()=>s,metadata:()=>t,toc:()=>o});var r=d(62540),c=d(43023);const s={},i=void 0,t={id:"appendix",title:"appendix",description:"\u4e00\u3001\u672f\u8bed",source:"@site/../cndocs/appendix.md",sourceDirName:".",slug:"/appendix",permalink:"/docs/next/appendix",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/appendix.md",tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Fabric Native Components Introduction",permalink:"/docs/next/fabric-native-components-introduction"},next:{title:"\u521b\u5efa\u6a21\u5757\u5e93",permalink:"/docs/next/the-new-architecture/create-module-library"}},l={},o=[{value:"\u4e00\u3001\u672f\u8bed",id:"\u4e00\u672f\u8bed",level:2},{value:"II. Codegen \u7c7b\u578b",id:"ii-codegen-\u7c7b\u578b",level:2},{value:"Notes:",id:"notes",level:3}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,c.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"\u4e00\u672f\u8bed",children:"\u4e00\u3001\u672f\u8bed"}),"\n",(0,r.jsxs)(n.p,{children:["\u6574\u4e2a\u4e0e\u65b0\u67b6\u6784\u76f8\u5173\u7684\u6307\u5357\u5c06\u9075\u5faa\u4ee5\u4e0b",(0,r.jsx)(n.strong,{children:"\u672f\u8bed"}),"\uff1a"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Spec"})," - TypeScript or Flow code that describes the API for a Turbo Native Module or Fabric Native component. Used by ",(0,r.jsx)(n.strong,{children:"Codegen"})," to generate boilerplate code."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Fabric \u539f\u751f\u7ec4\u4ef6"})," - \u6307\u5df2\u7ecf\u9002\u914d\u4ee5\u4e0e\u65b0\u67b6\u6784\uff08\u5373\u65b0\u6e32\u67d3\u5668\uff09\u826f\u597d\u534f\u540c\u5de5\u4f5c\u7684\u7ec4\u4ef6\u3002\u4e3a\u7b80\u6d01\u8d77\u89c1\uff0c\u60a8\u53ef\u80fd\u4f1a\u770b\u5230\u5b83\u4eec\u88ab\u79f0\u4e3a",(0,r.jsx)(n.strong,{children:"Fabric \u7ec4\u4ef6"}),"\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Turbo \u539f\u751f\u6a21\u5757"})," - \u6307\u5df2\u7ecf\u9002\u914d\u4ee5\u4e0e\u65b0\u67b6\u6784\uff08\u5373\u65b0\u539f\u751f\u6a21\u5757\u7cfb\u7edf\uff09\u826f\u597d\u534f\u540c\u5de5\u4f5c\u7684\u6a21\u5757\u3002\u4e3a\u7b80\u6d01\u8d77\u89c1\uff0c\u60a8\u53ef\u80fd\u4f1a\u770b\u5230\u5b83\u4eec\u88ab\u79f0\u4e3a",(0,r.jsx)(n.strong,{children:"Turbo \u6a21\u5757"}),"\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u4f20\u7edf\u539f\u751f\u7ec4\u4ef6"})," - \u6307\u8fd0\u884c\u5728\u65e7\u7248 React Native \u67b6\u6784\u4e0a\u7684\u7ec4\u4ef6\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u4f20\u7edf\u539f\u751f\u6a21\u5757"})," - \u6307\u8fd0\u884c\u5728\u65e7\u7248 React Native \u67b6\u6784\u4e0a\u7684\u6a21\u5757\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"ii-codegen-\u7c7b\u578b",children:"II. Codegen \u7c7b\u578b"}),"\n",(0,r.jsx)(n.p,{children:"\u60a8\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u8868\u683c\u4f5c\u4e3a\u53c2\u8003\uff0c\u4e86\u89e3\u6bcf\u79cd\u7c7b\u578b\u5728\u4e0d\u540c\u5e73\u53f0\u4e0a\u7684\u652f\u6301\u60c5\u51b5\uff1a"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Flow"}),(0,r.jsx)(n.th,{children:"TypeScript"}),(0,r.jsx)(n.th,{children:"Flow Nullable Support"}),(0,r.jsx)(n.th,{children:"TypeScript Nullable Support"}),(0,r.jsx)(n.th,{children:"Android (Java)"}),(0,r.jsx)(n.th,{children:"iOS (ObjC)"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"?string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"string | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"NSString"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"boolean"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"boolean"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"?boolean"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"boolean | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"Boolean"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"NSNumber"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:["Object Literal",(0,r.jsx)("br",{}),(0,r.jsx)("code",{children:"{| foo: string, ...|}"})]}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"{ foo: string, ...} as const"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"?{| foo: string, ...|}"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"?{ foo: string, ...} as const"})}),(0,r.jsx)(n.td,{children:"-"}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:["Object [",(0,r.jsx)(n.a,{href:"#notes",children:"1"}),"]"]}),(0,r.jsxs)(n.td,{children:["Object [",(0,r.jsx)(n.a,{href:"#notes",children:"1"}),"]"]}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"?Object"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Object | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"ReadableMap"})}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"@"})," (untyped dictionary)"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Array"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Array"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"?Array"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Array | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"ReadableArray"})}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"NSArray"})," (or ",(0,r.jsx)(n.code,{children:"RCTConvertVecToArray"})," when used inside objects)"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"Function"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"Function"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"?Function"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Function | null"})}),(0,r.jsx)(n.td,{children:"-"}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Promise"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Promise"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"?Promise"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)("code",{children:"Promise | null"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"com.facebook.react.bridge.Promise"})}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"RCTPromiseResolve"})," and ",(0,r.jsx)(n.code,{children:"RCTPromiseRejectBlock"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:["Type Unions",(0,r.jsx)("br",{}),(0,r.jsx)("code",{children:"'SUCCESS'|'FAIL'"})]}),(0,r.jsxs)(n.td,{children:["Type Unions",(0,r.jsx)("br",{}),(0,r.jsx)("code",{children:"'SUCCESS'|'FAIL'"})]}),(0,r.jsx)(n.td,{children:"Only as callbacks"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:"-"}),(0,r.jsx)(n.td,{children:"-"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:["Callbacks",(0,r.jsx)("br",{}),(0,r.jsx)(n.code,{children:"() =>"})]}),(0,r.jsxs)(n.td,{children:["Callbacks",(0,r.jsx)("br",{}),(0,r.jsx)(n.code,{children:"() =>"})]}),(0,r.jsx)(n.td,{children:"Yes"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"com.facebook.react.bridge.Callback"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"RCTResponseSenderBlock"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"number"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"number"})}),(0,r.jsx)(n.td,{children:"No"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"double"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"NSNumber"})})]})]})]}),"\n",(0,r.jsx)(n.h3,{id:"notes",children:"Notes:"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)("b",{children:"[1]"})," \u6211\u4eec\u5f3a\u70c8\u5efa\u8bae\u4f7f\u7528\u5bf9\u8c61\u5b57\u9762\u91cf\u800c\u4e0d\u662f\u5bf9\u8c61\u3002"]}),"\n",(0,r.jsx)(n.admonition,{type:"info",children:(0,r.jsxs)(n.p,{children:["\u60a8\u4e5f\u53ef\u4ee5\u53c2\u8003 React Native \u6838\u5fc3\u6a21\u5757\u7684 JavaScript \u89c4\u8303\u3002\u8fd9\u4e9b\u4f4d\u4e8e React Native \u4ed3\u5e93\u7684 ",(0,r.jsx)(n.a,{href:"https://github.com/facebook/react-native/tree/main/packages/react-native/Libraries",children:(0,r.jsx)(n.code,{children:"Libraries/"})})," \u76ee\u5f55\u4e2d\u3002"]})})]})}function x(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},43023:(e,n,d)=>{d.d(n,{R:()=>i,x:()=>t});var r=d(63696);const c={},s=r.createContext(c);function i(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:i(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.1aa8f3a8.js b/assets/js/runtime~main.da5c02d3.js similarity index 99% rename from assets/js/runtime~main.1aa8f3a8.js rename to assets/js/runtime~main.da5c02d3.js index 3950d3341ee..a309f97e1b4 100644 --- a/assets/js/runtime~main.1aa8f3a8.js +++ b/assets/js/runtime~main.da5c02d3.js @@ -1 +1 @@ -(()=>{"use strict";var d,e,a,b,c,f={},t={};function r(d){var e=t[d];if(void 0!==e)return e.exports;var a=t[d]={exports:{}};return f[d].call(a.exports,a,a.exports,r),a.exports}r.m=f,d=[],r.O=(e,a,b,c)=>{if(!a){var f=1/0;for(i=0;i=c)&&Object.keys(r.O).every((d=>r.O[d](a[o])))?a.splice(o--,1):(t=!1,c0&&d[i-1][2]>c;i--)d[i]=d[i-1];d[i]=[a,b,c]},r.n=d=>{var e=d&&d.__esModule?()=>d.default:()=>d;return r.d(e,{a:e}),e},a=Object.getPrototypeOf?d=>Object.getPrototypeOf(d):d=>d.__proto__,r.t=function(d,b){if(1&b&&(d=this(d)),8&b)return d;if("object"==typeof d&&d){if(4&b&&d.__esModule)return d;if(16&b&&"function"==typeof d.then)return d}var c=Object.create(null);r.r(c);var f={};e=e||[null,a({}),a([]),a(a)];for(var t=2&b&&d;"object"==typeof t&&!~e.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((e=>f[e]=()=>d[e]));return f.default=()=>d,r.d(c,f),c},r.d=(d,e)=>{for(var a in e)r.o(e,a)&&!r.o(d,a)&&Object.defineProperty(d,a,{enumerable:!0,get:e[a]})},r.f={},r.e=d=>Promise.all(Object.keys(r.f).reduce(((e,a)=>(r.f[a](d,e),e)),[])),r.u=d=>"assets/js/"+({38:"e053db0d",55:"319411a6",354:"89bf39dd",378:"d64418bf",648:"51b5d68d",686:"087b7d76",870:"c8899d24",872:"b196f212",1039:"6aeefb41",1073:"9cdfb8c3",1093:"4865bf41",1158:"b9361f7a",1308:"8800e804",1316:"fc260886",1350:"2827f11f",1372:"21d4bc0e",1482:"0ba118cc",1510:"d6342268",1520:"813ca450",1531:"80036715",1651:"4b4509e1",1727:"357d2506",1771:"beb3ac95",1786:"1d5130cd",1793:"f73e1de7",1849:"1c63adb2",1873:"ca213633",2016:"1705a2f5",2183:"5dcbc311",2197:"cc2c9ee0",2306:"0b3648c1",2476:"1237a0cf",2505:"0c9604fb",2518:"9ae78195",2520:"024e8286",2572:"f9922edf",2772:"6ed01025",2853:"b4f299c3",2902:"68ef1759",2945:"6de3d5b3",2982:"ec0858e5",3034:"d79e8bdf",3120:"2d554375",3248:"f78f0390",3249:"306d2344",3295:"db79922a",3312:"08a0614c",3330:"d1a27f99",3377:"d6c2ba00",3425:"65fb4e8d",3446:"c83604a4",3489:"6b49554e",3546:"d6811676",3586:"b29e94ce",3738:"7b20392b",3916:"fd5475e9",4005:"675ebcca",4023:"e5bf6a34",4041:"6b38eaf7",4097:"5799d0dd",4558:"33cddceb",4642:"7d8f16e8",4760:"d2174fb9",4768:"c38010e5",4781:"8585b615",4812:"8a049a88",4866:"9ae0af9f",4907:"db47402c",4988:"30c7ae5a",5032:"20144648",5176:"fbf58390",5195:"dc123d29",5211:"88f8cf7d",5228:"d60a7f72",5293:"23636f9a",5373:"94490ee2",5411:"8c2ad0ca",5421:"e6a6f3dc",5444:"3366e05e",5541:"6a0d7dd4",5568:"9ff7b4c0",5702:"3e1847f7",5723:"c06e8323",5759:"dbf7beca",5800:"52156499",5868:"0fb34189",5910:"12980e8b",6131:"b12657f5",6204:"3da7314b",6359:"ddd9a697",6741:"3f42c85e",6775:"e6b85556",7034:"39100033",7082:"45568034",7116:"a85d2d78",7125:"c4d886ef",7190:"078c5e69",7265:"157f3349",7323:"15498a1a",7365:"b5a7fd43",7489:"ab6173e5",7551:"ec0c998e",7662:"b7aeb43a",7684:"422866f9",7708:"46184ef1",7734:"7a693bfc",7735:"1d59c923",7754:"9cc3267b",7794:"38ed4955",7829:"85bac8ef",8120:"33c3be35",8152:"5d515b10",8220:"451a8567",8372:"35024544",8912:"535592ec",9001:"95a63350",9004:"03a32c63",9105:"39254045",9132:"3521e68a",9158:"0098ae6f",9245:"a992a0f8",9363:"937991a9",9367:"13980018",9401:"c99ef3c8",9410:"782ec3fc",9525:"bf1307fc",9592:"6b1867da",9647:"5e95c892",9660:"9a45f095",9685:"ac923fd4",9733:"801550f5",10099:"ddd72b6a",10120:"5331b8f3",10169:"e7d7dd9f",10219:"8c833fcf",10233:"a3f10777",10287:"de744a63",10526:"1e64aab5",10636:"06a38139",10726:"a6e22173",10814:"4f1e6f78",10853:"76e173fc",10900:"fcb6886d",11198:"45450b3b",11268:"729c0f86",11274:"321d4575",11279:"86316871",11331:"ac524e79",11358:"aa64b883",11396:"34eb68ef",11474:"d38055fb",11501:"3fb280d9",11571:"5530c297",11698:"1960ca85",12001:"1e909336",12005:"d76382b0",12054:"e595470b",12148:"cfa740c1",12161:"64c7b138",12188:"2cd87241",12193:"332e9e34",12230:"8c3ef24b",12284:"138e67e4",12306:"c42662d8",12442:"0091494f",12532:"ef7bdc3c",12588:"93d55f6a",12594:"3dd00d0d",12620:"12e7cb89",12869:"ab50fe1d",12979:"f9a1286e",13283:"f0b7dbe2",13285:"cdf27114",13308:"878ba96b",13310:"1d73041c",13319:"49c13a5f",13335:"b2115c5a",13388:"e7e29711",13458:"e3bb5330",13471:"91336b3a",13472:"b26eaa28",13532:"38d612cd",13659:"6fa2d900",13724:"4e3142d4",13821:"52633b27",13828:"448d2e39",13960:"416cb7f4",13976:"29393bfa",14050:"9863d968",14065:"dcf691c2",14074:"6cdb7f96",14145:"b4c1c629",14164:"edeb7ca8",14270:"d1d509cf",14318:"be26c63d",14343:"61182cc0",14533:"8d5eac66",14565:"1a297150",14581:"1cd20a8e",14606:"7d092cc9",14615:"d9791473",14638:"9dbcff21",14663:"8c1b243a",14680:"e7700b5c",14739:"3753089a",14748:"8c1ce502",14831:"24ac12d3",14833:"38755343",14880:"5db99c8c",14934:"69697c25",14947:"18bb110a",14957:"0b3b7529",14999:"056867f4",15006:"04e1afbd",15034:"f1d9f180",15129:"1a7fe871",15215:"8c2e6727",15286:"5771157b",15494:"3dfaf92b",15549:"67a43a2b",15627:"64db8c83",15640:"a679d266",15718:"426d37cf",15722:"f8f6f210",15838:"f1ccaf05",15875:"834474bd",15906:"9da46a46",15978:"2e831bbf",16031:"8dd98cd6",16107:"b29ca04c",16178:"b4a9e2bf",16231:"bbc0c093",16244:"bc684a49",16280:"c1e04fa9",16321:"c4d53b4e",16420:"397ccaa2",16530:"94bb8da9",16644:"61df34c2",16700:"41badbb5",16943:"12e81c73",17082:"347319a3",17233:"56376c93",17332:"05cf0320",17439:"0dd9911d",17447:"8149c1f6",17502:"ffd1aded",17541:"c7b0479b",17644:"5f8ce4cc",17763:"89270831",17810:"647c66a2",17822:"6ad22d2d",17826:"7ba605c7",17927:"79408a0e",17952:"4b962370",18211:"3a5cd9a6",18231:"583c7938",18241:"c41cb816",18279:"9e54149e",18357:"ce798db4",18376:"498677a1",18401:"17896441",18418:"15de7ec3",18432:"f6364ade",18483:"0420286f",18484:"70ac8688",18527:"75b8d183",18561:"a4c399e2",18563:"3b1837b8",18590:"7f091097",18701:"f38a19d0",18796:"f68825ce",18873:"634e5b87",18923:"9714922d",18950:"57589dde",18984:"23b2ec0b",18989:"662ccfa7",18991:"8f0d6e5b",19006:"9ddb20fc",19081:"e590aaa6",19106:"d3fd3247",19141:"b7257cf4",19182:"b4bdd337",19184:"eeccbb9d",19200:"b08e6fd8",19257:"de28e96e",19258:"2ff152fe",19322:"cf01b66e",19335:"a911dfe5",19429:"5dbec22c",19534:"8c81d4b1",19634:"d0603a07",19693:"afff73c8",19694:"07fd7997",19736:"eb5418d6",19974:"4cbc9dd4",20226:"ee872789",20279:"a7da7bfd",20313:"3560f547",20320:"3c18d05a",20388:"9376381b",20523:"7da464c5",20592:"ad5d8c26",20594:"30bf7e1c",20658:"45f9e45c",20723:"85431298",20731:"9c131906",20739:"a39c2644",20745:"3a6fee66",20818:"ef80f5d7",20831:"a2b80c2f",20857:"5221567d",20910:"aa88182b",20953:"aed1fdfa",21016:"7c650e8c",21023:"eb38f5fa",21100:"e19eb737",21154:"1ac276d7",21203:"09a9e026",21306:"23ee098c",21314:"06a3b629",21376:"bc659752",21440:"25524074",21608:"34a3a287",21922:"ae137543",21932:"4e1aad47",22019:"bf19308c",22022:"0a196f91",22100:"f6dc595b",22106:"fb71e943",22155:"f1129715",22227:"6062b3b1",22252:"5510f1b7",22331:"8b513d12",22574:"2cf1bed0",22629:"3d37559d",22646:"ee801bea",22736:"4396b59e",22843:"8968fb7b",22903:"20c45178",22905:"7c4f02d8",23008:"260634c1",23077:"623d7060",23282:"ced1c827",23287:"20a41275",23596:"b7112064",23620:"3b17f5a4",23685:"17ec9470",23694:"28b6b6ba",23699:"043f5d57",23778:"782d5715",23800:"111e950a",23877:"50e6032a",24051:"bf77c5df",24154:"d1a6a78e",24162:"9ec17576",24262:"1de587e0",24475:"cf645fbf",24612:"09de660c",24694:"ef084d6b",24869:"c721bd5f",24886:"993625b5",25134:"67574dd0",25187:"bd7672cc",25205:"cbb92f95",25248:"46a5adb6",25287:"07a91882",25580:"114e0000",25747:"f7874cab",25823:"0a0bc396",25846:"3f78ddfa",25866:"06cd84e5",25890:"39d9d3b1",25979:"3163195d",26011:"f135686d",26016:"30d73f3c",26018:"bae45495",26112:"95bb95fe",26130:"51d1e75a",26185:"2a7802e5",26220:"500270fa",26246:"f26b69fd",26506:"30138938",26651:"929fe6ef",26660:"7b293dc3",26843:"39991005",26844:"e264076a",26851:"2845b5fb",26862:"b36fef1b",26881:"08e13917",26883:"626019ce",26901:"039b8e3d",26926:"06dba648",26983:"9cbfa21b",26994:"f64ddea3",27001:"a32085e6",27162:"6ba5ca07",27236:"bd5fb03c",27281:"0bb0f3cf",27305:"716c2719",27413:"7e185b3a",27517:"32c64886",27561:"75ef737d",27598:"8ede17c4",27626:"614f9872",27677:"623cc3b0",27743:"134ae693",27770:"c9b36244",27890:"8bad6f6b",27964:"08d358f5",28049:"6928d3e3",28084:"713f446b",28192:"9644b941",28232:"2549e033",28239:"2dca9575",28260:"b1c5bd19",28295:"0cf75f61",28314:"87119bda",28350:"91786f2d",28368:"9240dba7",28443:"c737572b",28459:"6c55ddd3",28467:"38c36092",28484:"1ea42534",28596:"bc22aba8",28615:"486059a3",28874:"a3929b5f",28925:"93d5903e",28932:"a5c5fcf6",29022:"717ea6d4",29046:"c8250b16",29070:"42a3ef15",29099:"9ee19b63",29269:"e43bbd8d",29360:"ea9d8190",29388:"674d6b73",29406:"3640f479",29516:"ad1c6c85",29532:"edaa9a97",29646:"5d7ae6cf",29683:"80f530aa",29689:"4976484d",29796:"031d8f0a",29839:"45209ae6",29973:"3d33c646",30120:"326739da",30174:"4a5a3e4f",30179:"cbe6a4fc",30217:"9cae6ca6",30453:"7c6c7a0a",30481:"82c71751",30497:"1821187d",30508:"e81ab398",30521:"b81226b7",30556:"6fed3a2f",30738:"2338a9e8",30748:"cdd4e3f0",30751:"f7de2b66",30755:"de334689",30835:"5487638e",31040:"f7e8b9a1",31181:"e24ac2b3",31203:"bc26c448",31212:"d29b4af3",31218:"4084a0d2",31251:"c10d4556",31268:"ffe4f0b4",31278:"c935642e",31283:"99403472",31753:"3d6c47cd",31796:"a6a086f1",31905:"51d9b128",31987:"927c83fb",32075:"37d005cf",32175:"b2cfddf1",32227:"c50fc537",32243:"2003fdf9",32318:"6b8c6e92",32322:"2df7b45c",32394:"ab3c2611",32434:"7b907fd6",32495:"bc2f7794",32499:"c99c71a3",32843:"dbf682ac",32893:"1076b3a4",32999:"81dc996f",33053:"4eed3210",33104:"cf6e58a7",33227:"4104e253",33296:"65428859",33308:"6dadabbe",33440:"0199d4ca",33573:"1b274068",33602:"4f61d82b",33615:"e5a951df",33712:"74683f69",33889:"63c8cbb7",33948:"3b653f93",33994:"fe15004d",34025:"326a97e1",34029:"d043f0f1",34186:"6fd3f1bc",34199:"3070d3e4",34204:"94041cd4",34345:"eeeb5c38",34457:"155b8540",34517:"eeda504f",34674:"9a09606f",34714:"b9ffb51b",34725:"a7137c8d",34784:"36e03c34",34828:"18b93cb3",34921:"08ffabcb",34946:"4fb4e792",34957:"77b27fcb",34963:"4ffe34ca",35039:"fdb26c07",35142:"17a8dc81",35204:"ac6b3262",35224:"8a0c818d",35331:"eeead8f6",35350:"db66ee01",35447:"b75129ac",35460:"dba0012a",35498:"f156e6fd",35571:"5b3fb50e",35616:"56b30f1b",35693:"07f65d8b",35742:"aba21aa0",35753:"f5851674",35781:"c00af2b0",35813:"f84cf5bf",35864:"5fbe96f6",35903:"a728158d",36038:"4ea08adb",36076:"4b14b251",36088:"5e351f3a",36135:"1a9dbb4a",36241:"24e86038",36291:"c96104f9",36317:"50dd9b79",36488:"59d809ff",36533:"54708e5f",36573:"985e27df",36763:"686b0bca",36768:"226a5928",36775:"801384bf",36781:"9dc99f39",36800:"1fc8674b",37163:"039d54f1",37242:"42a13e6c",37262:"e95a72c7",37312:"baa9b3e7",37616:"a079babe",37645:"1ba86576",37670:"b24d9bb6",37750:"a4970bd4",37766:"6184db93",37834:"d0ef1249",37847:"8cf5de12",37868:"a27e6552",37889:"99cd3a09",37988:"fbc03c2b",38032:"97ba5e68",38102:"74f98b1f",38267:"e758129e",38387:"240f2433",38454:"16a62667",38518:"41b14717",38547:"e6b2312c",38620:"81d00bc5",38729:"9029660b",38817:"53331f41",38858:"07c0d8c6",38872:"69d614c0",38973:"62f145c9",39149:"9955d1be",39246:"4bac2214",39360:"8c28f592",39409:"068c006a",39411:"6a5926c0",39425:"8d2e0306",39455:"22fc99f1",39617:"04633a36",39643:"fb578f06",39645:"0ac6d6a1",39693:"5c50ab3a",39816:"5dfec97f",39914:"35d1b9ed",39940:"5629cb3c",40018:"66e1c749",40226:"d49333b1",40253:"432a68e7",40348:"2d74339a",40435:"26c5b03c",40603:"4e81c48e",40631:"cd3a106d",40636:"578ba53f",40677:"61baf4ec",40715:"cfde41d7",40919:"6323be29",40926:"af6afb7f",41006:"9a4e11a7",41072:"01fb1614",41093:"17217875",41123:"22d7af95",41126:"1ed4e501",41181:"0fc665a3",41242:"2781e23a",41418:"f14e55c8",41432:"47a28214",41535:"ba1860c7",41586:"a221c716",41593:"0147fdcc",41622:"1ea001ab",41675:"cab74b7f",42038:"58869656",42048:"12bf709d",42092:"b0ab0602",42095:"849a2d93",42113:"d301ca6f",42115:"dc1576b0",42158:"2066eb3c",42172:"1a49fe29",42177:"78b274e1",42332:"d09c12db",42369:"a7d1ebe1",42374:"9dc2e4c7",42463:"3d175bf6",42534:"5ac697d4",42565:"14d4a842",42568:"2cd4c511",42607:"c9eff2b3",43059:"67e697ca",43129:"b3fd545e",43248:"238efb50",43320:"c020d3f5",43325:"e4de30c0",43333:"25738e2d",43353:"a0a0a2ed",43530:"4cc410e3",43619:"8ae74b50",43664:"b4bb44c0",43679:"82fa5608",43772:"ccf671a6",43843:"1d6138da",43850:"0686000e",43853:"9d97f7b6",43979:"61474b2d",44024:"186a9ba9",44031:"49d40500",44085:"6a645174",44234:"2029ef4e",44250:"294e92a9",44252:"1778559c",44275:"bbdeca34",44360:"868c59c1",44436:"98f16971",44441:"574b16b7",44546:"bbd0c512",44562:"9aabffe1",44671:"4aaaccfc",44749:"0044a2c6",44759:"c3c09026",44899:"94687d26",44973:"4f3bda51",45019:"c050f0c1",45113:"3a3f3686",45140:"d5a6e29a",45147:"d480b873",45193:"19aaa7d2",45230:"f3cf0483",45319:"d28adcd4",45324:"0cb02a81",45326:"8e40a65f",45361:"98b25e1d",45534:"001dcd58",45563:"5e797937",45764:"c996deb9",45772:"1e70be21",45825:"7223e43b",45897:"b8d0a2d1",45905:"64df562a",45961:"4f1150eb",45988:"9e461bb0",45992:"f313a82c",46027:"b7799679",46111:"cebb851b",46131:"0b9b9699",46135:"48f8c159",46321:"74878dd4",46362:"3262a2f5",46436:"98721dc9",46442:"0c794514",46463:"a9bd4440",46504:"ed655da3",46633:"c6a04e07",46671:"08e1c021",46672:"de795cee",46683:"190f221c",46721:"a2490e07",46728:"98c3dfd0",46857:"491f04b4",46872:"4e090f01",46895:"87ab4d1a",46962:"af9b37be",47044:"04037fd3",47097:"41988923",47116:"9ad607d8",47121:"943dd7cb",47173:"b2516716",47229:"63600a6b",47299:"f068a30d",47320:"13af2f7c",47331:"12b28870",47343:"1534a170",47417:"d435efc2",47481:"8b188aa1",47506:"b42b2a17",47726:"5d9b0d6a",47744:"00b6ea12",47758:"6ca8022c",47807:"9b11a7b5",47817:"3370e507",47881:"79d149e1",47927:"d8d1979f",48052:"fdd91106",48165:"733b69e3",48205:"e4de8e8e",48221:"469a9a57",48244:"d3c1a4fe",48334:"b25f10a0",48392:"804c4949",48513:"6c54cff9",48589:"951006af",48856:"8052dbb2",48900:"a01fd1dd",48944:"12e59f4a",48983:"60e27521",49032:"f666756e",49209:"3bf70e45",49364:"b45ad73f",49534:"ae7a9ea2",49710:"3d512310",49769:"0a638240",49815:"b87ed5c2",49854:"c398a51a",49868:"2b7ed3bf",49918:"1448e88e",49989:"0cd05ac6",49999:"04cee9fd",50088:"2bf753d2",50094:"ded812ef",50418:"dcaae713",50435:"65456c03",50507:"7510cbdd",50519:"cbae671d",50556:"31dc03fe",50581:"a2ec8490",50627:"0327be96",50695:"01005a98",50736:"037bf98d",50760:"b63db1e6",50887:"2add6896",50913:"29cd52c0",50940:"71e3662e",50961:"16ee311f",51083:"28e9e915",51141:"e62508a7",51318:"2b43cbc0",51354:"6e6ac1cd",51376:"578f8908",51377:"eded264f",51408:"de8df556",51418:"24abcf9b",51421:"02ed4bab",51462:"338b3790",51483:"beab48ee",51582:"83b27652",51588:"b6ebe4da",51602:"f59aea7c",51613:"e7ea3ba0",51721:"99056a19",52004:"c23b0ee1",52035:"2c9ede42",52148:"1acbe180",52175:"ffb79954",52253:"ed4f607d",52419:"fb054755",52424:"d5499c5d",52483:"31cbe202",52494:"5f226e65",52555:"4576eff5",52630:"fd880ad6",52634:"c4f5d8e4",52662:"69f0ac79",52750:"356a0ac6",52771:"9b053948",52796:"68b823fd",52860:"c804bda3",52942:"fe826c2c",52951:"03d50046",53030:"e367aa8b",53061:"a8aa25e3",53105:"35b69d2c",53177:"5f3f388e",53186:"86c68e3d",53272:"1ad120a9",53302:"472ad214",53445:"57f3f140",53513:"1eaf0d5b",53581:"5af30f32",53607:"f31ddbdd",53724:"461c5b22",53820:"bbae08e6",53842:"4b1b6b6d",53850:"3760029d",53870:"3b9f8a02",53907:"7d1976ec",53910:"4cf604fd",53912:"c6a0cc74",53978:"9b9dc0e1",54007:"6fad45aa",54146:"206c5d8a",54169:"6f1bcaad",54178:"53bb3d97",54203:"1aab41e5",54209:"ea65614d",54307:"a2dc6bf0",54346:"061959ba",54376:"e21e838c",54448:"bc8995eb",54458:"ddcfb1bc",54462:"e6740c51",54502:"c0cfec7b",54690:"7960f2a0",54728:"5eaec2c9",54733:"0aa8e717",54840:"dd6d5ea0",54855:"4710ef09",54996:"97a57718",55089:"8a792504",55100:"7210b988",55156:"512830ea",55172:"bf718f16",55181:"a44d9688",55241:"b2622f06",55254:"a770fe3b",55354:"9006e630",55378:"df544d08",55419:"29e01d36",55519:"580ea038",55528:"d734f793",55624:"c20f03e6",55821:"92947c3c",55829:"7101161a",55840:"d56b8eba",55842:"2736e981",55939:"700c0943",55956:"694579f7",56046:"902a5db0",56076:"7374b7af",56136:"c95f38cb",56218:"75ebea5a",56225:"250b4dc6",56257:"1aa1a063",56331:"a2e66dcc",56335:"6efd9833",56361:"ca8b31c1",56433:"35c1434a",56481:"b9c445d5",56486:"5dffea44",56498:"d4077890",56543:"87dd242c",56632:"f71dfec3",56783:"e20ea0b5",56852:"23d8a97e",56862:"2a6f3007",56914:"fa11d8ca",56959:"e644f73a",56970:"4b97d39c",57013:"86ef1cd5",57038:"e0cb77f5",57050:"1d7f05a3",57119:"38290d37",57137:"811e7138",57153:"bc82dc37",57194:"08a5ab73",57221:"4a70ef18",57282:"e3874c12",57331:"1cd2432c",57455:"c31cb8ac",57529:"4d79d356",57565:"02db2b77",57648:"e26f611b",57669:"a6a87773",57695:"9eda2b4c",57775:"5f11e2df",57820:"bfa82433",57830:"68ed074c",57834:"b71414c5",57923:"4dfd395e",57982:"f6da0534",57997:"b698f5b8",58009:"276ccdc6",58013:"0ade90c0",58018:"c58d17fc",58034:"af8a22e6",58236:"bb898d9a",58376:"a3196274",58441:"727a66d9",58443:"062a5932",58449:"d2f06d62",58583:"22a05a92",58585:"2a0ad02b",58598:"6347278b",58634:"a43a81e0",58688:"7890cc65",58812:"9fd8720a",58945:"2548f5e5",58989:"7e4d0154",59045:"eb50cd7d",59099:"43abb1af",59137:"c7cd3677",59206:"27022ff4",59262:"d7165f5e",59360:"793d492a",59659:"eef85b41",59711:"76571efc",59773:"f35dcbe0",59973:"116594f6",60210:"fdabb8ac",60304:"f28bd0ab",60503:"0ed694ff",60615:"80f08778",60686:"b1228550",60699:"3804da35",60708:"cc087f33",60843:"36bb38e9",60862:"9090bfe2",60933:"abdaff06",61096:"ce6049ec",61134:"56b54d0c",61143:"f4870e22",61151:"b2e9258a",61196:"af992987",61235:"a7456010",61400:"90487a84",61401:"79448688",61420:"319045b7",61467:"4bdc1132",61500:"b0f4752e",61577:"e60b42c6",61609:"1483912b",61664:"14be3d02",61864:"2fc6fcbc",61869:"4ed22eea",61875:"7ff64393",61905:"6e9e7da5",62013:"ef017137",62026:"ab535e60",62033:"e2626cf4",62114:"2c1292e3",62138:"1a4e3797",62229:"293e43ee",62253:"7b7bbdc1",62430:"7b3388c5",62508:"1791f58f",62793:"75ec37d0",62847:"0a79c9a2",62901:"f622ad78",62959:"36778e0d",62972:"320ebc57",63006:"0296afed",63010:"de7e05af",63047:"9c354e09",63167:"36cc6e86",63199:"976ab885",63317:"402bdd59",63373:"67da8bf2",63445:"1f6bedff",63593:"cfc2f36a",63602:"3493d660",63612:"c8cf90b4",63615:"13ee8587",63635:"2547de89",63736:"5cce1ffd",64110:"17352c84",64147:"dccccdff",64153:"34db6793",64342:"20e9fe55",64417:"915f3d1c",64495:"0b139e7e",64603:"36fc15ca",64615:"0dc2c486",64752:"0181b3db",64761:"c7fc39e6",64797:"ebf19685",65014:"0d626c57",65125:"70a0ba6e",65194:"8f2b33cd",65284:"b8c8be29",65293:"b5813517",65340:"c86d871d",65455:"c667a225",65501:"f6d61436",65552:"83a785e6",65593:"c159d2a1",65633:"e2559165",65664:"7f2b816c",65795:"68381642",65957:"bdea594d",66061:"1f391b9e",66078:"f5bf0763",66106:"a7fd529a",66142:"dcddf26d",66157:"a743260a",66238:"97affa7f",66262:"ad4064bb",66425:"853aad93",66473:"3a0563f8",66541:"60eb9b40",66697:"8fa43a6e",66733:"41794b63",66775:"cd2e908e",66780:"9b60a6c4",66814:"13989100",66881:"8f5764cc",67054:"60d0d69b",67079:"cdf0b926",67098:"a7bd4aaa",67142:"af78357d",67280:"b6220ba5",67460:"40984471",67536:"2c2b467e",67605:"0747ea75",67677:"509d8239",67681:"3861ecca",67751:"bff0709d",67782:"40628e9c",67789:"ae6fccdb",67812:"9bf717b1",68056:"1404e73e",68070:"0a8cb4e2",68304:"e15e352e",68328:"c1467f4f",68571:"7f6979ff",68578:"33f86aee",68619:"93583d2d",68632:"7f6ca9e0",68714:"605b0891",68837:"fc751a3d",68900:"31b01d6d",68982:"345c2f79",68988:"56a727d7",69039:"c28f96f6",69082:"e711fdf3",69128:"e916fc52",69195:"d88eb93c",69278:"088c6538",69309:"6820c973",69412:"b233694f",69646:"fed8e900",69803:"a8687ac8",69889:"1741557d",69953:"02da5ab9",69981:"e71901c0",69984:"d816ab3f",70035:"c19ed1d7",70062:"97b28733",70113:"36107b78",70206:"6131ccf6",70220:"0a033318",70224:"b8796a33",70401:"78bcd1a8",70405:"21e474a0",70409:"a535188c",70447:"4f73d880",70459:"c958b86c",70558:"3701251b",70581:"c99653b5",70590:"55f4c5b3",70608:"bf4489ea",70629:"9c00ca68",70829:"012d05d8",70929:"0c5f8fb8",70940:"5e8e437b",71036:"3b6f8471",71058:"2092b488",71077:"fd0805d1",71160:"39ae1dcc",71294:"2ed06246",71325:"1f8182e7",71493:"c1220e0c",71515:"b15ec89c",71546:"deb2d893",71643:"f2b40bbf",71698:"572bad33",71742:"0b242e68",71754:"cf9d5ce2",71790:"601330aa",71806:"15c9a7f1",71861:"24e50fa3",71899:"877fc452",71904:"a6d3b32b",71946:"b4ae246a",72092:"b8cf7f45",72112:"9bdf7f32",72257:"285b3354",72265:"784fecab",72299:"73f011ae",72339:"618b84ef",72343:"9915efaf",72386:"531dfa41",72429:"78406dfc",72528:"1bcfa046",72588:"712603f6",72596:"c74f51da",72736:"15800944",72811:"71449ed6",72900:"5a35eefa",72930:"ff0316c2",73019:"d1ebdf95",73042:"f5d38d41",73057:"fa2e85d3",73059:"3bb14ef7",73066:"2ac0b4bc",73079:"36627b26",73164:"fb100ce8",73331:"6e5bc6ab",73356:"91918b05",73424:"717f9656",73428:"42dbec43",73485:"525fe6fa",73634:"e4cd52a9",73778:"cad34824",73844:"77f249ff",73874:"42b9625c",73875:"7600c741",73915:"0efc406b",73916:"43816d14",73917:"728d2d7a",73968:"4885913a",73988:"2581efca",74011:"3b3060ca",74236:"17bfe970",74274:"ea73ae50",74285:"d89c5153",74300:"54955dc8",74347:"8b30a105",74368:"450cda6b",74722:"3c68b9d2",74760:"6137920c",74824:"078a9b71",74845:"64187b62",74888:"af62122e",74928:"d695235e",75074:"149005f6",75113:"b591ae09",75122:"1cfe702a",75135:"d0cd4a88",75157:"d33531c0",75324:"73da224d",75347:"75e5d073",75405:"6f5989c4",75425:"e94d0088",75476:"1082d4d6",75500:"ce5cde8f",75519:"7d2cd00d",75538:"45618ae1",75553:"da5b456a",75591:"1836dca0",75661:"eb1e27c5",75854:"4ec5dc72",75870:"3c8791ea",75882:"15770add",75904:"437495c6",75965:"fe60c9cb",75998:"5bb745c9",76073:"d4be08e6",76093:"9a1f20dc",76197:"37ae9f43",76304:"54255f28",76430:"091cab81",76438:"2fb758e0",76511:"2ed989b5",76638:"c29853ab",76658:"1daeb507",76676:"243fbebc",76713:"fecf6185",76773:"76228cdf",76907:"8136ae62",76959:"71b28fa1",76968:"c759f874",76970:"ac5ffeb9",77042:"493c96f5",77079:"dbc6080a",77083:"eec26f27",77089:"2dc15feb",77148:"354394ed",77230:"127efe29",77268:"925bf856",77298:"0b447833",77325:"8af066b3",77342:"dae67a8a",77419:"33124494",77423:"9e0309bf",77549:"6e348b42",77682:"0667b750",77755:"85e970a9",77780:"d385ee25",77862:"2b53b872",77881:"b5352e4b",77919:"4d7503d3",77943:"698d87d8",77957:"09917fe9",77970:"47dd0419",77971:"162ee6b1",78028:"a7973d5a",78055:"0c2c0374",78189:"320b7954",78226:"fc04664d",78231:"f9ef2d71",78446:"487e8214",78500:"787d1332",78600:"e3800717",78800:"d5ca4adc",78803:"02309956",78950:"cdc8a01e",79048:"a94703ab",79101:"2b8d9243",79143:"207889a9",79160:"20da3b21",79204:"3e3c20b5",79241:"0d680d08",79255:"acac7935",79293:"27161ea7",79345:"b63e4b40",79524:"624f0d9f",79528:"a67fb928",79678:"db5319b3",79694:"6c509596",79768:"278d928c",79827:"0d01e3af",79863:"a6efc48a",79990:"d90455db",80005:"8d1d2f63",80096:"ed95a3f4",80130:"6a58dac5",80223:"e0e92014",80247:"51fb9cc7",80267:"a2e2213f",80323:"55b63d4c",80417:"e760573e",80426:"86abb156",80454:"670e8940",80527:"4b916891",80626:"2954fac3",80705:"c608d889",80753:"2a144c3d",80957:"c141421f",81069:"31aad40d",81193:"1d104e2e",81271:"ab4a0273",81300:"821dce8b",81310:"f115b6dd",81384:"89866037",81453:"91695048",81661:"1961b513",81841:"33909044",81946:"2db8c4b6",81957:"3efc55e6",82002:"389fb278",82123:"98cc0cdb",82229:"f2d290a0",82309:"d05ae094",82353:"c13e7fb3",82368:"bed8702c",82390:"d09b6b40",82447:"7a423906",82478:"1658c756",82591:"d00a879e",82721:"0a489978",82888:"d788b4db",82950:"c09a614e",82965:"f8b1a534",83161:"27caae05",83188:"787a5247",83223:"d771e5a2",83504:"c2a87ab1",83559:"117d6e39",83678:"b8509072",83698:"fc8b2c25",83734:"5386bed0",83758:"8c1e11f0",83783:"24a9a59a",83859:"8d3fc5c6",83899:"0bcf800a",83917:"0bb26877",83941:"be7b5d27",83972:"1ab5a786",83980:"ec45d43c",83988:"79829de9",84009:"ad1533d5",84026:"4dd33177",84043:"c77f28be",84147:"7fe5042c",84184:"a74fb6d1",84230:"f0e049cd",84239:"292ebda1",84595:"13766180",84670:"f1dc25e1",84743:"38eee5c4",84769:"1a44db19",84824:"4dfd0a79",84827:"5a876e59",84844:"e8780874",84846:"65200372",84879:"2cf74606",84894:"911052af",84910:"260946d2",85024:"08c15c4c",85110:"3ffb6394",85186:"c3592a68",85196:"50f74dc8",85454:"9787e2b5",85476:"d837d0de",85505:"ab51e9a4",85531:"31e0ef60",85650:"704c7051",85686:"8c82037f",85870:"38b28ba1",85885:"4d9bd555",85891:"6d3744bb",85994:"eaf9832e",86166:"25d2a069",86207:"49b8fdc8",86248:"7a6c553e",86458:"ca006c66",86463:"5ea6b885",86464:"b6fa087a",86468:"d01173a8",86562:"c64024bf",86610:"ad3b8188",86719:"73039b17",86727:"7a63ecef",86764:"ba2d52b1",86886:"28d3cf43",86890:"daf96af6",87101:"f9145531",87106:"475ddf72",87127:"6de08607",87146:"798845d8",87201:"eca1dea2",87203:"d8db4bdd",87222:"7fc59764",87227:"900a3533",87237:"27033360",87406:"e4160942",87437:"5deadce3",87613:"76e32d2e",87627:"1dfed3a8",87838:"b54696c0",87889:"a84ffbb9",87899:"95d3faaa",88183:"8f3faaa4",88272:"81bc0670",88277:"5036f758",88360:"20b2c2b8",88428:"4b5c0d4e",88441:"169f5904",88537:"c0db360b",88618:"8aeb1be7",88639:"3893db7b",88751:"147dc28e",88759:"79c31966",88863:"052da1da",89012:"e52f87df",89061:"b87596d5",89062:"1b602655",89074:"7bf84062",89094:"66494347",89331:"d480b2d8",89344:"3380ced1",89408:"051a0a0e",89420:"013c1bab",89449:"4f718585",89610:"e16442cf",89624:"b9e9b3a4",89629:"23909da8",89666:"8fc7f1ee",89717:"30fb9325",89749:"444ce9f1",89833:"898f93c0",89838:"7563de56",89885:"8041f9fb",89903:"c9fc4253",89982:"c57040ca",9e4:"87d9fa95",90056:"dc64daf5",90197:"05e73bfb",90227:"f1b50ac4",90329:"3b6e9377",90411:"8da1edc8",90446:"590fe42d",90484:"2ac63345",90529:"69f236bd",90562:"d4d7e15c",90714:"efc55a86",90849:"0058b4c6",90881:"6eeffc01",90890:"01b58810",90906:"3468f004",90936:"2e44e249",90940:"13da317c",90987:"07660bd9",90996:"fdd518cf",91026:"eac5cc4a",91110:"d5eb11a4",91167:"777c6042",91246:"f59ee173",91357:"5aea82ac",91359:"08f736fd",91515:"4a860d8c",91564:"7a8aac42",91591:"b449eac0",91599:"58c4affa",91665:"69aee15b",91711:"39b57bd8",91760:"e980bfab",91806:"ed353322",91810:"0329a84f",91889:"53fa95c6",91919:"5ae09df0",92006:"e97c1fe7",92051:"0a35f6eb",92106:"da1cd4ff",92272:"a135050d",92339:"bc08316c",92362:"d91f58ea",92378:"8aa2fcff",92582:"428d4f34",92734:"a7719d3c",92811:"8cc7edc7",92828:"a3d50c6d",92839:"e23b750b",92843:"d9b20917",92855:"bba11647",92892:"e7b843b8",92983:"9baacde1",93066:"8b56192f",93096:"30d00011",93281:"e5d76254",93305:"7c812bc0",93379:"dceb5a04",93406:"461fa96b",93434:"0602bf05",93487:"861560fd",93499:"216ae4cf",93517:"238b4d74",93554:"c9c6f808",93565:"423de293",93650:"1d9a061e",93751:"517a6efc",93766:"45efb036",93770:"28c0a052",93984:"7d04e04a",94059:"f65152a8",94153:"7921b649",94191:"bc21daa0",94499:"962fb06e",94530:"31243f4d",94622:"383e0d08",94654:"01e031cb",94744:"a3c2ef0a",94896:"8e9fc961",94952:"230c8311",95027:"af469e1b",95032:"a18866da",95110:"cc0cb525",95192:"062ec1a5",95216:"cb25f79e",95239:"accf606c",95297:"34b1f086",95342:"f8c20afc",95355:"8538b042",95372:"9cdb1c5b",95526:"c544f4a4",95769:"510cb4fc",95986:"12d44b5e",96014:"cb7060e2",96097:"db682b59",96159:"2f0f6a05",96168:"3b865f5d",96285:"21401b7a",96298:"1d0513e8",96316:"476994e3",96346:"5887780d",96522:"fa54d3f4",96616:"c8789a67",96625:"9367275a",96660:"9e828d90",96852:"56c61789",96855:"6a4e1d5f",96884:"a86079f0",96887:"d4bf4b5a",96898:"10ba125c",97074:"285077f8",97104:"37880922",97118:"d6670666",97123:"89a085ba",97403:"2b571a06",97409:"243b9aa6",97431:"5ac20d8a",97525:"6345335c",97660:"32b5ea16",97728:"ff68b7f6",97768:"78d0b93d",97783:"8b583ccf",97798:"3178eb30",97800:"101b7008",97854:"437c7eac",97930:"1d6877e1",97971:"ba227fd4",98057:"a42d09e5",98058:"b771fa58",98106:"9b1b20cb",98263:"cd2936c4",98264:"174b14fd",98312:"92871e18",98324:"a943c173",98358:"849b3b7f",98370:"ee4153d2",98395:"19d845e4",98523:"dfa30293",98612:"0c7d02e4",98690:"b44c3773",98901:"1fc0c829",98961:"b6bd4264",99032:"2e687d69",99148:"ac411221",99185:"dacddbce",99203:"8d853448",99249:"e467d655",99257:"86bf3c9e",99273:"f667452d",99434:"7dbd846d",99462:"ea4644b7",99541:"33b6cd96",99700:"3f96f959",99719:"123bb9ef",99720:"95722794",99790:"362c9549",99801:"21daa31c",99920:"95a8e207"}[d]||d)+"."+{38:"7712ab5e",55:"c13970f0",354:"44f19ec5",378:"876f60de",440:"73b96d03",648:"499ad7a6",686:"e8437ed5",870:"829cddbe",872:"506acaf9",1039:"364f800a",1073:"d10d3515",1093:"e9a2029d",1158:"a068ca8e",1308:"207d51b3",1316:"e54a5ecf",1350:"5053f0e3",1372:"4d73c210",1482:"2de66d55",1510:"89cd7d00",1520:"037a516d",1531:"343966e0",1651:"4d7ced3d",1727:"0f0faf84",1771:"97c25799",1786:"93e4cd03",1793:"019a0084",1849:"de7393ef",1873:"836f5b04",2016:"83df1bb5",2183:"b9020ebd",2197:"e6364e90",2306:"e13cb53c",2476:"b66b026f",2505:"85b6468a",2518:"8c81b6a8",2520:"09dfe24a",2572:"7ef24c22",2772:"8c6e2cab",2853:"678b4787",2902:"c7c25eaa",2945:"ac1acfae",2982:"15cac327",3034:"07918b97",3120:"c59a9a2e",3248:"224d65cf",3249:"04f57c39",3295:"8c0557d2",3312:"3db7e1a7",3330:"18ad1f87",3377:"015a241d",3425:"e49d1e2a",3446:"783e7e89",3489:"b02ef054",3546:"ff198f13",3586:"7ebf1485",3738:"165c263c",3916:"fb8c5686",4005:"8de81b2d",4023:"e5e3a2bf",4041:"ea9c406a",4097:"1adb4bb3",4558:"8f03b436",4642:"812625d4",4760:"2ba8ce52",4768:"8ea8ef90",4781:"b6c5e3fb",4812:"abc5f49c",4866:"db9c730a",4907:"80bca676",4988:"6989f46a",5032:"795c0404",5176:"b5bff593",5195:"0bbe687d",5211:"ee110068",5228:"ab224d73",5293:"a83a4e19",5373:"5c53ebdd",5411:"7ce62609",5421:"fe54e741",5444:"b7ef4b8b",5541:"85ec6f74",5568:"12ead4fb",5702:"fc5882fb",5723:"d8d245d6",5759:"bb8bc637",5800:"9d93692b",5868:"670545ff",5910:"cb9a33c9",6131:"0acc9773",6204:"3f62303f",6359:"0f2c0b7f",6741:"10ba66c5",6775:"1176ea82",7034:"fd6da324",7082:"e8a76c26",7116:"74db3976",7125:"6dca3f06",7190:"df1d0255",7265:"16455a15",7323:"c61ee8c0",7365:"aa78a9e6",7489:"1f74c989",7551:"894f413a",7662:"f6c5d1fe",7684:"beb35243",7708:"aef6aafe",7734:"af279bf3",7735:"06c24f60",7754:"b13773eb",7794:"3fea3214",7829:"25868002",8120:"ef0b50d4",8152:"1d2d6ead",8220:"699e3a73",8372:"b976cb10",8912:"2e3de8d5",9001:"65445183",9004:"36177184",9105:"4f0d3ae7",9132:"e97803a8",9158:"a76406c2",9245:"e7b51f82",9363:"089dc482",9367:"bc0d5896",9401:"c000541e",9410:"dfc78613",9525:"2e803da5",9592:"eabfdddd",9647:"a06b7269",9660:"2dd137f6",9685:"21545ae1",9733:"a5fde704",10099:"b2e14d38",10120:"27458d05",10169:"ef09c06a",10219:"2c93058e",10233:"d321da8f",10287:"959470dc",10526:"4531afa7",10636:"cb82fdb2",10726:"de8aac75",10814:"b762aa97",10853:"0a8d0f13",10900:"272de34b",11198:"54881a3f",11268:"a6a8fdd6",11274:"c2767920",11279:"31acd154",11331:"370f6018",11358:"47deac63",11396:"c8bb5c36",11474:"2b122d1b",11501:"379423dc",11571:"32d8c51d",11698:"9262c909",12001:"670e4969",12005:"eba60975",12054:"694bb506",12148:"d78d479b",12161:"8aa49e8c",12188:"7ba8aece",12193:"092d381e",12230:"6c3dc35c",12284:"e96d2925",12306:"ec3bd11e",12442:"32a0bb8b",12532:"42cc456c",12588:"25831777",12594:"4a5aa000",12620:"3a071755",12869:"f68e5e9a",12979:"6006a09f",13283:"77080f31",13285:"ecacd8b4",13308:"c86f2914",13310:"fc7763e6",13319:"6baf67e7",13335:"d4258450",13388:"d0f12571",13458:"79885d10",13471:"bc0f1659",13472:"be79f19d",13532:"6aa307a0",13659:"c6942c59",13724:"01657d40",13821:"542c7715",13828:"b91b1afc",13960:"2e9605f4",13976:"68759954",14050:"948a1e06",14065:"a190935d",14074:"c066dc3c",14145:"bd3bf8e4",14164:"7716c56d",14270:"0c72268c",14318:"ac5be66a",14343:"2cf306aa",14533:"be7ceefa",14565:"bcf94c8c",14581:"244cd653",14606:"e9ead317",14615:"c0e986b4",14638:"4a4ca50b",14663:"b9d5bc85",14680:"5c9ff770",14739:"32ca8e8b",14748:"bb0dba97",14831:"57ce009d",14833:"cf87d4ad",14880:"d7887eeb",14934:"8e99920e",14947:"1bbe23d2",14957:"3c569ef4",14999:"d00e4774",15006:"ec841511",15034:"520c2a13",15129:"b7e7feed",15215:"553407ae",15286:"7fdca6e2",15494:"d19c0b39",15549:"14329afe",15627:"94bbdc49",15640:"37323fbc",15718:"f35e60c1",15722:"17802f42",15838:"5c35d729",15875:"a2293416",15906:"dc3b70b3",15978:"0fad358b",16031:"34da9883",16107:"66a71c0d",16178:"27a16c86",16231:"f4d63d5d",16244:"0ac617e6",16280:"044e5eca",16321:"d6ffeefe",16420:"46e7981b",16530:"2e402626",16644:"e1e94179",16700:"681daa93",16943:"1cda6c8f",17082:"e798a004",17233:"3323a7b7",17332:"c4d07156",17439:"8b4fae3b",17447:"d94b71a8",17502:"8dbec91d",17541:"e4f8bdba",17644:"c04bee36",17763:"562af692",17810:"c4aa58d7",17822:"8b3e9aee",17826:"32fe4166",17927:"e113c747",17952:"88891d58",18211:"93cdf6ab",18231:"7f6e37ae",18241:"132a141f",18279:"3e103b75",18357:"6ef72170",18376:"103a31f4",18401:"97bffc8e",18418:"80c9ab20",18432:"f4be152f",18483:"b568c1fc",18484:"8542849b",18527:"c37d1a27",18561:"3b8a770a",18563:"32efdaf2",18590:"50deeec0",18701:"2b6b1cde",18796:"8a9cdda5",18873:"16d127c9",18923:"b116d538",18950:"0faea588",18973:"428542a9",18984:"e4d392a4",18989:"6a164e11",18991:"dd76134a",19006:"d761c155",19081:"edf548c3",19106:"dda8c7fb",19141:"4c4aac00",19182:"4b582607",19184:"4e19dfe0",19200:"5a4e037f",19257:"7656df18",19258:"d8a3c494",19322:"dd3cf145",19335:"652da9de",19429:"2bbbdd16",19534:"61ffbe5a",19634:"db53eb73",19693:"5d0c54ea",19694:"f3ae2636",19736:"8e8889be",19974:"ce636c4a",20226:"3c09cd4f",20279:"59df5c8b",20313:"aeb09e9f",20320:"c3fdec78",20388:"7346bd33",20523:"d721a8e9",20592:"17ea465e",20594:"4a6aa0b1",20658:"a264850f",20723:"48eddc6b",20731:"118102ea",20739:"5bba3e85",20745:"5530568f",20818:"52f4164e",20831:"4025e5b9",20857:"6b13152c",20910:"66804264",20953:"307f1294",21016:"9a50589d",21023:"a82b01ed",21100:"960a6674",21154:"84887232",21203:"c9ff8815",21306:"3fe47a2a",21314:"416bd4ec",21376:"6a7628d0",21440:"89d78e9f",21608:"fcc17afd",21922:"e6f14608",21932:"06e575e1",22019:"9ec60067",22022:"d5c2ff95",22100:"2d8c7b2b",22106:"af218c57",22155:"17e5509d",22227:"db8eb8c6",22252:"8a883ac2",22331:"e8f5abc0",22574:"99b09a7b",22629:"7f50cd88",22646:"4699cf72",22736:"a2201971",22843:"519bf33f",22903:"f8e78e7e",22905:"5ce2c97d",23008:"01d28557",23077:"d80dca31",23282:"f92907e6",23287:"7f316e8c",23596:"0273f0b7",23620:"d5b78040",23685:"6539ac82",23694:"ce39769a",23699:"cf1434d4",23778:"512a7ed5",23800:"96e23e35",23877:"df6603b0",24051:"636d5ce2",24154:"84cddf79",24162:"e0a9bdbd",24262:"a08f2df0",24475:"6c157518",24612:"276efdcc",24694:"034b05e8",24869:"75107fd4",24886:"61a6a072",25134:"f0a8ceeb",25187:"5b671ea7",25205:"c07921c3",25248:"97d4e862",25287:"e1f16163",25580:"03a725dd",25747:"41348ea2",25823:"7936e377",25846:"ff0e32cb",25866:"5b2b3960",25890:"8de41308",25979:"7622180a",26011:"9de24c7a",26016:"e8c41d8d",26018:"0e866c85",26112:"8733f938",26130:"124af76f",26185:"7f359088",26220:"77c51442",26246:"bc0a516c",26506:"ce7a392e",26651:"abc87df9",26660:"86a31ba9",26843:"75a0db65",26844:"8f821d0a",26851:"b7cfdaa0",26862:"d75712ac",26881:"8596ac7f",26883:"c65e1ea9",26901:"ebf17a91",26926:"ef0ebd8c",26983:"825ed9a9",26994:"8d408389",27001:"b3e5f2dc",27162:"9e80b11a",27236:"c6c37801",27281:"2c7bc21b",27305:"12f5f177",27413:"4f2e2425",27517:"d88354bc",27561:"ebf08157",27598:"676156a4",27626:"2437ffe0",27677:"412c35f4",27743:"fe83b8c3",27770:"994e98eb",27890:"6230c296",27964:"776847ab",28049:"8997091b",28084:"fce9c1ee",28192:"b2ef0205",28232:"a9bc34b1",28239:"7a422671",28260:"15f6e826",28295:"e9ed9b68",28314:"767d85ea",28350:"916ffe38",28368:"b54386c9",28443:"7ed60a84",28459:"01815ae4",28467:"dc08a47b",28484:"a54b458e",28596:"bb0b3d8d",28615:"c5afdcfc",28874:"37fed0ab",28925:"c677e920",28932:"d69196b7",29022:"208e5c7f",29046:"f234e774",29070:"619e965e",29099:"8aa14273",29269:"44e74c1b",29360:"7f650cbf",29388:"bfb2bc97",29406:"d3f0e5f3",29516:"31891758",29532:"67019fe2",29646:"0d4b7298",29683:"63807205",29689:"9e4843c5",29796:"234c3522",29839:"2238e097",29973:"50bea008",30120:"023af399",30174:"08cd7da2",30179:"1a52ecb9",30217:"aa6eccf3",30453:"5c74d948",30481:"4be346bf",30497:"a231253c",30508:"196d771e",30521:"99ed21ee",30556:"5898e274",30738:"00e89c92",30748:"67dc607d",30751:"acb636ab",30755:"a45ea5de",30835:"6fbb20f0",31040:"59953262",31181:"5b3db814",31203:"8eb4c745",31212:"75157119",31218:"5d936599",31251:"e2267db4",31268:"64eb0b3a",31278:"3faa3cb0",31283:"6eaa47bd",31753:"249fcd68",31796:"f60b3de8",31905:"638705ec",31987:"bc5dfec2",32075:"47a13503",32175:"9b905c19",32227:"1d033e3e",32243:"d93a0f43",32318:"8a4da698",32322:"e348ca79",32394:"bb41bc92",32434:"31c97ea1",32495:"1a668fec",32499:"d25a404a",32843:"38e3b298",32893:"e28c4d6a",32999:"8af7f8f4",33053:"5754676b",33104:"cd6396e4",33227:"e4c5cf48",33296:"ef83f15d",33308:"477b623a",33440:"79134d92",33573:"b4b6a501",33602:"e4097904",33615:"e4827157",33712:"a23607d6",33889:"30a4285d",33948:"6792f95a",33994:"d1d9cdfe",34025:"b138fc7b",34029:"bba0ee19",34186:"f0311cb7",34199:"e7af120f",34204:"e1704283",34345:"3a299e68",34457:"38b5d706",34517:"34f0b706",34674:"835ecdca",34714:"98cc1f06",34725:"1cc8fef8",34784:"ae8688db",34828:"59894150",34921:"adbcd54f",34946:"cb2a40d5",34957:"0aa84b76",34963:"89f8d50c",35039:"f602d9c4",35142:"e458632f",35204:"9d6dd2c9",35224:"54fbd5ee",35331:"18e15127",35350:"da7d1339",35447:"b6c8ae9c",35460:"2c7bf580",35498:"c13066d9",35571:"00164343",35616:"a88bcbc7",35693:"2d661d5a",35742:"204266bf",35753:"8adf13f7",35781:"91d3aeff",35813:"e4a4fef6",35864:"db99e4de",35903:"cf224cbd",36038:"aed218b9",36076:"8d782292",36088:"8b577e54",36135:"1c0ccc18",36241:"a3b18d74",36291:"cea25971",36317:"0062a057",36488:"bfcf6d24",36533:"c5c8a5b2",36573:"1681d286",36763:"4fde379a",36768:"061c6922",36775:"4be02e7e",36781:"86b4a664",36800:"e3db0c6c",37163:"11d1a5da",37242:"acb7607c",37262:"0d463dbf",37312:"2d059516",37616:"305ab967",37645:"ccb50372",37670:"3d3590ec",37750:"b02d6430",37766:"3f650929",37834:"9631fc63",37847:"66cb94eb",37868:"e0484a38",37889:"459bc960",37988:"686a8087",38032:"58163ef9",38102:"2b411eb8",38267:"7fad5f79",38387:"aec7c615",38454:"8b209704",38518:"73c3dceb",38547:"d1743e91",38620:"ed1b33f0",38729:"abf8eb48",38817:"3e3aae95",38858:"87df66eb",38872:"c2f09dea",38973:"bd5f6dd0",39149:"8de5f015",39246:"6f80eb15",39360:"4788b4b1",39409:"aad15900",39411:"12b37266",39425:"e21489c5",39455:"f5801d1d",39617:"6e6462ca",39643:"ef277e46",39645:"ac97f775",39693:"c41085a5",39816:"5cdb902a",39914:"77e81acf",39940:"0c50d5fe",40018:"b28db297",40226:"f6af1d4f",40253:"7ac3d8b0",40348:"5faef4d8",40435:"5fc3f30c",40603:"96c0723c",40631:"463ad66a",40636:"682d09b2",40677:"f42905ab",40715:"8e0280be",40919:"195ec9c3",40926:"8648e617",41006:"9d06528a",41072:"27d2f77f",41093:"decb1dba",41123:"7acb36c7",41126:"810632bf",41181:"872c4085",41242:"5e69245f",41418:"90fa4b5e",41432:"564d7ef5",41535:"8bc310f0",41586:"56e1405e",41593:"bd0f5182",41622:"57aabb41",41675:"2288d877",42038:"377af844",42048:"0410ff57",42092:"d22d455f",42095:"ef3c7038",42113:"2384d71f",42115:"7ff465c8",42158:"67aa7905",42172:"684074e7",42177:"1cbe532b",42332:"79f410b8",42369:"b8644517",42374:"6e4a6386",42463:"d3daacb8",42534:"f1dda845",42565:"b11ae7df",42568:"b0d88057",42607:"c776fc26",43059:"09a159e7",43129:"9a248f37",43248:"ca796ef0",43320:"02df0202",43325:"2e98cdff",43333:"5e4302fe",43353:"12b24077",43530:"db036786",43619:"a2b6f9e3",43664:"debab591",43679:"4ba9b3a3",43772:"2b4ea262",43843:"4ed35ca7",43850:"e5f06e59",43853:"86977270",43979:"fec14079",44024:"ea390521",44031:"d245c358",44085:"d71e80df",44234:"044524b1",44250:"7f74fa9e",44252:"d969a46d",44275:"d15b21d3",44360:"80f4ef05",44436:"8fdf2a03",44441:"76d882e9",44546:"23825cde",44562:"aca1d479",44671:"d9bc088b",44749:"f4ea5dc2",44759:"3b55f2cb",44899:"b317d2c2",44973:"c3d4dd3c",45019:"496b27d4",45113:"6edbbfd7",45140:"470c2def",45147:"cf43c8f8",45193:"c41fa3c7",45230:"14b749a0",45319:"504e460a",45324:"983c49fe",45326:"ef2d3bbe",45361:"07acb7e1",45534:"7057958d",45563:"7aad6352",45764:"92fdde50",45772:"f5697c9d",45825:"9c19c283",45897:"e5abafc7",45905:"24a0607b",45961:"186ffaf0",45988:"25fd6a0f",45992:"b31ac539",46027:"35bcc54d",46111:"a6102c09",46131:"0fbda58f",46135:"2921b160",46321:"ae3ea887",46362:"16c6479b",46436:"17cdf404",46442:"6d33c152",46463:"abea0585",46504:"b4db82f4",46633:"c89e102d",46671:"d4f76f8a",46672:"913473bf",46683:"86a45d03",46721:"019ff31f",46728:"e9b1c5ff",46857:"0d2ced8c",46872:"f29ba601",46895:"8a6b16d1",46962:"a4c79d82",47044:"8c8a1b21",47097:"002bc6c3",47116:"3a094839",47121:"187c7819",47173:"fd70a575",47229:"26d842a4",47299:"0f50b506",47320:"84668085",47331:"8d4f27de",47343:"3a942a4b",47417:"f740f08d",47481:"cc13b003",47506:"70202892",47726:"aa10f317",47744:"f82f8fc7",47758:"4800adc7",47807:"68644a5c",47817:"cedd1537",47881:"11335cff",47927:"0b5d10cf",48052:"ead7c6c5",48165:"f3da620a",48205:"a245f384",48221:"cf3ea1b3",48244:"2b87d40c",48334:"6faaff40",48392:"652e31fe",48513:"b1af39d4",48589:"a677fd58",48856:"b441683d",48900:"860a4b00",48944:"10ff2f9e",48983:"9f87a2e8",49032:"63822609",49209:"9c37be12",49364:"36cf387d",49534:"375cf737",49710:"35ae06a7",49769:"7f3fc104",49815:"85c6538b",49854:"61770aff",49868:"bdc683a8",49918:"ad4458c3",49989:"a266e484",49999:"51b18234",50088:"b3102cfa",50094:"4c23efad",50418:"87b68c0c",50435:"72eaf435",50507:"76cc8c71",50519:"e82d6468",50556:"419deea3",50581:"0c32cc26",50627:"ee02cd8d",50695:"0ec2842b",50736:"1629e518",50760:"e7f781fe",50887:"43f2c27a",50913:"86cfb1f3",50940:"e399c16a",50961:"c049d1a5",51083:"7c870bcd",51141:"4db6b46e",51318:"2dae4d39",51354:"6b02f29f",51376:"c0e09aa8",51377:"024d3cfb",51408:"5b068589",51418:"ff4fd1fe",51421:"53b8b68c",51462:"69a806b2",51483:"2445a4f6",51582:"fb0b283c",51588:"a86052be",51602:"b451c47e",51613:"3513c821",51721:"5cfcbc4a",52004:"243e1aa5",52035:"a5587c17",52148:"cc767227",52175:"08a2def6",52253:"4928fc9a",52419:"a95af1d1",52424:"f164a2ab",52483:"fa63ef57",52494:"d359e84f",52555:"c94282a7",52630:"a9659e3a",52634:"5b99b33c",52662:"4f204905",52750:"cd8139a0",52771:"f3fc8e12",52796:"a5d0fb0b",52860:"f4ac5bb4",52942:"66141af6",52951:"711418c5",53030:"f0eb40b4",53061:"799af27b",53105:"1c527da1",53177:"6c3a7791",53186:"1aafd680",53272:"a5794e1b",53302:"799aaf41",53445:"02a00dff",53513:"f71cc0da",53581:"2df938f1",53607:"cb69f870",53724:"0de53176",53820:"e1e1ee0b",53842:"ebd4af83",53850:"23d160f4",53870:"a6ce6c7c",53907:"499e2cf7",53910:"88dc7309",53912:"27c3c53f",53978:"88ce50c3",54007:"0421e0a9",54146:"4f222777",54169:"96bd6cad",54178:"3701ad78",54203:"cf4269e8",54209:"d09bb2c8",54307:"d49028b7",54346:"acf25e00",54376:"41bcf99c",54448:"47192fe9",54458:"94d7d3e7",54462:"1f793dcd",54502:"c41f72dd",54690:"4a946c88",54728:"0c47bca2",54733:"79771b27",54840:"06949243",54855:"35ef892f",54996:"b1763e4d",55089:"f67b0651",55100:"c7a6b45b",55156:"ee8eadd1",55172:"054798da",55181:"b66921af",55241:"95c98478",55254:"06706180",55354:"5dd9d23f",55378:"c44c3695",55419:"0f8250bc",55519:"eddedeac",55528:"4b46a944",55624:"5553d58b",55821:"939aa008",55829:"17f18b1a",55840:"cb063a08",55842:"0fe8dc7c",55939:"bf366727",55956:"9331789b",56046:"abcaa250",56076:"1a56f82d",56136:"72658065",56218:"04e7f353",56225:"51aa4460",56257:"fafc05df",56331:"bf8000e6",56335:"1cd6ae0d",56361:"3971c549",56433:"8b1a3f11",56481:"c3f8883f",56486:"3dabb237",56498:"525a77c8",56543:"a22841a5",56632:"c24c4af3",56783:"6e43d679",56852:"624a4db7",56862:"01a5c9b0",56914:"6ec1fa93",56959:"27eadd2c",56970:"22b0bc43",57013:"cf1b086b",57038:"70d7c468",57050:"9445fa4a",57119:"eb69ad4b",57137:"f5e83599",57153:"55af3da5",57194:"50aa6023",57221:"396dfa07",57282:"4b7b77cc",57331:"4e7441f1",57455:"5c02b132",57529:"df14b74c",57565:"d048ecf8",57648:"12550bff",57669:"d2c7a18d",57695:"468159e8",57775:"7320856f",57820:"0c89951b",57830:"ee3f26aa",57834:"36f64875",57923:"a85a111d",57982:"d472f987",57997:"3beef18c",58009:"dfe2e175",58013:"fbd6b53f",58018:"3ff0bcb4",58034:"4a8cde29",58236:"dfc5eded",58376:"2c2e12db",58441:"821080ca",58443:"53d82d0c",58449:"8967ef45",58583:"c7f9cfdf",58585:"8c97c045",58598:"3fe6465b",58634:"0867c4d4",58688:"d493e5b7",58812:"3d55d18e",58945:"edbc7218",58989:"794cb81e",59045:"3c616dcb",59099:"69ed0e83",59137:"06926336",59206:"30a5f1bc",59262:"50a8224c",59360:"0da3c922",59659:"51331681",59711:"be05886a",59773:"f79d979a",59973:"0106dbaf",60210:"1cbe6365",60304:"75fcfcf3",60503:"c326100e",60615:"afff6714",60686:"471f457f",60699:"80c2298d",60708:"6b1c9f7b",60843:"a89ccb80",60862:"50d19610",60933:"8c5d5b3a",61096:"9fc1e96d",61134:"5b267ece",61143:"2a7708d1",61151:"47b88b99",61196:"c288934d",61235:"b33fdc04",61400:"2bdc8c3b",61401:"e56e359e",61420:"6b52d8eb",61467:"e3e48826",61500:"ab7da824",61577:"fa570575",61609:"cf6a1f37",61664:"12c6c1f1",61864:"950d031a",61869:"de0d1909",61875:"c1e2efe7",61905:"a832d6a0",62013:"76cb12b4",62026:"32c70b0d",62033:"e5c19d1c",62114:"f7aa51db",62138:"90162df5",62229:"c45649ea",62253:"e0c4987e",62430:"89e02779",62508:"e82632dc",62793:"98ce9c4a",62847:"fc7578e1",62901:"e446ca2e",62959:"917b4db3",62972:"ca65ebd7",63006:"e92277c3",63010:"55fa2861",63047:"818327f3",63167:"e975efea",63199:"442cb49e",63317:"c0a37544",63373:"73373f81",63445:"55b6480d",63593:"8186a5b9",63602:"3c936f08",63612:"01f0d3e6",63615:"77fb43a7",63635:"b31cd4ce",63736:"6ea3b924",64110:"35bb8da6",64147:"d2a2a226",64153:"fa6798df",64342:"23f33100",64417:"640dfd3c",64495:"3ee2c89d",64603:"27c68f0b",64615:"076bd5db",64752:"0b9dafc3",64761:"e5da804b",64797:"e85d4510",65014:"95b865e8",65125:"dfc045da",65194:"3490c583",65284:"e70996e4",65293:"af9d25e2",65340:"ac85b7d2",65455:"192751e9",65501:"2b8fffbe",65552:"aeef7957",65593:"8eaa1b71",65633:"1aa429dd",65664:"eb5c4980",65795:"8deb4be3",65957:"99e5aedf",66061:"5dbe4738",66078:"8e44b6ac",66106:"9efdbd30",66142:"bde7f7f5",66157:"8bff747f",66238:"6ef0c3ca",66262:"e298c47f",66425:"dbaa79da",66473:"6e820866",66541:"cfe0db3a",66693:"621a950b",66697:"565c52a1",66733:"77484279",66775:"23cc94a7",66780:"319e0dba",66814:"6c8a2c04",66881:"951e8508",67054:"a932900f",67079:"a12c681e",67098:"6932e51d",67121:"e6cd005b",67142:"35e697b8",67280:"f094e186",67460:"36fffa96",67536:"60668343",67605:"04f54d0a",67677:"60020342",67681:"65a231de",67751:"93edf0eb",67782:"9b200696",67789:"2d62a10d",67812:"87d03c9a",68056:"51207cb2",68070:"838a69dd",68304:"e3c6788e",68328:"7c9a3e6f",68571:"6697a897",68578:"d6111468",68619:"eac1de51",68632:"b1960cec",68714:"ee9c06ca",68837:"8577e4ee",68900:"de3041f9",68982:"d4d388a0",68988:"b579c02d",69039:"827611a9",69082:"8acef246",69128:"386ea0a3",69195:"c7a78436",69278:"cd69a2d5",69309:"230beaf7",69412:"8ff54072",69646:"2af1f7cb",69803:"5aca47cc",69889:"b6835996",69953:"33a5251a",69981:"77a77c26",69984:"d90fb706",70035:"0e903fd7",70062:"3a6569d2",70113:"0cbaf6db",70206:"6b2329d8",70220:"3537f7dc",70224:"55b64b12",70401:"b3ff3c22",70405:"28bcf09a",70409:"3277c0ae",70447:"43db58d6",70459:"90356571",70558:"6d04ebcb",70581:"f90ae75a",70590:"f1d04cc9",70608:"08cf575a",70629:"f719c882",70829:"bcb7aa2c",70929:"66cbddfd",70940:"d764667c",71036:"ce4acccb",71058:"6d13cf08",71077:"f425fbcd",71160:"f884aad5",71294:"acc94dc6",71325:"d09f83e5",71493:"01b27a06",71515:"73ea1249",71546:"07b738a8",71643:"e3978614",71698:"c0023121",71742:"c0777cf8",71754:"03281959",71790:"37762d3e",71806:"504845c3",71861:"98d3b2e0",71899:"bf46ab98",71904:"fdd59bdb",71946:"3ea62be5",72092:"3561088e",72112:"37eef953",72257:"547bef09",72265:"c05c620a",72299:"879108ad",72339:"20aeacff",72343:"08d3970a",72386:"46dc2493",72429:"f39d2709",72528:"bcfd8236",72588:"d120183a",72596:"53603836",72736:"644b62aa",72811:"4543ff35",72900:"f744479b",72930:"e240138e",73019:"9e82ee09",73042:"fe988577",73057:"9561a9ea",73059:"da15b51e",73066:"37d82ced",73079:"e1a430e6",73164:"d58e201c",73331:"25bd6f8f",73356:"05bf7730",73424:"4be2129b",73428:"82d0db5a",73485:"1378cbe6",73634:"c30ea1bd",73778:"31aaf730",73844:"b5181d94",73874:"64d46886",73875:"2f399000",73915:"44f2a823",73916:"150584aa",73917:"35fcb46b",73968:"50a74e88",73988:"96766f5c",74011:"e92380c7",74236:"843a91e3",74274:"e4acee56",74285:"6eeef85e",74300:"e2eb7c55",74347:"8116597a",74368:"8543c95b",74722:"5e502850",74760:"6f9e68e3",74824:"e33ca4df",74845:"c60a8b5f",74888:"4efc14c7",74928:"e6761322",75074:"e69e47c6",75113:"87052d73",75122:"9e3dc41d",75135:"f568edb6",75157:"8974342e",75324:"2da689ec",75347:"e2bf34ab",75405:"ee7e9aaf",75425:"5c1961e8",75476:"5e74b485",75500:"06974607",75519:"13838524",75538:"79bee254",75553:"f4e6d415",75591:"658e9b1a",75661:"55f74f0e",75854:"14841acb",75870:"4137b67c",75882:"ca14bce4",75904:"70dc681c",75965:"fe6662fc",75998:"d7d8fc5d",76073:"3b64ec8d",76093:"9e2f7d4c",76197:"3f88b4bf",76304:"7f0857c8",76430:"8ea36025",76438:"9819c3c5",76511:"2daadcec",76638:"8aae09a2",76658:"9f8ed734",76676:"72103045",76713:"9f66ba36",76773:"c2aaa834",76907:"61ff7ea9",76959:"cc339b1f",76968:"4a88076b",76970:"7bacbe9d",77042:"d4f006af",77079:"395a824a",77083:"3063dd5b",77089:"62ae8d84",77148:"26f7ba79",77230:"bcc399c2",77268:"52c01437",77298:"80976d9b",77325:"fadcba59",77342:"b3a7e6dc",77419:"fb0f24e5",77423:"f4646364",77549:"8ae6499f",77682:"4c083605",77755:"50556bb7",77780:"02bebe17",77862:"e5bc0b08",77881:"08112b76",77919:"478408b5",77943:"7e9baf37",77957:"6ac4a25e",77970:"636cc30b",77971:"7bcba202",78028:"69237608",78055:"57c3e5e4",78189:"ac826ba6",78226:"514fd9ff",78231:"a6bb4069",78446:"fc37276b",78500:"7c8e2e72",78600:"01ea5385",78800:"9f4c4209",78803:"a7821457",78950:"f7696b79",79048:"3279ae6a",79101:"2319f882",79143:"45a7c4cf",79160:"f867437e",79204:"10fd2df0",79241:"d8ed61f6",79255:"c83f14eb",79293:"6e938818",79345:"bcb12bcb",79524:"2cb4986a",79528:"cfffc12e",79678:"c0a09df8",79694:"d0584ba0",79768:"70b418ce",79827:"855f29c0",79863:"da23cc65",79990:"19296ab9",80005:"c296ea21",80096:"c6b7e386",80130:"35fc0d3f",80223:"91e4c9ca",80247:"e85ba095",80267:"03298066",80323:"11be3ae3",80417:"e12d1330",80426:"58eeb6a2",80454:"6100bad7",80527:"28e00871",80626:"c07f95f1",80705:"2925661c",80753:"b28e8dab",80957:"6e0974c6",81069:"409e7458",81193:"fd26e284",81271:"3ca92edd",81300:"45aea0cb",81310:"579cb04d",81384:"903cd144",81453:"0c696a30",81661:"9490dd03",81841:"c036d70a",81946:"9561fc56",81957:"460bb8ee",82002:"1adb7e4a",82123:"9fd07b86",82229:"c2c9fdb8",82309:"a06feafb",82353:"3722fa4c",82368:"4f440425",82390:"c263d2b5",82447:"abcccfe9",82478:"a10dc83c",82591:"ee084f9f",82721:"a1825701",82888:"84f25c33",82950:"95385fba",82965:"fa63e70b",83161:"b421302f",83188:"e4a7ef34",83223:"8a2eb5e6",83504:"108181d9",83559:"9e29363b",83678:"9394877a",83698:"4e9df145",83734:"fe8f6cc4",83758:"9d5a9688",83783:"04930936",83859:"fb486daf",83899:"5df0520b",83917:"ee0c565b",83941:"860122bb",83972:"f07eb691",83980:"6800c1c1",83988:"288865ac",84009:"bc2754d6",84026:"570009a4",84043:"a3c34854",84147:"7c8999bc",84184:"b5fe6378",84230:"1cbce941",84239:"3c53cfa4",84595:"0fb792a7",84670:"971977c7",84743:"075d48bb",84769:"50080aae",84824:"9b8e12f6",84827:"d2abc415",84844:"3c041672",84846:"1c1e8102",84879:"1030eabc",84894:"7674bc41",84910:"099d04a3",85015:"f1cddda1",85024:"91f0df82",85110:"776ce2d2",85186:"751ebd35",85196:"473702bd",85454:"8ca22e9a",85476:"bd8730a1",85505:"c6eeb6ee",85531:"a2be7b92",85650:"7a08ea23",85686:"bd15b04e",85870:"30d8b5e0",85885:"1e323564",85891:"e93e76a8",85994:"6cbbe5fb",86166:"1b2120ee",86207:"74480c82",86248:"26f63bb9",86458:"a535e6a3",86463:"8284fa64",86464:"d51d6868",86468:"e266b506",86562:"2ec42ba9",86610:"2cb95673",86719:"9c66ca1c",86727:"e5816299",86764:"50646fd1",86886:"cd59a166",86890:"327d891b",87101:"48d82db9",87106:"ebfe0ebc",87127:"226d0222",87146:"dccd1423",87201:"2d212fd3",87203:"f1f5b592",87222:"9ef85b23",87227:"0e50ab80",87237:"c4c67559",87406:"aadda6cb",87437:"05e6a13b",87613:"a02c9474",87627:"b9af98e7",87838:"d2a135ad",87889:"94150d27",87899:"0270771f",88183:"8f66f8c6",88272:"7cacc6a5",88277:"cd854106",88360:"5b2c1e90",88428:"b8699a31",88441:"f19e5d84",88537:"e75caefd",88618:"e0d3f479",88639:"cdb68f1a",88751:"2b92e290",88759:"b3223334",88863:"4080e63a",89012:"ba2339ca",89061:"b5c651f3",89062:"014a0c9d",89074:"0d9aad3e",89094:"187796a8",89331:"14233065",89344:"dc6b07be",89408:"fc875389",89420:"c9ddb525",89449:"2519e76d",89610:"279b4958",89624:"59f13538",89629:"ebcd187d",89666:"842f58b2",89717:"03ef2ee2",89749:"7b3f315b",89833:"a8c6febb",89838:"a6c476a1",89885:"7b914ea9",89903:"75152cf0",89982:"d0c1fc96",9e4:"40f09738",90056:"a8839541",90197:"914b65c3",90227:"a582bbf4",90329:"172d3f49",90411:"1c428e81",90446:"beee927d",90484:"c47ad6aa",90529:"7ed7b881",90562:"a05daa7e",90714:"93be768d",90849:"f8efbbe3",90881:"2eae63ff",90890:"91131a7f",90906:"5367d6ab",90936:"d0d06df6",90940:"6ee1a63f",90987:"9af8e766",90996:"1741722d",91026:"fc633d47",91110:"01749fcc",91167:"c40907c3",91246:"a16922fa",91357:"0a0aabcb",91359:"9435b847",91515:"e9382f0f",91564:"91e06b0f",91591:"dc7e5c83",91599:"1fe0bbd9",91665:"2be8c4bc",91711:"e5ff9ed4",91760:"2fb59c36",91806:"fd74331a",91810:"9af192e1",91889:"a5b5cde1",91919:"875d7c5b",92006:"8d450189",92051:"1302fd21",92106:"1768bf30",92272:"105a783c",92339:"95248522",92362:"e436ef5b",92378:"381818f2",92582:"f40b8f1f",92734:"d84ca24c",92811:"afad22e4",92828:"2b75fa70",92839:"2cb7f593",92843:"a2752a88",92855:"7ca5a816",92892:"925901bd",92983:"e362a7aa",93066:"a4782032",93096:"926cb9a7",93281:"ab2e6155",93305:"d856a18a",93379:"1a082f7c",93406:"836f7c49",93434:"4526685a",93487:"9647daec",93499:"09d8e697",93517:"71dd56ac",93554:"fb842203",93565:"96467c08",93650:"31fa60d0",93751:"ec827f58",93766:"a4fb3ccf",93770:"0fa7d315",93984:"1ed5f792",94059:"1379cd9c",94153:"3f9c31ee",94191:"903b9c34",94442:"1cac9a46",94499:"5db7add0",94530:"593f6226",94622:"8b50bee0",94654:"2d0b8edd",94744:"999bf194",94896:"0e98c2b2",94952:"99e92a6e",95027:"6378e8eb",95032:"8aad97c7",95110:"41743e2b",95192:"fd90adc5",95216:"e678750d",95239:"aca59460",95297:"7b02bab6",95342:"4bb438aa",95355:"36b5d2a8",95372:"59946b4a",95526:"8ca1a7d6",95769:"54ea74cf",95882:"39dcbf54",95986:"e7f4b197",96014:"bebda8f7",96097:"1ffdcf48",96159:"d86fa332",96168:"e723ebec",96285:"eab291e4",96298:"db392dc7",96316:"202cb3ea",96346:"4a45dccf",96522:"2c4a7a0d",96616:"38563dd9",96625:"3e9f087c",96660:"4b81afbc",96852:"db313614",96855:"7da8459a",96884:"5b382502",96887:"506fcbd5",96898:"9f30c215",97074:"85c86f19",97104:"929b1956",97118:"83851a36",97123:"164b8bf0",97403:"9f025460",97409:"867d40f2",97431:"a7f57014",97525:"d21218d3",97660:"217833a4",97728:"2ab745ab",97768:"af57d25c",97783:"807d73b4",97798:"2e4313c7",97800:"35d822a9",97854:"c928033d",97930:"5889664a",97971:"4f9721cf",98057:"b0ef1258",98058:"a5558109",98106:"5c5700a4",98263:"19294cd3",98264:"fcb061c0",98312:"8e1f2212",98324:"a5ac9d4a",98358:"8bce7cf4",98370:"8b52d71d",98395:"97da4af8",98523:"854bef8b",98612:"79d6ba63",98690:"babac225",98901:"301fbfbf",98961:"75c483d3",99032:"53f651e0",99148:"7e479bf2",99185:"cc32e5d4",99203:"05fe7e15",99249:"c6c4221c",99257:"f9887d18",99273:"4e5e8c37",99434:"01edac03",99462:"944764dd",99541:"b49080f2",99700:"96f75d03",99719:"0afaf755",99720:"3cfe17ec",99790:"b167e7f0",99801:"102bdc13",99920:"a8b37357"}[d]+".js",r.miniCssF=d=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(d){if("object"==typeof window)return window}}(),r.o=(d,e)=>Object.prototype.hasOwnProperty.call(d,e),b={},c="react-native-website:",r.l=(d,e,a,f)=>{if(b[d])b[d].push(e);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var c=b[d];if(delete b[d],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((d=>d(a))),e)return e(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=d=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(d,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(d,"__esModule",{value:!0})},r.p="/",r.gca=function(d){return d={13766180:"84595",13980018:"9367",13989100:"66814",15800944:"72736",17217875:"41093",17896441:"18401",20144648:"5032",25524074:"21440",27033360:"87237",30138938:"26506",33124494:"77419",33909044:"81841",35024544:"8372",37880922:"97104",38755343:"14833",39100033:"7034",39254045:"9105",39991005:"26843",40984471:"67460",41988923:"47097",45568034:"7082",52156499:"5800",58869656:"42038",65200372:"84846",65428859:"33296",66494347:"89094",68381642:"65795",79448688:"61401",80036715:"1531",85431298:"20723",86316871:"11279",89270831:"17763",89866037:"81384",91695048:"81453",95722794:"99720",99403472:"31283",e053db0d:"38","319411a6":"55","89bf39dd":"354",d64418bf:"378","51b5d68d":"648","087b7d76":"686",c8899d24:"870",b196f212:"872","6aeefb41":"1039","9cdfb8c3":"1073","4865bf41":"1093",b9361f7a:"1158","8800e804":"1308",fc260886:"1316","2827f11f":"1350","21d4bc0e":"1372","0ba118cc":"1482",d6342268:"1510","813ca450":"1520","4b4509e1":"1651","357d2506":"1727",beb3ac95:"1771","1d5130cd":"1786",f73e1de7:"1793","1c63adb2":"1849",ca213633:"1873","1705a2f5":"2016","5dcbc311":"2183",cc2c9ee0:"2197","0b3648c1":"2306","1237a0cf":"2476","0c9604fb":"2505","9ae78195":"2518","024e8286":"2520",f9922edf:"2572","6ed01025":"2772",b4f299c3:"2853","68ef1759":"2902","6de3d5b3":"2945",ec0858e5:"2982",d79e8bdf:"3034","2d554375":"3120",f78f0390:"3248","306d2344":"3249",db79922a:"3295","08a0614c":"3312",d1a27f99:"3330",d6c2ba00:"3377","65fb4e8d":"3425",c83604a4:"3446","6b49554e":"3489",d6811676:"3546",b29e94ce:"3586","7b20392b":"3738",fd5475e9:"3916","675ebcca":"4005",e5bf6a34:"4023","6b38eaf7":"4041","5799d0dd":"4097","33cddceb":"4558","7d8f16e8":"4642",d2174fb9:"4760",c38010e5:"4768","8585b615":"4781","8a049a88":"4812","9ae0af9f":"4866",db47402c:"4907","30c7ae5a":"4988",fbf58390:"5176",dc123d29:"5195","88f8cf7d":"5211",d60a7f72:"5228","23636f9a":"5293","94490ee2":"5373","8c2ad0ca":"5411",e6a6f3dc:"5421","3366e05e":"5444","6a0d7dd4":"5541","9ff7b4c0":"5568","3e1847f7":"5702",c06e8323:"5723",dbf7beca:"5759","0fb34189":"5868","12980e8b":"5910",b12657f5:"6131","3da7314b":"6204",ddd9a697:"6359","3f42c85e":"6741",e6b85556:"6775",a85d2d78:"7116",c4d886ef:"7125","078c5e69":"7190","157f3349":"7265","15498a1a":"7323",b5a7fd43:"7365",ab6173e5:"7489",ec0c998e:"7551",b7aeb43a:"7662","422866f9":"7684","46184ef1":"7708","7a693bfc":"7734","1d59c923":"7735","9cc3267b":"7754","38ed4955":"7794","85bac8ef":"7829","33c3be35":"8120","5d515b10":"8152","451a8567":"8220","535592ec":"8912","95a63350":"9001","03a32c63":"9004","3521e68a":"9132","0098ae6f":"9158",a992a0f8:"9245","937991a9":"9363",c99ef3c8:"9401","782ec3fc":"9410",bf1307fc:"9525","6b1867da":"9592","5e95c892":"9647","9a45f095":"9660",ac923fd4:"9685","801550f5":"9733",ddd72b6a:"10099","5331b8f3":"10120",e7d7dd9f:"10169","8c833fcf":"10219",a3f10777:"10233",de744a63:"10287","1e64aab5":"10526","06a38139":"10636",a6e22173:"10726","4f1e6f78":"10814","76e173fc":"10853",fcb6886d:"10900","45450b3b":"11198","729c0f86":"11268","321d4575":"11274",ac524e79:"11331",aa64b883:"11358","34eb68ef":"11396",d38055fb:"11474","3fb280d9":"11501","5530c297":"11571","1960ca85":"11698","1e909336":"12001",d76382b0:"12005",e595470b:"12054",cfa740c1:"12148","64c7b138":"12161","2cd87241":"12188","332e9e34":"12193","8c3ef24b":"12230","138e67e4":"12284",c42662d8:"12306","0091494f":"12442",ef7bdc3c:"12532","93d55f6a":"12588","3dd00d0d":"12594","12e7cb89":"12620",ab50fe1d:"12869",f9a1286e:"12979",f0b7dbe2:"13283",cdf27114:"13285","878ba96b":"13308","1d73041c":"13310","49c13a5f":"13319",b2115c5a:"13335",e7e29711:"13388",e3bb5330:"13458","91336b3a":"13471",b26eaa28:"13472","38d612cd":"13532","6fa2d900":"13659","4e3142d4":"13724","52633b27":"13821","448d2e39":"13828","416cb7f4":"13960","29393bfa":"13976","9863d968":"14050",dcf691c2:"14065","6cdb7f96":"14074",b4c1c629:"14145",edeb7ca8:"14164",d1d509cf:"14270",be26c63d:"14318","61182cc0":"14343","8d5eac66":"14533","1a297150":"14565","1cd20a8e":"14581","7d092cc9":"14606",d9791473:"14615","9dbcff21":"14638","8c1b243a":"14663",e7700b5c:"14680","3753089a":"14739","8c1ce502":"14748","24ac12d3":"14831","5db99c8c":"14880","69697c25":"14934","18bb110a":"14947","0b3b7529":"14957","056867f4":"14999","04e1afbd":"15006",f1d9f180:"15034","1a7fe871":"15129","8c2e6727":"15215","5771157b":"15286","3dfaf92b":"15494","67a43a2b":"15549","64db8c83":"15627",a679d266:"15640","426d37cf":"15718",f8f6f210:"15722",f1ccaf05:"15838","834474bd":"15875","9da46a46":"15906","2e831bbf":"15978","8dd98cd6":"16031",b29ca04c:"16107",b4a9e2bf:"16178",bbc0c093:"16231",bc684a49:"16244",c1e04fa9:"16280",c4d53b4e:"16321","397ccaa2":"16420","94bb8da9":"16530","61df34c2":"16644","41badbb5":"16700","12e81c73":"16943","347319a3":"17082","56376c93":"17233","05cf0320":"17332","0dd9911d":"17439","8149c1f6":"17447",ffd1aded:"17502",c7b0479b:"17541","5f8ce4cc":"17644","647c66a2":"17810","6ad22d2d":"17822","7ba605c7":"17826","79408a0e":"17927","4b962370":"17952","3a5cd9a6":"18211","583c7938":"18231",c41cb816:"18241","9e54149e":"18279",ce798db4:"18357","498677a1":"18376","15de7ec3":"18418",f6364ade:"18432","0420286f":"18483","70ac8688":"18484","75b8d183":"18527",a4c399e2:"18561","3b1837b8":"18563","7f091097":"18590",f38a19d0:"18701",f68825ce:"18796","634e5b87":"18873","9714922d":"18923","57589dde":"18950","23b2ec0b":"18984","662ccfa7":"18989","8f0d6e5b":"18991","9ddb20fc":"19006",e590aaa6:"19081",d3fd3247:"19106",b7257cf4:"19141",b4bdd337:"19182",eeccbb9d:"19184",b08e6fd8:"19200",de28e96e:"19257","2ff152fe":"19258",cf01b66e:"19322",a911dfe5:"19335","5dbec22c":"19429","8c81d4b1":"19534",d0603a07:"19634",afff73c8:"19693","07fd7997":"19694",eb5418d6:"19736","4cbc9dd4":"19974",ee872789:"20226",a7da7bfd:"20279","3560f547":"20313","3c18d05a":"20320","9376381b":"20388","7da464c5":"20523",ad5d8c26:"20592","30bf7e1c":"20594","45f9e45c":"20658","9c131906":"20731",a39c2644:"20739","3a6fee66":"20745",ef80f5d7:"20818",a2b80c2f:"20831","5221567d":"20857",aa88182b:"20910",aed1fdfa:"20953","7c650e8c":"21016",eb38f5fa:"21023",e19eb737:"21100","1ac276d7":"21154","09a9e026":"21203","23ee098c":"21306","06a3b629":"21314",bc659752:"21376","34a3a287":"21608",ae137543:"21922","4e1aad47":"21932",bf19308c:"22019","0a196f91":"22022",f6dc595b:"22100",fb71e943:"22106",f1129715:"22155","6062b3b1":"22227","5510f1b7":"22252","8b513d12":"22331","2cf1bed0":"22574","3d37559d":"22629",ee801bea:"22646","4396b59e":"22736","8968fb7b":"22843","20c45178":"22903","7c4f02d8":"22905","260634c1":"23008","623d7060":"23077",ced1c827:"23282","20a41275":"23287",b7112064:"23596","3b17f5a4":"23620","17ec9470":"23685","28b6b6ba":"23694","043f5d57":"23699","782d5715":"23778","111e950a":"23800","50e6032a":"23877",bf77c5df:"24051",d1a6a78e:"24154","9ec17576":"24162","1de587e0":"24262",cf645fbf:"24475","09de660c":"24612",ef084d6b:"24694",c721bd5f:"24869","993625b5":"24886","67574dd0":"25134",bd7672cc:"25187",cbb92f95:"25205","46a5adb6":"25248","07a91882":"25287","114e0000":"25580",f7874cab:"25747","0a0bc396":"25823","3f78ddfa":"25846","06cd84e5":"25866","39d9d3b1":"25890","3163195d":"25979",f135686d:"26011","30d73f3c":"26016",bae45495:"26018","95bb95fe":"26112","51d1e75a":"26130","2a7802e5":"26185","500270fa":"26220",f26b69fd:"26246","929fe6ef":"26651","7b293dc3":"26660",e264076a:"26844","2845b5fb":"26851",b36fef1b:"26862","08e13917":"26881","626019ce":"26883","039b8e3d":"26901","06dba648":"26926","9cbfa21b":"26983",f64ddea3:"26994",a32085e6:"27001","6ba5ca07":"27162",bd5fb03c:"27236","0bb0f3cf":"27281","716c2719":"27305","7e185b3a":"27413","32c64886":"27517","75ef737d":"27561","8ede17c4":"27598","614f9872":"27626","623cc3b0":"27677","134ae693":"27743",c9b36244:"27770","8bad6f6b":"27890","08d358f5":"27964","6928d3e3":"28049","713f446b":"28084","9644b941":"28192","2549e033":"28232","2dca9575":"28239",b1c5bd19:"28260","0cf75f61":"28295","87119bda":"28314","91786f2d":"28350","9240dba7":"28368",c737572b:"28443","6c55ddd3":"28459","38c36092":"28467","1ea42534":"28484",bc22aba8:"28596","486059a3":"28615",a3929b5f:"28874","93d5903e":"28925",a5c5fcf6:"28932","717ea6d4":"29022",c8250b16:"29046","42a3ef15":"29070","9ee19b63":"29099",e43bbd8d:"29269",ea9d8190:"29360","674d6b73":"29388","3640f479":"29406",ad1c6c85:"29516",edaa9a97:"29532","5d7ae6cf":"29646","80f530aa":"29683","4976484d":"29689","031d8f0a":"29796","45209ae6":"29839","3d33c646":"29973","326739da":"30120","4a5a3e4f":"30174",cbe6a4fc:"30179","9cae6ca6":"30217","7c6c7a0a":"30453","82c71751":"30481","1821187d":"30497",e81ab398:"30508",b81226b7:"30521","6fed3a2f":"30556","2338a9e8":"30738",cdd4e3f0:"30748",f7de2b66:"30751",de334689:"30755","5487638e":"30835",f7e8b9a1:"31040",e24ac2b3:"31181",bc26c448:"31203",d29b4af3:"31212","4084a0d2":"31218",c10d4556:"31251",ffe4f0b4:"31268",c935642e:"31278","3d6c47cd":"31753",a6a086f1:"31796","51d9b128":"31905","927c83fb":"31987","37d005cf":"32075",b2cfddf1:"32175",c50fc537:"32227","2003fdf9":"32243","6b8c6e92":"32318","2df7b45c":"32322",ab3c2611:"32394","7b907fd6":"32434",bc2f7794:"32495",c99c71a3:"32499",dbf682ac:"32843","1076b3a4":"32893","81dc996f":"32999","4eed3210":"33053",cf6e58a7:"33104","4104e253":"33227","6dadabbe":"33308","0199d4ca":"33440","1b274068":"33573","4f61d82b":"33602",e5a951df:"33615","74683f69":"33712","63c8cbb7":"33889","3b653f93":"33948",fe15004d:"33994","326a97e1":"34025",d043f0f1:"34029","6fd3f1bc":"34186","3070d3e4":"34199","94041cd4":"34204",eeeb5c38:"34345","155b8540":"34457",eeda504f:"34517","9a09606f":"34674",b9ffb51b:"34714",a7137c8d:"34725","36e03c34":"34784","18b93cb3":"34828","08ffabcb":"34921","4fb4e792":"34946","77b27fcb":"34957","4ffe34ca":"34963",fdb26c07:"35039","17a8dc81":"35142",ac6b3262:"35204","8a0c818d":"35224",eeead8f6:"35331",db66ee01:"35350",b75129ac:"35447",dba0012a:"35460",f156e6fd:"35498","5b3fb50e":"35571","56b30f1b":"35616","07f65d8b":"35693",aba21aa0:"35742",f5851674:"35753",c00af2b0:"35781",f84cf5bf:"35813","5fbe96f6":"35864",a728158d:"35903","4ea08adb":"36038","4b14b251":"36076","5e351f3a":"36088","1a9dbb4a":"36135","24e86038":"36241",c96104f9:"36291","50dd9b79":"36317","59d809ff":"36488","54708e5f":"36533","985e27df":"36573","686b0bca":"36763","226a5928":"36768","801384bf":"36775","9dc99f39":"36781","1fc8674b":"36800","039d54f1":"37163","42a13e6c":"37242",e95a72c7:"37262",baa9b3e7:"37312",a079babe:"37616","1ba86576":"37645",b24d9bb6:"37670",a4970bd4:"37750","6184db93":"37766",d0ef1249:"37834","8cf5de12":"37847",a27e6552:"37868","99cd3a09":"37889",fbc03c2b:"37988","97ba5e68":"38032","74f98b1f":"38102",e758129e:"38267","240f2433":"38387","16a62667":"38454","41b14717":"38518",e6b2312c:"38547","81d00bc5":"38620","9029660b":"38729","53331f41":"38817","07c0d8c6":"38858","69d614c0":"38872","62f145c9":"38973","9955d1be":"39149","4bac2214":"39246","8c28f592":"39360","068c006a":"39409","6a5926c0":"39411","8d2e0306":"39425","22fc99f1":"39455","04633a36":"39617",fb578f06:"39643","0ac6d6a1":"39645","5c50ab3a":"39693","5dfec97f":"39816","35d1b9ed":"39914","5629cb3c":"39940","66e1c749":"40018",d49333b1:"40226","432a68e7":"40253","2d74339a":"40348","26c5b03c":"40435","4e81c48e":"40603",cd3a106d:"40631","578ba53f":"40636","61baf4ec":"40677",cfde41d7:"40715","6323be29":"40919",af6afb7f:"40926","9a4e11a7":"41006","01fb1614":"41072","22d7af95":"41123","1ed4e501":"41126","0fc665a3":"41181","2781e23a":"41242",f14e55c8:"41418","47a28214":"41432",ba1860c7:"41535",a221c716:"41586","0147fdcc":"41593","1ea001ab":"41622",cab74b7f:"41675","12bf709d":"42048",b0ab0602:"42092","849a2d93":"42095",d301ca6f:"42113",dc1576b0:"42115","2066eb3c":"42158","1a49fe29":"42172","78b274e1":"42177",d09c12db:"42332",a7d1ebe1:"42369","9dc2e4c7":"42374","3d175bf6":"42463","5ac697d4":"42534","14d4a842":"42565","2cd4c511":"42568",c9eff2b3:"42607","67e697ca":"43059",b3fd545e:"43129","238efb50":"43248",c020d3f5:"43320",e4de30c0:"43325","25738e2d":"43333",a0a0a2ed:"43353","4cc410e3":"43530","8ae74b50":"43619",b4bb44c0:"43664","82fa5608":"43679",ccf671a6:"43772","1d6138da":"43843","0686000e":"43850","9d97f7b6":"43853","61474b2d":"43979","186a9ba9":"44024","49d40500":"44031","6a645174":"44085","2029ef4e":"44234","294e92a9":"44250","1778559c":"44252",bbdeca34:"44275","868c59c1":"44360","98f16971":"44436","574b16b7":"44441",bbd0c512:"44546","9aabffe1":"44562","4aaaccfc":"44671","0044a2c6":"44749",c3c09026:"44759","94687d26":"44899","4f3bda51":"44973",c050f0c1:"45019","3a3f3686":"45113",d5a6e29a:"45140",d480b873:"45147","19aaa7d2":"45193",f3cf0483:"45230",d28adcd4:"45319","0cb02a81":"45324","8e40a65f":"45326","98b25e1d":"45361","001dcd58":"45534","5e797937":"45563",c996deb9:"45764","1e70be21":"45772","7223e43b":"45825",b8d0a2d1:"45897","64df562a":"45905","4f1150eb":"45961","9e461bb0":"45988",f313a82c:"45992",b7799679:"46027",cebb851b:"46111","0b9b9699":"46131","48f8c159":"46135","74878dd4":"46321","3262a2f5":"46362","98721dc9":"46436","0c794514":"46442",a9bd4440:"46463",ed655da3:"46504",c6a04e07:"46633","08e1c021":"46671",de795cee:"46672","190f221c":"46683",a2490e07:"46721","98c3dfd0":"46728","491f04b4":"46857","4e090f01":"46872","87ab4d1a":"46895",af9b37be:"46962","04037fd3":"47044","9ad607d8":"47116","943dd7cb":"47121",b2516716:"47173","63600a6b":"47229",f068a30d:"47299","13af2f7c":"47320","12b28870":"47331","1534a170":"47343",d435efc2:"47417","8b188aa1":"47481",b42b2a17:"47506","5d9b0d6a":"47726","00b6ea12":"47744","6ca8022c":"47758","9b11a7b5":"47807","3370e507":"47817","79d149e1":"47881",d8d1979f:"47927",fdd91106:"48052","733b69e3":"48165",e4de8e8e:"48205","469a9a57":"48221",d3c1a4fe:"48244",b25f10a0:"48334","804c4949":"48392","6c54cff9":"48513","951006af":"48589","8052dbb2":"48856",a01fd1dd:"48900","12e59f4a":"48944","60e27521":"48983",f666756e:"49032","3bf70e45":"49209",b45ad73f:"49364",ae7a9ea2:"49534","3d512310":"49710","0a638240":"49769",b87ed5c2:"49815",c398a51a:"49854","2b7ed3bf":"49868","1448e88e":"49918","0cd05ac6":"49989","04cee9fd":"49999","2bf753d2":"50088",ded812ef:"50094",dcaae713:"50418","65456c03":"50435","7510cbdd":"50507",cbae671d:"50519","31dc03fe":"50556",a2ec8490:"50581","0327be96":"50627","01005a98":"50695","037bf98d":"50736",b63db1e6:"50760","2add6896":"50887","29cd52c0":"50913","71e3662e":"50940","16ee311f":"50961","28e9e915":"51083",e62508a7:"51141","2b43cbc0":"51318","6e6ac1cd":"51354","578f8908":"51376",eded264f:"51377",de8df556:"51408","24abcf9b":"51418","02ed4bab":"51421","338b3790":"51462",beab48ee:"51483","83b27652":"51582",b6ebe4da:"51588",f59aea7c:"51602",e7ea3ba0:"51613","99056a19":"51721",c23b0ee1:"52004","2c9ede42":"52035","1acbe180":"52148",ffb79954:"52175",ed4f607d:"52253",fb054755:"52419",d5499c5d:"52424","31cbe202":"52483","5f226e65":"52494","4576eff5":"52555",fd880ad6:"52630",c4f5d8e4:"52634","69f0ac79":"52662","356a0ac6":"52750","9b053948":"52771","68b823fd":"52796",c804bda3:"52860",fe826c2c:"52942","03d50046":"52951",e367aa8b:"53030",a8aa25e3:"53061","35b69d2c":"53105","5f3f388e":"53177","86c68e3d":"53186","1ad120a9":"53272","472ad214":"53302","57f3f140":"53445","1eaf0d5b":"53513","5af30f32":"53581",f31ddbdd:"53607","461c5b22":"53724",bbae08e6:"53820","4b1b6b6d":"53842","3760029d":"53850","3b9f8a02":"53870","7d1976ec":"53907","4cf604fd":"53910",c6a0cc74:"53912","9b9dc0e1":"53978","6fad45aa":"54007","206c5d8a":"54146","6f1bcaad":"54169","53bb3d97":"54178","1aab41e5":"54203",ea65614d:"54209",a2dc6bf0:"54307","061959ba":"54346",e21e838c:"54376",bc8995eb:"54448",ddcfb1bc:"54458",e6740c51:"54462",c0cfec7b:"54502","7960f2a0":"54690","5eaec2c9":"54728","0aa8e717":"54733",dd6d5ea0:"54840","4710ef09":"54855","97a57718":"54996","8a792504":"55089","7210b988":"55100","512830ea":"55156",bf718f16:"55172",a44d9688:"55181",b2622f06:"55241",a770fe3b:"55254","9006e630":"55354",df544d08:"55378","29e01d36":"55419","580ea038":"55519",d734f793:"55528",c20f03e6:"55624","92947c3c":"55821","7101161a":"55829",d56b8eba:"55840","2736e981":"55842","700c0943":"55939","694579f7":"55956","902a5db0":"56046","7374b7af":"56076",c95f38cb:"56136","75ebea5a":"56218","250b4dc6":"56225","1aa1a063":"56257",a2e66dcc:"56331","6efd9833":"56335",ca8b31c1:"56361","35c1434a":"56433",b9c445d5:"56481","5dffea44":"56486",d4077890:"56498","87dd242c":"56543",f71dfec3:"56632",e20ea0b5:"56783","23d8a97e":"56852","2a6f3007":"56862",fa11d8ca:"56914",e644f73a:"56959","4b97d39c":"56970","86ef1cd5":"57013",e0cb77f5:"57038","1d7f05a3":"57050","38290d37":"57119","811e7138":"57137",bc82dc37:"57153","08a5ab73":"57194","4a70ef18":"57221",e3874c12:"57282","1cd2432c":"57331",c31cb8ac:"57455","4d79d356":"57529","02db2b77":"57565",e26f611b:"57648",a6a87773:"57669","9eda2b4c":"57695","5f11e2df":"57775",bfa82433:"57820","68ed074c":"57830",b71414c5:"57834","4dfd395e":"57923",f6da0534:"57982",b698f5b8:"57997","276ccdc6":"58009","0ade90c0":"58013",c58d17fc:"58018",af8a22e6:"58034",bb898d9a:"58236",a3196274:"58376","727a66d9":"58441","062a5932":"58443",d2f06d62:"58449","22a05a92":"58583","2a0ad02b":"58585","6347278b":"58598",a43a81e0:"58634","7890cc65":"58688","9fd8720a":"58812","2548f5e5":"58945","7e4d0154":"58989",eb50cd7d:"59045","43abb1af":"59099",c7cd3677:"59137","27022ff4":"59206",d7165f5e:"59262","793d492a":"59360",eef85b41:"59659","76571efc":"59711",f35dcbe0:"59773","116594f6":"59973",fdabb8ac:"60210",f28bd0ab:"60304","0ed694ff":"60503","80f08778":"60615",b1228550:"60686","3804da35":"60699",cc087f33:"60708","36bb38e9":"60843","9090bfe2":"60862",abdaff06:"60933",ce6049ec:"61096","56b54d0c":"61134",f4870e22:"61143",b2e9258a:"61151",af992987:"61196",a7456010:"61235","90487a84":"61400","319045b7":"61420","4bdc1132":"61467",b0f4752e:"61500",e60b42c6:"61577","1483912b":"61609","14be3d02":"61664","2fc6fcbc":"61864","4ed22eea":"61869","7ff64393":"61875","6e9e7da5":"61905",ef017137:"62013",ab535e60:"62026",e2626cf4:"62033","2c1292e3":"62114","1a4e3797":"62138","293e43ee":"62229","7b7bbdc1":"62253","7b3388c5":"62430","1791f58f":"62508","75ec37d0":"62793","0a79c9a2":"62847",f622ad78:"62901","36778e0d":"62959","320ebc57":"62972","0296afed":"63006",de7e05af:"63010","9c354e09":"63047","36cc6e86":"63167","976ab885":"63199","402bdd59":"63317","67da8bf2":"63373","1f6bedff":"63445",cfc2f36a:"63593","3493d660":"63602",c8cf90b4:"63612","13ee8587":"63615","2547de89":"63635","5cce1ffd":"63736","17352c84":"64110",dccccdff:"64147","34db6793":"64153","20e9fe55":"64342","915f3d1c":"64417","0b139e7e":"64495","36fc15ca":"64603","0dc2c486":"64615","0181b3db":"64752",c7fc39e6:"64761",ebf19685:"64797","0d626c57":"65014","70a0ba6e":"65125","8f2b33cd":"65194",b8c8be29:"65284",b5813517:"65293",c86d871d:"65340",c667a225:"65455",f6d61436:"65501","83a785e6":"65552",c159d2a1:"65593",e2559165:"65633","7f2b816c":"65664",bdea594d:"65957","1f391b9e":"66061",f5bf0763:"66078",a7fd529a:"66106",dcddf26d:"66142",a743260a:"66157","97affa7f":"66238",ad4064bb:"66262","853aad93":"66425","3a0563f8":"66473","60eb9b40":"66541","8fa43a6e":"66697","41794b63":"66733",cd2e908e:"66775","9b60a6c4":"66780","8f5764cc":"66881","60d0d69b":"67054",cdf0b926:"67079",a7bd4aaa:"67098",af78357d:"67142",b6220ba5:"67280","2c2b467e":"67536","0747ea75":"67605","509d8239":"67677","3861ecca":"67681",bff0709d:"67751","40628e9c":"67782",ae6fccdb:"67789","9bf717b1":"67812","1404e73e":"68056","0a8cb4e2":"68070",e15e352e:"68304",c1467f4f:"68328","7f6979ff":"68571","33f86aee":"68578","93583d2d":"68619","7f6ca9e0":"68632","605b0891":"68714",fc751a3d:"68837","31b01d6d":"68900","345c2f79":"68982","56a727d7":"68988",c28f96f6:"69039",e711fdf3:"69082",e916fc52:"69128",d88eb93c:"69195","088c6538":"69278","6820c973":"69309",b233694f:"69412",fed8e900:"69646",a8687ac8:"69803","1741557d":"69889","02da5ab9":"69953",e71901c0:"69981",d816ab3f:"69984",c19ed1d7:"70035","97b28733":"70062","36107b78":"70113","6131ccf6":"70206","0a033318":"70220",b8796a33:"70224","78bcd1a8":"70401","21e474a0":"70405",a535188c:"70409","4f73d880":"70447",c958b86c:"70459","3701251b":"70558",c99653b5:"70581","55f4c5b3":"70590",bf4489ea:"70608","9c00ca68":"70629","012d05d8":"70829","0c5f8fb8":"70929","5e8e437b":"70940","3b6f8471":"71036","2092b488":"71058",fd0805d1:"71077","39ae1dcc":"71160","2ed06246":"71294","1f8182e7":"71325",c1220e0c:"71493",b15ec89c:"71515",deb2d893:"71546",f2b40bbf:"71643","572bad33":"71698","0b242e68":"71742",cf9d5ce2:"71754","601330aa":"71790","15c9a7f1":"71806","24e50fa3":"71861","877fc452":"71899",a6d3b32b:"71904",b4ae246a:"71946",b8cf7f45:"72092","9bdf7f32":"72112","285b3354":"72257","784fecab":"72265","73f011ae":"72299","618b84ef":"72339","9915efaf":"72343","531dfa41":"72386","78406dfc":"72429","1bcfa046":"72528","712603f6":"72588",c74f51da:"72596","71449ed6":"72811","5a35eefa":"72900",ff0316c2:"72930",d1ebdf95:"73019",f5d38d41:"73042",fa2e85d3:"73057","3bb14ef7":"73059","2ac0b4bc":"73066","36627b26":"73079",fb100ce8:"73164","6e5bc6ab":"73331","91918b05":"73356","717f9656":"73424","42dbec43":"73428","525fe6fa":"73485",e4cd52a9:"73634",cad34824:"73778","77f249ff":"73844","42b9625c":"73874","7600c741":"73875","0efc406b":"73915","43816d14":"73916","728d2d7a":"73917","4885913a":"73968","2581efca":"73988","3b3060ca":"74011","17bfe970":"74236",ea73ae50:"74274",d89c5153:"74285","54955dc8":"74300","8b30a105":"74347","450cda6b":"74368","3c68b9d2":"74722","6137920c":"74760","078a9b71":"74824","64187b62":"74845",af62122e:"74888",d695235e:"74928","149005f6":"75074",b591ae09:"75113","1cfe702a":"75122",d0cd4a88:"75135",d33531c0:"75157","73da224d":"75324","75e5d073":"75347","6f5989c4":"75405",e94d0088:"75425","1082d4d6":"75476",ce5cde8f:"75500","7d2cd00d":"75519","45618ae1":"75538",da5b456a:"75553","1836dca0":"75591",eb1e27c5:"75661","4ec5dc72":"75854","3c8791ea":"75870","15770add":"75882","437495c6":"75904",fe60c9cb:"75965","5bb745c9":"75998",d4be08e6:"76073","9a1f20dc":"76093","37ae9f43":"76197","54255f28":"76304","091cab81":"76430","2fb758e0":"76438","2ed989b5":"76511",c29853ab:"76638","1daeb507":"76658","243fbebc":"76676",fecf6185:"76713","76228cdf":"76773","8136ae62":"76907","71b28fa1":"76959",c759f874:"76968",ac5ffeb9:"76970","493c96f5":"77042",dbc6080a:"77079",eec26f27:"77083","2dc15feb":"77089","354394ed":"77148","127efe29":"77230","925bf856":"77268","0b447833":"77298","8af066b3":"77325",dae67a8a:"77342","9e0309bf":"77423","6e348b42":"77549","0667b750":"77682","85e970a9":"77755",d385ee25:"77780","2b53b872":"77862",b5352e4b:"77881","4d7503d3":"77919","698d87d8":"77943","09917fe9":"77957","47dd0419":"77970","162ee6b1":"77971",a7973d5a:"78028","0c2c0374":"78055","320b7954":"78189",fc04664d:"78226",f9ef2d71:"78231","487e8214":"78446","787d1332":"78500",e3800717:"78600",d5ca4adc:"78800","02309956":"78803",cdc8a01e:"78950",a94703ab:"79048","2b8d9243":"79101","207889a9":"79143","20da3b21":"79160","3e3c20b5":"79204","0d680d08":"79241",acac7935:"79255","27161ea7":"79293",b63e4b40:"79345","624f0d9f":"79524",a67fb928:"79528",db5319b3:"79678","6c509596":"79694","278d928c":"79768","0d01e3af":"79827",a6efc48a:"79863",d90455db:"79990","8d1d2f63":"80005",ed95a3f4:"80096","6a58dac5":"80130",e0e92014:"80223","51fb9cc7":"80247",a2e2213f:"80267","55b63d4c":"80323",e760573e:"80417","86abb156":"80426","670e8940":"80454","4b916891":"80527","2954fac3":"80626",c608d889:"80705","2a144c3d":"80753",c141421f:"80957","31aad40d":"81069","1d104e2e":"81193",ab4a0273:"81271","821dce8b":"81300",f115b6dd:"81310","1961b513":"81661","2db8c4b6":"81946","3efc55e6":"81957","389fb278":"82002","98cc0cdb":"82123",f2d290a0:"82229",d05ae094:"82309",c13e7fb3:"82353",bed8702c:"82368",d09b6b40:"82390","7a423906":"82447","1658c756":"82478",d00a879e:"82591","0a489978":"82721",d788b4db:"82888",c09a614e:"82950",f8b1a534:"82965","27caae05":"83161","787a5247":"83188",d771e5a2:"83223",c2a87ab1:"83504","117d6e39":"83559",b8509072:"83678",fc8b2c25:"83698","5386bed0":"83734","8c1e11f0":"83758","24a9a59a":"83783","8d3fc5c6":"83859","0bcf800a":"83899","0bb26877":"83917",be7b5d27:"83941","1ab5a786":"83972",ec45d43c:"83980","79829de9":"83988",ad1533d5:"84009","4dd33177":"84026",c77f28be:"84043","7fe5042c":"84147",a74fb6d1:"84184",f0e049cd:"84230","292ebda1":"84239",f1dc25e1:"84670","38eee5c4":"84743","1a44db19":"84769","4dfd0a79":"84824","5a876e59":"84827",e8780874:"84844","2cf74606":"84879","911052af":"84894","260946d2":"84910","08c15c4c":"85024","3ffb6394":"85110",c3592a68:"85186","50f74dc8":"85196","9787e2b5":"85454",d837d0de:"85476",ab51e9a4:"85505","31e0ef60":"85531","704c7051":"85650","8c82037f":"85686","38b28ba1":"85870","4d9bd555":"85885","6d3744bb":"85891",eaf9832e:"85994","25d2a069":"86166","49b8fdc8":"86207","7a6c553e":"86248",ca006c66:"86458","5ea6b885":"86463",b6fa087a:"86464",d01173a8:"86468",c64024bf:"86562",ad3b8188:"86610","73039b17":"86719","7a63ecef":"86727",ba2d52b1:"86764","28d3cf43":"86886",daf96af6:"86890",f9145531:"87101","475ddf72":"87106","6de08607":"87127","798845d8":"87146",eca1dea2:"87201",d8db4bdd:"87203","7fc59764":"87222","900a3533":"87227",e4160942:"87406","5deadce3":"87437","76e32d2e":"87613","1dfed3a8":"87627",b54696c0:"87838",a84ffbb9:"87889","95d3faaa":"87899","8f3faaa4":"88183","81bc0670":"88272","5036f758":"88277","20b2c2b8":"88360","4b5c0d4e":"88428","169f5904":"88441",c0db360b:"88537","8aeb1be7":"88618","3893db7b":"88639","147dc28e":"88751","79c31966":"88759","052da1da":"88863",e52f87df:"89012",b87596d5:"89061","1b602655":"89062","7bf84062":"89074",d480b2d8:"89331","3380ced1":"89344","051a0a0e":"89408","013c1bab":"89420","4f718585":"89449",e16442cf:"89610",b9e9b3a4:"89624","23909da8":"89629","8fc7f1ee":"89666","30fb9325":"89717","444ce9f1":"89749","898f93c0":"89833","7563de56":"89838","8041f9fb":"89885",c9fc4253:"89903",c57040ca:"89982","87d9fa95":"90000",dc64daf5:"90056","05e73bfb":"90197",f1b50ac4:"90227","3b6e9377":"90329","8da1edc8":"90411","590fe42d":"90446","2ac63345":"90484","69f236bd":"90529",d4d7e15c:"90562",efc55a86:"90714","0058b4c6":"90849","6eeffc01":"90881","01b58810":"90890","3468f004":"90906","2e44e249":"90936","13da317c":"90940","07660bd9":"90987",fdd518cf:"90996",eac5cc4a:"91026",d5eb11a4:"91110","777c6042":"91167",f59ee173:"91246","5aea82ac":"91357","08f736fd":"91359","4a860d8c":"91515","7a8aac42":"91564",b449eac0:"91591","58c4affa":"91599","69aee15b":"91665","39b57bd8":"91711",e980bfab:"91760",ed353322:"91806","0329a84f":"91810","53fa95c6":"91889","5ae09df0":"91919",e97c1fe7:"92006","0a35f6eb":"92051",da1cd4ff:"92106",a135050d:"92272",bc08316c:"92339",d91f58ea:"92362","8aa2fcff":"92378","428d4f34":"92582",a7719d3c:"92734","8cc7edc7":"92811",a3d50c6d:"92828",e23b750b:"92839",d9b20917:"92843",bba11647:"92855",e7b843b8:"92892","9baacde1":"92983","8b56192f":"93066","30d00011":"93096",e5d76254:"93281","7c812bc0":"93305",dceb5a04:"93379","461fa96b":"93406","0602bf05":"93434","861560fd":"93487","216ae4cf":"93499","238b4d74":"93517",c9c6f808:"93554","423de293":"93565","1d9a061e":"93650","517a6efc":"93751","45efb036":"93766","28c0a052":"93770","7d04e04a":"93984",f65152a8:"94059","7921b649":"94153",bc21daa0:"94191","962fb06e":"94499","31243f4d":"94530","383e0d08":"94622","01e031cb":"94654",a3c2ef0a:"94744","8e9fc961":"94896","230c8311":"94952",af469e1b:"95027",a18866da:"95032",cc0cb525:"95110","062ec1a5":"95192",cb25f79e:"95216",accf606c:"95239","34b1f086":"95297",f8c20afc:"95342","8538b042":"95355","9cdb1c5b":"95372",c544f4a4:"95526","510cb4fc":"95769","12d44b5e":"95986",cb7060e2:"96014",db682b59:"96097","2f0f6a05":"96159","3b865f5d":"96168","21401b7a":"96285","1d0513e8":"96298","476994e3":"96316","5887780d":"96346",fa54d3f4:"96522",c8789a67:"96616","9367275a":"96625","9e828d90":"96660","56c61789":"96852","6a4e1d5f":"96855",a86079f0:"96884",d4bf4b5a:"96887","10ba125c":"96898","285077f8":"97074",d6670666:"97118","89a085ba":"97123","2b571a06":"97403","243b9aa6":"97409","5ac20d8a":"97431","6345335c":"97525","32b5ea16":"97660",ff68b7f6:"97728","78d0b93d":"97768","8b583ccf":"97783","3178eb30":"97798","101b7008":"97800","437c7eac":"97854","1d6877e1":"97930",ba227fd4:"97971",a42d09e5:"98057",b771fa58:"98058","9b1b20cb":"98106",cd2936c4:"98263","174b14fd":"98264","92871e18":"98312",a943c173:"98324","849b3b7f":"98358",ee4153d2:"98370","19d845e4":"98395",dfa30293:"98523","0c7d02e4":"98612",b44c3773:"98690","1fc0c829":"98901",b6bd4264:"98961","2e687d69":"99032",ac411221:"99148",dacddbce:"99185","8d853448":"99203",e467d655:"99249","86bf3c9e":"99257",f667452d:"99273","7dbd846d":"99434",ea4644b7:"99462","33b6cd96":"99541","3f96f959":"99700","123bb9ef":"99719","362c9549":"99790","21daa31c":"99801","95a8e207":"99920"}[d]||d,r.p+r.u(d)},(()=>{var d={45354:0,71869:0};r.f.j=(e,a)=>{var b=r.o(d,e)?d[e]:void 0;if(0!==b)if(b)a.push(b[2]);else if(/^(45354|71869)$/.test(e))d[e]=0;else{var c=new Promise(((a,c)=>b=d[e]=[a,c]));a.push(b[2]=c);var f=r.p+r.u(e),t=new Error;r.l(f,(a=>{if(r.o(d,e)&&(0!==(b=d[e])&&(d[e]=void 0),b)){var c=a&&("load"===a.type?"missing":a.type),f=a&&a.target&&a.target.src;t.message="Loading chunk "+e+" failed.\n("+c+": "+f+")",t.name="ChunkLoadError",t.type=c,t.request=f,b[1](t)}}),"chunk-"+e,e)}},r.O.j=e=>0===d[e];var e=(e,a)=>{var b,c,f=a[0],t=a[1],o=a[2],n=0;if(f.some((e=>0!==d[e]))){for(b in t)r.o(t,b)&&(r.m[b]=t[b]);if(o)var i=o(r)}for(e&&e(a);n{"use strict";var d,e,a,b,c,f={},t={};function r(d){var e=t[d];if(void 0!==e)return e.exports;var a=t[d]={exports:{}};return f[d].call(a.exports,a,a.exports,r),a.exports}r.m=f,d=[],r.O=(e,a,b,c)=>{if(!a){var f=1/0;for(i=0;i=c)&&Object.keys(r.O).every((d=>r.O[d](a[o])))?a.splice(o--,1):(t=!1,c0&&d[i-1][2]>c;i--)d[i]=d[i-1];d[i]=[a,b,c]},r.n=d=>{var e=d&&d.__esModule?()=>d.default:()=>d;return r.d(e,{a:e}),e},a=Object.getPrototypeOf?d=>Object.getPrototypeOf(d):d=>d.__proto__,r.t=function(d,b){if(1&b&&(d=this(d)),8&b)return d;if("object"==typeof d&&d){if(4&b&&d.__esModule)return d;if(16&b&&"function"==typeof d.then)return d}var c=Object.create(null);r.r(c);var f={};e=e||[null,a({}),a([]),a(a)];for(var t=2&b&&d;"object"==typeof t&&!~e.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((e=>f[e]=()=>d[e]));return f.default=()=>d,r.d(c,f),c},r.d=(d,e)=>{for(var a in e)r.o(e,a)&&!r.o(d,a)&&Object.defineProperty(d,a,{enumerable:!0,get:e[a]})},r.f={},r.e=d=>Promise.all(Object.keys(r.f).reduce(((e,a)=>(r.f[a](d,e),e)),[])),r.u=d=>"assets/js/"+({38:"e053db0d",55:"319411a6",354:"89bf39dd",378:"d64418bf",648:"51b5d68d",686:"087b7d76",870:"c8899d24",872:"b196f212",1039:"6aeefb41",1073:"9cdfb8c3",1093:"4865bf41",1158:"b9361f7a",1308:"8800e804",1316:"fc260886",1350:"2827f11f",1372:"21d4bc0e",1482:"0ba118cc",1510:"d6342268",1520:"813ca450",1531:"80036715",1651:"4b4509e1",1727:"357d2506",1771:"beb3ac95",1786:"1d5130cd",1793:"f73e1de7",1849:"1c63adb2",1873:"ca213633",2016:"1705a2f5",2183:"5dcbc311",2197:"cc2c9ee0",2306:"0b3648c1",2476:"1237a0cf",2505:"0c9604fb",2518:"9ae78195",2520:"024e8286",2572:"f9922edf",2772:"6ed01025",2853:"b4f299c3",2902:"68ef1759",2945:"6de3d5b3",2982:"ec0858e5",3034:"d79e8bdf",3120:"2d554375",3248:"f78f0390",3249:"306d2344",3295:"db79922a",3312:"08a0614c",3330:"d1a27f99",3377:"d6c2ba00",3425:"65fb4e8d",3446:"c83604a4",3489:"6b49554e",3546:"d6811676",3586:"b29e94ce",3738:"7b20392b",3916:"fd5475e9",4005:"675ebcca",4023:"e5bf6a34",4041:"6b38eaf7",4097:"5799d0dd",4558:"33cddceb",4642:"7d8f16e8",4760:"d2174fb9",4768:"c38010e5",4781:"8585b615",4812:"8a049a88",4866:"9ae0af9f",4907:"db47402c",4988:"30c7ae5a",5032:"20144648",5176:"fbf58390",5195:"dc123d29",5211:"88f8cf7d",5228:"d60a7f72",5293:"23636f9a",5373:"94490ee2",5411:"8c2ad0ca",5421:"e6a6f3dc",5444:"3366e05e",5541:"6a0d7dd4",5568:"9ff7b4c0",5702:"3e1847f7",5723:"c06e8323",5759:"dbf7beca",5800:"52156499",5868:"0fb34189",5910:"12980e8b",6131:"b12657f5",6204:"3da7314b",6359:"ddd9a697",6741:"3f42c85e",6775:"e6b85556",7034:"39100033",7082:"45568034",7116:"a85d2d78",7125:"c4d886ef",7190:"078c5e69",7265:"157f3349",7323:"15498a1a",7365:"b5a7fd43",7489:"ab6173e5",7551:"ec0c998e",7662:"b7aeb43a",7684:"422866f9",7708:"46184ef1",7734:"7a693bfc",7735:"1d59c923",7754:"9cc3267b",7794:"38ed4955",7829:"85bac8ef",8120:"33c3be35",8152:"5d515b10",8220:"451a8567",8372:"35024544",8912:"535592ec",9001:"95a63350",9004:"03a32c63",9105:"39254045",9132:"3521e68a",9158:"0098ae6f",9245:"a992a0f8",9363:"937991a9",9367:"13980018",9401:"c99ef3c8",9410:"782ec3fc",9525:"bf1307fc",9592:"6b1867da",9647:"5e95c892",9660:"9a45f095",9685:"ac923fd4",9733:"801550f5",10099:"ddd72b6a",10120:"5331b8f3",10169:"e7d7dd9f",10219:"8c833fcf",10233:"a3f10777",10287:"de744a63",10526:"1e64aab5",10636:"06a38139",10726:"a6e22173",10814:"4f1e6f78",10853:"76e173fc",10900:"fcb6886d",11198:"45450b3b",11268:"729c0f86",11274:"321d4575",11279:"86316871",11331:"ac524e79",11358:"aa64b883",11396:"34eb68ef",11474:"d38055fb",11501:"3fb280d9",11571:"5530c297",11698:"1960ca85",12001:"1e909336",12005:"d76382b0",12054:"e595470b",12148:"cfa740c1",12161:"64c7b138",12188:"2cd87241",12193:"332e9e34",12230:"8c3ef24b",12284:"138e67e4",12306:"c42662d8",12442:"0091494f",12532:"ef7bdc3c",12588:"93d55f6a",12594:"3dd00d0d",12620:"12e7cb89",12869:"ab50fe1d",12979:"f9a1286e",13283:"f0b7dbe2",13285:"cdf27114",13308:"878ba96b",13310:"1d73041c",13319:"49c13a5f",13335:"b2115c5a",13388:"e7e29711",13458:"e3bb5330",13471:"91336b3a",13472:"b26eaa28",13532:"38d612cd",13659:"6fa2d900",13724:"4e3142d4",13821:"52633b27",13828:"448d2e39",13960:"416cb7f4",13976:"29393bfa",14050:"9863d968",14065:"dcf691c2",14074:"6cdb7f96",14145:"b4c1c629",14164:"edeb7ca8",14270:"d1d509cf",14318:"be26c63d",14343:"61182cc0",14533:"8d5eac66",14565:"1a297150",14581:"1cd20a8e",14606:"7d092cc9",14615:"d9791473",14638:"9dbcff21",14663:"8c1b243a",14680:"e7700b5c",14739:"3753089a",14748:"8c1ce502",14831:"24ac12d3",14833:"38755343",14880:"5db99c8c",14934:"69697c25",14947:"18bb110a",14957:"0b3b7529",14999:"056867f4",15006:"04e1afbd",15034:"f1d9f180",15129:"1a7fe871",15215:"8c2e6727",15286:"5771157b",15494:"3dfaf92b",15549:"67a43a2b",15627:"64db8c83",15640:"a679d266",15718:"426d37cf",15722:"f8f6f210",15838:"f1ccaf05",15875:"834474bd",15906:"9da46a46",15978:"2e831bbf",16031:"8dd98cd6",16107:"b29ca04c",16178:"b4a9e2bf",16231:"bbc0c093",16244:"bc684a49",16280:"c1e04fa9",16321:"c4d53b4e",16420:"397ccaa2",16530:"94bb8da9",16644:"61df34c2",16700:"41badbb5",16943:"12e81c73",17082:"347319a3",17233:"56376c93",17332:"05cf0320",17439:"0dd9911d",17447:"8149c1f6",17502:"ffd1aded",17541:"c7b0479b",17644:"5f8ce4cc",17763:"89270831",17810:"647c66a2",17822:"6ad22d2d",17826:"7ba605c7",17927:"79408a0e",17952:"4b962370",18211:"3a5cd9a6",18231:"583c7938",18241:"c41cb816",18279:"9e54149e",18357:"ce798db4",18376:"498677a1",18401:"17896441",18418:"15de7ec3",18432:"f6364ade",18483:"0420286f",18484:"70ac8688",18527:"75b8d183",18561:"a4c399e2",18563:"3b1837b8",18590:"7f091097",18701:"f38a19d0",18796:"f68825ce",18873:"634e5b87",18923:"9714922d",18950:"57589dde",18984:"23b2ec0b",18989:"662ccfa7",18991:"8f0d6e5b",19006:"9ddb20fc",19081:"e590aaa6",19106:"d3fd3247",19141:"b7257cf4",19182:"b4bdd337",19184:"eeccbb9d",19200:"b08e6fd8",19257:"de28e96e",19258:"2ff152fe",19322:"cf01b66e",19335:"a911dfe5",19429:"5dbec22c",19534:"8c81d4b1",19634:"d0603a07",19693:"afff73c8",19694:"07fd7997",19736:"eb5418d6",19974:"4cbc9dd4",20226:"ee872789",20279:"a7da7bfd",20313:"3560f547",20320:"3c18d05a",20388:"9376381b",20523:"7da464c5",20592:"ad5d8c26",20594:"30bf7e1c",20658:"45f9e45c",20723:"85431298",20731:"9c131906",20739:"a39c2644",20745:"3a6fee66",20818:"ef80f5d7",20831:"a2b80c2f",20857:"5221567d",20910:"aa88182b",20953:"aed1fdfa",21016:"7c650e8c",21023:"eb38f5fa",21100:"e19eb737",21154:"1ac276d7",21203:"09a9e026",21306:"23ee098c",21314:"06a3b629",21376:"bc659752",21440:"25524074",21608:"34a3a287",21922:"ae137543",21932:"4e1aad47",22019:"bf19308c",22022:"0a196f91",22100:"f6dc595b",22106:"fb71e943",22155:"f1129715",22227:"6062b3b1",22252:"5510f1b7",22331:"8b513d12",22574:"2cf1bed0",22629:"3d37559d",22646:"ee801bea",22736:"4396b59e",22843:"8968fb7b",22903:"20c45178",22905:"7c4f02d8",23008:"260634c1",23077:"623d7060",23282:"ced1c827",23287:"20a41275",23596:"b7112064",23620:"3b17f5a4",23685:"17ec9470",23694:"28b6b6ba",23699:"043f5d57",23778:"782d5715",23800:"111e950a",23877:"50e6032a",24051:"bf77c5df",24154:"d1a6a78e",24162:"9ec17576",24262:"1de587e0",24475:"cf645fbf",24612:"09de660c",24694:"ef084d6b",24869:"c721bd5f",24886:"993625b5",25134:"67574dd0",25187:"bd7672cc",25205:"cbb92f95",25248:"46a5adb6",25287:"07a91882",25580:"114e0000",25747:"f7874cab",25823:"0a0bc396",25846:"3f78ddfa",25866:"06cd84e5",25890:"39d9d3b1",25979:"3163195d",26011:"f135686d",26016:"30d73f3c",26018:"bae45495",26112:"95bb95fe",26130:"51d1e75a",26185:"2a7802e5",26220:"500270fa",26246:"f26b69fd",26506:"30138938",26651:"929fe6ef",26660:"7b293dc3",26843:"39991005",26844:"e264076a",26851:"2845b5fb",26862:"b36fef1b",26881:"08e13917",26883:"626019ce",26901:"039b8e3d",26926:"06dba648",26983:"9cbfa21b",26994:"f64ddea3",27001:"a32085e6",27162:"6ba5ca07",27236:"bd5fb03c",27281:"0bb0f3cf",27305:"716c2719",27413:"7e185b3a",27517:"32c64886",27561:"75ef737d",27598:"8ede17c4",27626:"614f9872",27677:"623cc3b0",27743:"134ae693",27770:"c9b36244",27890:"8bad6f6b",27964:"08d358f5",28049:"6928d3e3",28084:"713f446b",28192:"9644b941",28232:"2549e033",28239:"2dca9575",28260:"b1c5bd19",28295:"0cf75f61",28314:"87119bda",28350:"91786f2d",28368:"9240dba7",28443:"c737572b",28459:"6c55ddd3",28467:"38c36092",28484:"1ea42534",28596:"bc22aba8",28615:"486059a3",28874:"a3929b5f",28925:"93d5903e",28932:"a5c5fcf6",29022:"717ea6d4",29046:"c8250b16",29070:"42a3ef15",29099:"9ee19b63",29269:"e43bbd8d",29360:"ea9d8190",29388:"674d6b73",29406:"3640f479",29516:"ad1c6c85",29532:"edaa9a97",29646:"5d7ae6cf",29683:"80f530aa",29689:"4976484d",29796:"031d8f0a",29839:"45209ae6",29973:"3d33c646",30120:"326739da",30174:"4a5a3e4f",30179:"cbe6a4fc",30217:"9cae6ca6",30453:"7c6c7a0a",30481:"82c71751",30497:"1821187d",30508:"e81ab398",30521:"b81226b7",30556:"6fed3a2f",30738:"2338a9e8",30748:"cdd4e3f0",30751:"f7de2b66",30755:"de334689",30835:"5487638e",31040:"f7e8b9a1",31181:"e24ac2b3",31203:"bc26c448",31212:"d29b4af3",31218:"4084a0d2",31251:"c10d4556",31268:"ffe4f0b4",31278:"c935642e",31283:"99403472",31753:"3d6c47cd",31796:"a6a086f1",31905:"51d9b128",31987:"927c83fb",32075:"37d005cf",32175:"b2cfddf1",32227:"c50fc537",32243:"2003fdf9",32318:"6b8c6e92",32322:"2df7b45c",32394:"ab3c2611",32434:"7b907fd6",32495:"bc2f7794",32499:"c99c71a3",32843:"dbf682ac",32893:"1076b3a4",32999:"81dc996f",33053:"4eed3210",33104:"cf6e58a7",33227:"4104e253",33296:"65428859",33308:"6dadabbe",33440:"0199d4ca",33573:"1b274068",33602:"4f61d82b",33615:"e5a951df",33712:"74683f69",33889:"63c8cbb7",33948:"3b653f93",33994:"fe15004d",34025:"326a97e1",34029:"d043f0f1",34186:"6fd3f1bc",34199:"3070d3e4",34204:"94041cd4",34345:"eeeb5c38",34457:"155b8540",34517:"eeda504f",34674:"9a09606f",34714:"b9ffb51b",34725:"a7137c8d",34784:"36e03c34",34828:"18b93cb3",34921:"08ffabcb",34946:"4fb4e792",34957:"77b27fcb",34963:"4ffe34ca",35039:"fdb26c07",35142:"17a8dc81",35204:"ac6b3262",35224:"8a0c818d",35331:"eeead8f6",35350:"db66ee01",35447:"b75129ac",35460:"dba0012a",35498:"f156e6fd",35571:"5b3fb50e",35616:"56b30f1b",35693:"07f65d8b",35742:"aba21aa0",35753:"f5851674",35781:"c00af2b0",35813:"f84cf5bf",35864:"5fbe96f6",35903:"a728158d",36038:"4ea08adb",36076:"4b14b251",36088:"5e351f3a",36135:"1a9dbb4a",36241:"24e86038",36291:"c96104f9",36317:"50dd9b79",36488:"59d809ff",36533:"54708e5f",36573:"985e27df",36763:"686b0bca",36768:"226a5928",36775:"801384bf",36781:"9dc99f39",36800:"1fc8674b",37163:"039d54f1",37242:"42a13e6c",37262:"e95a72c7",37312:"baa9b3e7",37616:"a079babe",37645:"1ba86576",37670:"b24d9bb6",37750:"a4970bd4",37766:"6184db93",37834:"d0ef1249",37847:"8cf5de12",37868:"a27e6552",37889:"99cd3a09",37988:"fbc03c2b",38032:"97ba5e68",38102:"74f98b1f",38267:"e758129e",38387:"240f2433",38454:"16a62667",38518:"41b14717",38547:"e6b2312c",38620:"81d00bc5",38729:"9029660b",38817:"53331f41",38858:"07c0d8c6",38872:"69d614c0",38973:"62f145c9",39149:"9955d1be",39246:"4bac2214",39360:"8c28f592",39409:"068c006a",39411:"6a5926c0",39425:"8d2e0306",39455:"22fc99f1",39617:"04633a36",39643:"fb578f06",39645:"0ac6d6a1",39693:"5c50ab3a",39816:"5dfec97f",39914:"35d1b9ed",39940:"5629cb3c",40018:"66e1c749",40226:"d49333b1",40253:"432a68e7",40348:"2d74339a",40435:"26c5b03c",40603:"4e81c48e",40631:"cd3a106d",40636:"578ba53f",40677:"61baf4ec",40715:"cfde41d7",40919:"6323be29",40926:"af6afb7f",41006:"9a4e11a7",41072:"01fb1614",41093:"17217875",41123:"22d7af95",41126:"1ed4e501",41181:"0fc665a3",41242:"2781e23a",41418:"f14e55c8",41432:"47a28214",41535:"ba1860c7",41586:"a221c716",41593:"0147fdcc",41622:"1ea001ab",41675:"cab74b7f",42038:"58869656",42048:"12bf709d",42092:"b0ab0602",42095:"849a2d93",42113:"d301ca6f",42115:"dc1576b0",42158:"2066eb3c",42172:"1a49fe29",42177:"78b274e1",42332:"d09c12db",42369:"a7d1ebe1",42374:"9dc2e4c7",42463:"3d175bf6",42534:"5ac697d4",42565:"14d4a842",42568:"2cd4c511",42607:"c9eff2b3",43059:"67e697ca",43129:"b3fd545e",43248:"238efb50",43320:"c020d3f5",43325:"e4de30c0",43333:"25738e2d",43353:"a0a0a2ed",43530:"4cc410e3",43619:"8ae74b50",43664:"b4bb44c0",43679:"82fa5608",43772:"ccf671a6",43843:"1d6138da",43850:"0686000e",43853:"9d97f7b6",43979:"61474b2d",44024:"186a9ba9",44031:"49d40500",44085:"6a645174",44234:"2029ef4e",44250:"294e92a9",44252:"1778559c",44275:"bbdeca34",44360:"868c59c1",44436:"98f16971",44441:"574b16b7",44546:"bbd0c512",44562:"9aabffe1",44671:"4aaaccfc",44749:"0044a2c6",44759:"c3c09026",44899:"94687d26",44973:"4f3bda51",45019:"c050f0c1",45113:"3a3f3686",45140:"d5a6e29a",45147:"d480b873",45193:"19aaa7d2",45230:"f3cf0483",45319:"d28adcd4",45324:"0cb02a81",45326:"8e40a65f",45361:"98b25e1d",45534:"001dcd58",45563:"5e797937",45764:"c996deb9",45772:"1e70be21",45825:"7223e43b",45897:"b8d0a2d1",45905:"64df562a",45961:"4f1150eb",45988:"9e461bb0",45992:"f313a82c",46027:"b7799679",46111:"cebb851b",46131:"0b9b9699",46135:"48f8c159",46321:"74878dd4",46362:"3262a2f5",46436:"98721dc9",46442:"0c794514",46463:"a9bd4440",46504:"ed655da3",46633:"c6a04e07",46671:"08e1c021",46672:"de795cee",46683:"190f221c",46721:"a2490e07",46728:"98c3dfd0",46857:"491f04b4",46872:"4e090f01",46895:"87ab4d1a",46962:"af9b37be",47044:"04037fd3",47097:"41988923",47116:"9ad607d8",47121:"943dd7cb",47173:"b2516716",47229:"63600a6b",47299:"f068a30d",47320:"13af2f7c",47331:"12b28870",47343:"1534a170",47417:"d435efc2",47481:"8b188aa1",47506:"b42b2a17",47726:"5d9b0d6a",47744:"00b6ea12",47758:"6ca8022c",47807:"9b11a7b5",47817:"3370e507",47881:"79d149e1",47927:"d8d1979f",48052:"fdd91106",48165:"733b69e3",48205:"e4de8e8e",48221:"469a9a57",48244:"d3c1a4fe",48334:"b25f10a0",48392:"804c4949",48513:"6c54cff9",48589:"951006af",48856:"8052dbb2",48900:"a01fd1dd",48944:"12e59f4a",48983:"60e27521",49032:"f666756e",49209:"3bf70e45",49364:"b45ad73f",49534:"ae7a9ea2",49710:"3d512310",49769:"0a638240",49815:"b87ed5c2",49854:"c398a51a",49868:"2b7ed3bf",49918:"1448e88e",49989:"0cd05ac6",49999:"04cee9fd",50088:"2bf753d2",50094:"ded812ef",50418:"dcaae713",50435:"65456c03",50507:"7510cbdd",50519:"cbae671d",50556:"31dc03fe",50581:"a2ec8490",50627:"0327be96",50695:"01005a98",50736:"037bf98d",50760:"b63db1e6",50887:"2add6896",50913:"29cd52c0",50940:"71e3662e",50961:"16ee311f",51083:"28e9e915",51141:"e62508a7",51318:"2b43cbc0",51354:"6e6ac1cd",51376:"578f8908",51377:"eded264f",51408:"de8df556",51418:"24abcf9b",51421:"02ed4bab",51462:"338b3790",51483:"beab48ee",51582:"83b27652",51588:"b6ebe4da",51602:"f59aea7c",51613:"e7ea3ba0",51721:"99056a19",52004:"c23b0ee1",52035:"2c9ede42",52148:"1acbe180",52175:"ffb79954",52253:"ed4f607d",52419:"fb054755",52424:"d5499c5d",52483:"31cbe202",52494:"5f226e65",52555:"4576eff5",52630:"fd880ad6",52634:"c4f5d8e4",52662:"69f0ac79",52750:"356a0ac6",52771:"9b053948",52796:"68b823fd",52860:"c804bda3",52942:"fe826c2c",52951:"03d50046",53030:"e367aa8b",53061:"a8aa25e3",53105:"35b69d2c",53177:"5f3f388e",53186:"86c68e3d",53272:"1ad120a9",53302:"472ad214",53445:"57f3f140",53513:"1eaf0d5b",53581:"5af30f32",53607:"f31ddbdd",53724:"461c5b22",53820:"bbae08e6",53842:"4b1b6b6d",53850:"3760029d",53870:"3b9f8a02",53907:"7d1976ec",53910:"4cf604fd",53912:"c6a0cc74",53978:"9b9dc0e1",54007:"6fad45aa",54146:"206c5d8a",54169:"6f1bcaad",54178:"53bb3d97",54203:"1aab41e5",54209:"ea65614d",54307:"a2dc6bf0",54346:"061959ba",54376:"e21e838c",54448:"bc8995eb",54458:"ddcfb1bc",54462:"e6740c51",54502:"c0cfec7b",54690:"7960f2a0",54728:"5eaec2c9",54733:"0aa8e717",54840:"dd6d5ea0",54855:"4710ef09",54996:"97a57718",55089:"8a792504",55100:"7210b988",55156:"512830ea",55172:"bf718f16",55181:"a44d9688",55241:"b2622f06",55254:"a770fe3b",55354:"9006e630",55378:"df544d08",55419:"29e01d36",55519:"580ea038",55528:"d734f793",55624:"c20f03e6",55821:"92947c3c",55829:"7101161a",55840:"d56b8eba",55842:"2736e981",55939:"700c0943",55956:"694579f7",56046:"902a5db0",56076:"7374b7af",56136:"c95f38cb",56218:"75ebea5a",56225:"250b4dc6",56257:"1aa1a063",56331:"a2e66dcc",56335:"6efd9833",56361:"ca8b31c1",56433:"35c1434a",56481:"b9c445d5",56486:"5dffea44",56498:"d4077890",56543:"87dd242c",56632:"f71dfec3",56783:"e20ea0b5",56852:"23d8a97e",56862:"2a6f3007",56914:"fa11d8ca",56959:"e644f73a",56970:"4b97d39c",57013:"86ef1cd5",57038:"e0cb77f5",57050:"1d7f05a3",57119:"38290d37",57137:"811e7138",57153:"bc82dc37",57194:"08a5ab73",57221:"4a70ef18",57282:"e3874c12",57331:"1cd2432c",57455:"c31cb8ac",57529:"4d79d356",57565:"02db2b77",57648:"e26f611b",57669:"a6a87773",57695:"9eda2b4c",57775:"5f11e2df",57820:"bfa82433",57830:"68ed074c",57834:"b71414c5",57923:"4dfd395e",57982:"f6da0534",57997:"b698f5b8",58009:"276ccdc6",58013:"0ade90c0",58018:"c58d17fc",58034:"af8a22e6",58236:"bb898d9a",58376:"a3196274",58441:"727a66d9",58443:"062a5932",58449:"d2f06d62",58583:"22a05a92",58585:"2a0ad02b",58598:"6347278b",58634:"a43a81e0",58688:"7890cc65",58812:"9fd8720a",58945:"2548f5e5",58989:"7e4d0154",59045:"eb50cd7d",59099:"43abb1af",59137:"c7cd3677",59206:"27022ff4",59262:"d7165f5e",59360:"793d492a",59659:"eef85b41",59711:"76571efc",59773:"f35dcbe0",59973:"116594f6",60210:"fdabb8ac",60304:"f28bd0ab",60503:"0ed694ff",60615:"80f08778",60686:"b1228550",60699:"3804da35",60708:"cc087f33",60843:"36bb38e9",60862:"9090bfe2",60933:"abdaff06",61096:"ce6049ec",61134:"56b54d0c",61143:"f4870e22",61151:"b2e9258a",61196:"af992987",61235:"a7456010",61400:"90487a84",61401:"79448688",61420:"319045b7",61467:"4bdc1132",61500:"b0f4752e",61577:"e60b42c6",61609:"1483912b",61664:"14be3d02",61864:"2fc6fcbc",61869:"4ed22eea",61875:"7ff64393",61905:"6e9e7da5",62013:"ef017137",62026:"ab535e60",62033:"e2626cf4",62114:"2c1292e3",62138:"1a4e3797",62229:"293e43ee",62253:"7b7bbdc1",62430:"7b3388c5",62508:"1791f58f",62793:"75ec37d0",62847:"0a79c9a2",62901:"f622ad78",62959:"36778e0d",62972:"320ebc57",63006:"0296afed",63010:"de7e05af",63047:"9c354e09",63167:"36cc6e86",63199:"976ab885",63317:"402bdd59",63373:"67da8bf2",63445:"1f6bedff",63593:"cfc2f36a",63602:"3493d660",63612:"c8cf90b4",63615:"13ee8587",63635:"2547de89",63736:"5cce1ffd",64110:"17352c84",64147:"dccccdff",64153:"34db6793",64342:"20e9fe55",64417:"915f3d1c",64495:"0b139e7e",64603:"36fc15ca",64615:"0dc2c486",64752:"0181b3db",64761:"c7fc39e6",64797:"ebf19685",65014:"0d626c57",65125:"70a0ba6e",65194:"8f2b33cd",65284:"b8c8be29",65293:"b5813517",65340:"c86d871d",65455:"c667a225",65501:"f6d61436",65552:"83a785e6",65593:"c159d2a1",65633:"e2559165",65664:"7f2b816c",65795:"68381642",65957:"bdea594d",66061:"1f391b9e",66078:"f5bf0763",66106:"a7fd529a",66142:"dcddf26d",66157:"a743260a",66238:"97affa7f",66262:"ad4064bb",66425:"853aad93",66473:"3a0563f8",66541:"60eb9b40",66697:"8fa43a6e",66733:"41794b63",66775:"cd2e908e",66780:"9b60a6c4",66814:"13989100",66881:"8f5764cc",67054:"60d0d69b",67079:"cdf0b926",67098:"a7bd4aaa",67142:"af78357d",67280:"b6220ba5",67460:"40984471",67536:"2c2b467e",67605:"0747ea75",67677:"509d8239",67681:"3861ecca",67751:"bff0709d",67782:"40628e9c",67789:"ae6fccdb",67812:"9bf717b1",68056:"1404e73e",68070:"0a8cb4e2",68304:"e15e352e",68328:"c1467f4f",68571:"7f6979ff",68578:"33f86aee",68619:"93583d2d",68632:"7f6ca9e0",68714:"605b0891",68837:"fc751a3d",68900:"31b01d6d",68982:"345c2f79",68988:"56a727d7",69039:"c28f96f6",69082:"e711fdf3",69128:"e916fc52",69195:"d88eb93c",69278:"088c6538",69309:"6820c973",69412:"b233694f",69646:"fed8e900",69803:"a8687ac8",69889:"1741557d",69953:"02da5ab9",69981:"e71901c0",69984:"d816ab3f",70035:"c19ed1d7",70062:"97b28733",70113:"36107b78",70206:"6131ccf6",70220:"0a033318",70224:"b8796a33",70401:"78bcd1a8",70405:"21e474a0",70409:"a535188c",70447:"4f73d880",70459:"c958b86c",70558:"3701251b",70581:"c99653b5",70590:"55f4c5b3",70608:"bf4489ea",70629:"9c00ca68",70829:"012d05d8",70929:"0c5f8fb8",70940:"5e8e437b",71036:"3b6f8471",71058:"2092b488",71077:"fd0805d1",71160:"39ae1dcc",71294:"2ed06246",71325:"1f8182e7",71493:"c1220e0c",71515:"b15ec89c",71546:"deb2d893",71643:"f2b40bbf",71698:"572bad33",71742:"0b242e68",71754:"cf9d5ce2",71790:"601330aa",71806:"15c9a7f1",71861:"24e50fa3",71899:"877fc452",71904:"a6d3b32b",71946:"b4ae246a",72092:"b8cf7f45",72112:"9bdf7f32",72257:"285b3354",72265:"784fecab",72299:"73f011ae",72339:"618b84ef",72343:"9915efaf",72386:"531dfa41",72429:"78406dfc",72528:"1bcfa046",72588:"712603f6",72596:"c74f51da",72736:"15800944",72811:"71449ed6",72900:"5a35eefa",72930:"ff0316c2",73019:"d1ebdf95",73042:"f5d38d41",73057:"fa2e85d3",73059:"3bb14ef7",73066:"2ac0b4bc",73079:"36627b26",73164:"fb100ce8",73331:"6e5bc6ab",73356:"91918b05",73424:"717f9656",73428:"42dbec43",73485:"525fe6fa",73634:"e4cd52a9",73778:"cad34824",73844:"77f249ff",73874:"42b9625c",73875:"7600c741",73915:"0efc406b",73916:"43816d14",73917:"728d2d7a",73968:"4885913a",73988:"2581efca",74011:"3b3060ca",74236:"17bfe970",74274:"ea73ae50",74285:"d89c5153",74300:"54955dc8",74347:"8b30a105",74368:"450cda6b",74722:"3c68b9d2",74760:"6137920c",74824:"078a9b71",74845:"64187b62",74888:"af62122e",74928:"d695235e",75074:"149005f6",75113:"b591ae09",75122:"1cfe702a",75135:"d0cd4a88",75157:"d33531c0",75324:"73da224d",75347:"75e5d073",75405:"6f5989c4",75425:"e94d0088",75476:"1082d4d6",75500:"ce5cde8f",75519:"7d2cd00d",75538:"45618ae1",75553:"da5b456a",75591:"1836dca0",75661:"eb1e27c5",75854:"4ec5dc72",75870:"3c8791ea",75882:"15770add",75904:"437495c6",75965:"fe60c9cb",75998:"5bb745c9",76073:"d4be08e6",76093:"9a1f20dc",76197:"37ae9f43",76304:"54255f28",76430:"091cab81",76438:"2fb758e0",76511:"2ed989b5",76638:"c29853ab",76658:"1daeb507",76676:"243fbebc",76713:"fecf6185",76773:"76228cdf",76907:"8136ae62",76959:"71b28fa1",76968:"c759f874",76970:"ac5ffeb9",77042:"493c96f5",77079:"dbc6080a",77083:"eec26f27",77089:"2dc15feb",77148:"354394ed",77230:"127efe29",77268:"925bf856",77298:"0b447833",77325:"8af066b3",77342:"dae67a8a",77419:"33124494",77423:"9e0309bf",77549:"6e348b42",77682:"0667b750",77755:"85e970a9",77780:"d385ee25",77862:"2b53b872",77881:"b5352e4b",77919:"4d7503d3",77943:"698d87d8",77957:"09917fe9",77970:"47dd0419",77971:"162ee6b1",78028:"a7973d5a",78055:"0c2c0374",78189:"320b7954",78226:"fc04664d",78231:"f9ef2d71",78446:"487e8214",78500:"787d1332",78600:"e3800717",78800:"d5ca4adc",78803:"02309956",78950:"cdc8a01e",79048:"a94703ab",79101:"2b8d9243",79143:"207889a9",79160:"20da3b21",79204:"3e3c20b5",79241:"0d680d08",79255:"acac7935",79293:"27161ea7",79345:"b63e4b40",79524:"624f0d9f",79528:"a67fb928",79678:"db5319b3",79694:"6c509596",79768:"278d928c",79827:"0d01e3af",79863:"a6efc48a",79990:"d90455db",80005:"8d1d2f63",80096:"ed95a3f4",80130:"6a58dac5",80223:"e0e92014",80247:"51fb9cc7",80267:"a2e2213f",80323:"55b63d4c",80417:"e760573e",80426:"86abb156",80454:"670e8940",80527:"4b916891",80626:"2954fac3",80705:"c608d889",80753:"2a144c3d",80957:"c141421f",81069:"31aad40d",81193:"1d104e2e",81271:"ab4a0273",81300:"821dce8b",81310:"f115b6dd",81384:"89866037",81453:"91695048",81661:"1961b513",81841:"33909044",81946:"2db8c4b6",81957:"3efc55e6",82002:"389fb278",82123:"98cc0cdb",82229:"f2d290a0",82309:"d05ae094",82353:"c13e7fb3",82368:"bed8702c",82390:"d09b6b40",82447:"7a423906",82478:"1658c756",82591:"d00a879e",82721:"0a489978",82888:"d788b4db",82950:"c09a614e",82965:"f8b1a534",83161:"27caae05",83188:"787a5247",83223:"d771e5a2",83504:"c2a87ab1",83559:"117d6e39",83678:"b8509072",83698:"fc8b2c25",83734:"5386bed0",83758:"8c1e11f0",83783:"24a9a59a",83859:"8d3fc5c6",83899:"0bcf800a",83917:"0bb26877",83941:"be7b5d27",83972:"1ab5a786",83980:"ec45d43c",83988:"79829de9",84009:"ad1533d5",84026:"4dd33177",84043:"c77f28be",84147:"7fe5042c",84184:"a74fb6d1",84230:"f0e049cd",84239:"292ebda1",84595:"13766180",84670:"f1dc25e1",84743:"38eee5c4",84769:"1a44db19",84824:"4dfd0a79",84827:"5a876e59",84844:"e8780874",84846:"65200372",84879:"2cf74606",84894:"911052af",84910:"260946d2",85024:"08c15c4c",85110:"3ffb6394",85186:"c3592a68",85196:"50f74dc8",85454:"9787e2b5",85476:"d837d0de",85505:"ab51e9a4",85531:"31e0ef60",85650:"704c7051",85686:"8c82037f",85870:"38b28ba1",85885:"4d9bd555",85891:"6d3744bb",85994:"eaf9832e",86166:"25d2a069",86207:"49b8fdc8",86248:"7a6c553e",86458:"ca006c66",86463:"5ea6b885",86464:"b6fa087a",86468:"d01173a8",86562:"c64024bf",86610:"ad3b8188",86719:"73039b17",86727:"7a63ecef",86764:"ba2d52b1",86886:"28d3cf43",86890:"daf96af6",87101:"f9145531",87106:"475ddf72",87127:"6de08607",87146:"798845d8",87201:"eca1dea2",87203:"d8db4bdd",87222:"7fc59764",87227:"900a3533",87237:"27033360",87406:"e4160942",87437:"5deadce3",87613:"76e32d2e",87627:"1dfed3a8",87838:"b54696c0",87889:"a84ffbb9",87899:"95d3faaa",88183:"8f3faaa4",88272:"81bc0670",88277:"5036f758",88360:"20b2c2b8",88428:"4b5c0d4e",88441:"169f5904",88537:"c0db360b",88618:"8aeb1be7",88639:"3893db7b",88751:"147dc28e",88759:"79c31966",88863:"052da1da",89012:"e52f87df",89061:"b87596d5",89062:"1b602655",89074:"7bf84062",89094:"66494347",89331:"d480b2d8",89344:"3380ced1",89408:"051a0a0e",89420:"013c1bab",89449:"4f718585",89610:"e16442cf",89624:"b9e9b3a4",89629:"23909da8",89666:"8fc7f1ee",89717:"30fb9325",89749:"444ce9f1",89833:"898f93c0",89838:"7563de56",89885:"8041f9fb",89903:"c9fc4253",89982:"c57040ca",9e4:"87d9fa95",90056:"dc64daf5",90197:"05e73bfb",90227:"f1b50ac4",90329:"3b6e9377",90411:"8da1edc8",90446:"590fe42d",90484:"2ac63345",90529:"69f236bd",90562:"d4d7e15c",90714:"efc55a86",90849:"0058b4c6",90881:"6eeffc01",90890:"01b58810",90906:"3468f004",90936:"2e44e249",90940:"13da317c",90987:"07660bd9",90996:"fdd518cf",91026:"eac5cc4a",91110:"d5eb11a4",91167:"777c6042",91246:"f59ee173",91357:"5aea82ac",91359:"08f736fd",91515:"4a860d8c",91564:"7a8aac42",91591:"b449eac0",91599:"58c4affa",91665:"69aee15b",91711:"39b57bd8",91760:"e980bfab",91806:"ed353322",91810:"0329a84f",91889:"53fa95c6",91919:"5ae09df0",92006:"e97c1fe7",92051:"0a35f6eb",92106:"da1cd4ff",92272:"a135050d",92339:"bc08316c",92362:"d91f58ea",92378:"8aa2fcff",92582:"428d4f34",92734:"a7719d3c",92811:"8cc7edc7",92828:"a3d50c6d",92839:"e23b750b",92843:"d9b20917",92855:"bba11647",92892:"e7b843b8",92983:"9baacde1",93066:"8b56192f",93096:"30d00011",93281:"e5d76254",93305:"7c812bc0",93379:"dceb5a04",93406:"461fa96b",93434:"0602bf05",93487:"861560fd",93499:"216ae4cf",93517:"238b4d74",93554:"c9c6f808",93565:"423de293",93650:"1d9a061e",93751:"517a6efc",93766:"45efb036",93770:"28c0a052",93984:"7d04e04a",94059:"f65152a8",94153:"7921b649",94191:"bc21daa0",94499:"962fb06e",94530:"31243f4d",94622:"383e0d08",94654:"01e031cb",94744:"a3c2ef0a",94896:"8e9fc961",94952:"230c8311",95027:"af469e1b",95032:"a18866da",95110:"cc0cb525",95192:"062ec1a5",95216:"cb25f79e",95239:"accf606c",95297:"34b1f086",95342:"f8c20afc",95355:"8538b042",95372:"9cdb1c5b",95526:"c544f4a4",95769:"510cb4fc",95986:"12d44b5e",96014:"cb7060e2",96097:"db682b59",96159:"2f0f6a05",96168:"3b865f5d",96285:"21401b7a",96298:"1d0513e8",96316:"476994e3",96346:"5887780d",96522:"fa54d3f4",96616:"c8789a67",96625:"9367275a",96660:"9e828d90",96852:"56c61789",96855:"6a4e1d5f",96884:"a86079f0",96887:"d4bf4b5a",96898:"10ba125c",97074:"285077f8",97104:"37880922",97118:"d6670666",97123:"89a085ba",97403:"2b571a06",97409:"243b9aa6",97431:"5ac20d8a",97525:"6345335c",97660:"32b5ea16",97728:"ff68b7f6",97768:"78d0b93d",97783:"8b583ccf",97798:"3178eb30",97800:"101b7008",97854:"437c7eac",97930:"1d6877e1",97971:"ba227fd4",98057:"a42d09e5",98058:"b771fa58",98106:"9b1b20cb",98263:"cd2936c4",98264:"174b14fd",98312:"92871e18",98324:"a943c173",98358:"849b3b7f",98370:"ee4153d2",98395:"19d845e4",98523:"dfa30293",98612:"0c7d02e4",98690:"b44c3773",98901:"1fc0c829",98961:"b6bd4264",99032:"2e687d69",99148:"ac411221",99185:"dacddbce",99203:"8d853448",99249:"e467d655",99257:"86bf3c9e",99273:"f667452d",99434:"7dbd846d",99462:"ea4644b7",99541:"33b6cd96",99700:"3f96f959",99719:"123bb9ef",99720:"95722794",99790:"362c9549",99801:"21daa31c",99920:"95a8e207"}[d]||d)+"."+{38:"7712ab5e",55:"c13970f0",354:"44f19ec5",378:"876f60de",440:"73b96d03",648:"499ad7a6",686:"e8437ed5",870:"829cddbe",872:"506acaf9",1039:"364f800a",1073:"d10d3515",1093:"e9a2029d",1158:"a068ca8e",1308:"207d51b3",1316:"e54a5ecf",1350:"5053f0e3",1372:"4d73c210",1482:"2de66d55",1510:"89cd7d00",1520:"037a516d",1531:"343966e0",1651:"4d7ced3d",1727:"0f0faf84",1771:"97c25799",1786:"93e4cd03",1793:"019a0084",1849:"de7393ef",1873:"836f5b04",2016:"83df1bb5",2183:"b9020ebd",2197:"e6364e90",2306:"e13cb53c",2476:"b66b026f",2505:"85b6468a",2518:"8c81b6a8",2520:"09dfe24a",2572:"7ef24c22",2772:"8c6e2cab",2853:"678b4787",2902:"c7c25eaa",2945:"ac1acfae",2982:"15cac327",3034:"07918b97",3120:"c59a9a2e",3248:"224d65cf",3249:"04f57c39",3295:"8c0557d2",3312:"3db7e1a7",3330:"18ad1f87",3377:"015a241d",3425:"e49d1e2a",3446:"783e7e89",3489:"b02ef054",3546:"ff198f13",3586:"7ebf1485",3738:"165c263c",3916:"fb8c5686",4005:"8de81b2d",4023:"e5e3a2bf",4041:"ea9c406a",4097:"1adb4bb3",4558:"8f03b436",4642:"812625d4",4760:"2ba8ce52",4768:"8ea8ef90",4781:"b6c5e3fb",4812:"abc5f49c",4866:"db9c730a",4907:"80bca676",4988:"6989f46a",5032:"795c0404",5176:"b5bff593",5195:"0bbe687d",5211:"ee110068",5228:"ab224d73",5293:"a83a4e19",5373:"5c53ebdd",5411:"7ce62609",5421:"fe54e741",5444:"b7ef4b8b",5541:"85ec6f74",5568:"12ead4fb",5702:"fc5882fb",5723:"d8d245d6",5759:"bb8bc637",5800:"9d93692b",5868:"670545ff",5910:"cb9a33c9",6131:"0acc9773",6204:"3f62303f",6359:"0f2c0b7f",6741:"10ba66c5",6775:"1176ea82",7034:"fd6da324",7082:"e8a76c26",7116:"74db3976",7125:"6dca3f06",7190:"df1d0255",7265:"16455a15",7323:"c61ee8c0",7365:"aa78a9e6",7489:"1f74c989",7551:"894f413a",7662:"f6c5d1fe",7684:"beb35243",7708:"aef6aafe",7734:"af279bf3",7735:"06c24f60",7754:"b13773eb",7794:"3fea3214",7829:"25868002",8120:"ef0b50d4",8152:"1d2d6ead",8220:"699e3a73",8372:"b976cb10",8912:"2e3de8d5",9001:"65445183",9004:"36177184",9105:"4f0d3ae7",9132:"e97803a8",9158:"a76406c2",9245:"e7b51f82",9363:"089dc482",9367:"bc0d5896",9401:"c000541e",9410:"dfc78613",9525:"d7595d29",9592:"eabfdddd",9647:"a06b7269",9660:"2dd137f6",9685:"21545ae1",9733:"a5fde704",10099:"b2e14d38",10120:"27458d05",10169:"ef09c06a",10219:"2c93058e",10233:"d321da8f",10287:"959470dc",10526:"4531afa7",10636:"cb82fdb2",10726:"de8aac75",10814:"b762aa97",10853:"0a8d0f13",10900:"272de34b",11198:"54881a3f",11268:"a6a8fdd6",11274:"c2767920",11279:"31acd154",11331:"370f6018",11358:"47deac63",11396:"c8bb5c36",11474:"2b122d1b",11501:"379423dc",11571:"32d8c51d",11698:"9262c909",12001:"670e4969",12005:"eba60975",12054:"694bb506",12148:"d78d479b",12161:"8aa49e8c",12188:"7ba8aece",12193:"092d381e",12230:"6c3dc35c",12284:"e96d2925",12306:"ec3bd11e",12442:"32a0bb8b",12532:"42cc456c",12588:"25831777",12594:"4a5aa000",12620:"3a071755",12869:"f68e5e9a",12979:"6006a09f",13283:"77080f31",13285:"ecacd8b4",13308:"c86f2914",13310:"fc7763e6",13319:"6baf67e7",13335:"d4258450",13388:"d0f12571",13458:"79885d10",13471:"bc0f1659",13472:"be79f19d",13532:"6aa307a0",13659:"c6942c59",13724:"01657d40",13821:"542c7715",13828:"b91b1afc",13960:"2e9605f4",13976:"68759954",14050:"948a1e06",14065:"a190935d",14074:"c066dc3c",14145:"bd3bf8e4",14164:"7716c56d",14270:"0c72268c",14318:"ac5be66a",14343:"2cf306aa",14533:"6b34e6af",14565:"bcf94c8c",14581:"244cd653",14606:"e9ead317",14615:"c0e986b4",14638:"4a4ca50b",14663:"b9d5bc85",14680:"5c9ff770",14739:"294a0502",14748:"bb0dba97",14831:"57ce009d",14833:"cf87d4ad",14880:"d7887eeb",14934:"8e99920e",14947:"1bbe23d2",14957:"3c569ef4",14999:"d00e4774",15006:"ec841511",15034:"520c2a13",15129:"b7e7feed",15215:"553407ae",15286:"7fdca6e2",15494:"d19c0b39",15549:"14329afe",15627:"94bbdc49",15640:"37323fbc",15718:"f35e60c1",15722:"17802f42",15838:"5c35d729",15875:"a2293416",15906:"dc3b70b3",15978:"0fad358b",16031:"34da9883",16107:"66a71c0d",16178:"27a16c86",16231:"f4d63d5d",16244:"0ac617e6",16280:"044e5eca",16321:"d6ffeefe",16420:"46e7981b",16530:"2e402626",16644:"e1e94179",16700:"681daa93",16943:"1cda6c8f",17082:"e798a004",17233:"3323a7b7",17332:"c4d07156",17439:"8b4fae3b",17447:"d94b71a8",17502:"8dbec91d",17541:"e4f8bdba",17644:"c04bee36",17763:"562af692",17810:"c4aa58d7",17822:"8b3e9aee",17826:"32fe4166",17927:"e113c747",17952:"88891d58",18211:"93cdf6ab",18231:"7f6e37ae",18241:"132a141f",18279:"3e103b75",18357:"6ef72170",18376:"103a31f4",18401:"97bffc8e",18418:"80c9ab20",18432:"f4be152f",18483:"b568c1fc",18484:"8542849b",18527:"c37d1a27",18561:"3b8a770a",18563:"32efdaf2",18590:"50deeec0",18701:"2b6b1cde",18796:"8a9cdda5",18873:"16d127c9",18923:"b116d538",18950:"0faea588",18973:"428542a9",18984:"e4d392a4",18989:"6a164e11",18991:"dd76134a",19006:"d761c155",19081:"edf548c3",19106:"dda8c7fb",19141:"4c4aac00",19182:"4b582607",19184:"4e19dfe0",19200:"5a4e037f",19257:"7656df18",19258:"d8a3c494",19322:"dd3cf145",19335:"652da9de",19429:"2bbbdd16",19534:"61ffbe5a",19634:"db53eb73",19693:"5d0c54ea",19694:"f3ae2636",19736:"8e8889be",19974:"ce636c4a",20226:"3c09cd4f",20279:"59df5c8b",20313:"aeb09e9f",20320:"c3fdec78",20388:"7346bd33",20523:"d721a8e9",20592:"17ea465e",20594:"4a6aa0b1",20658:"a264850f",20723:"48eddc6b",20731:"118102ea",20739:"5bba3e85",20745:"5530568f",20818:"52f4164e",20831:"4025e5b9",20857:"6b13152c",20910:"66804264",20953:"307f1294",21016:"9a50589d",21023:"a82b01ed",21100:"960a6674",21154:"84887232",21203:"c9ff8815",21306:"3fe47a2a",21314:"416bd4ec",21376:"6a7628d0",21440:"89d78e9f",21608:"fcc17afd",21922:"e6f14608",21932:"06e575e1",22019:"9ec60067",22022:"d5c2ff95",22100:"2d8c7b2b",22106:"af218c57",22155:"17e5509d",22227:"db8eb8c6",22252:"8a883ac2",22331:"e8f5abc0",22574:"99b09a7b",22629:"7f50cd88",22646:"4699cf72",22736:"a2201971",22843:"519bf33f",22903:"f8e78e7e",22905:"5ce2c97d",23008:"01d28557",23077:"d80dca31",23282:"27a47131",23287:"7f316e8c",23596:"0273f0b7",23620:"d5b78040",23685:"6539ac82",23694:"ce39769a",23699:"cf1434d4",23778:"512a7ed5",23800:"96e23e35",23877:"df6603b0",24051:"636d5ce2",24154:"84cddf79",24162:"e0a9bdbd",24262:"a08f2df0",24475:"6c157518",24612:"276efdcc",24694:"034b05e8",24869:"75107fd4",24886:"61a6a072",25134:"f0a8ceeb",25187:"5b671ea7",25205:"c07921c3",25248:"97d4e862",25287:"e1f16163",25580:"03a725dd",25747:"41348ea2",25823:"7936e377",25846:"ff0e32cb",25866:"5b2b3960",25890:"8de41308",25979:"7622180a",26011:"9de24c7a",26016:"e8c41d8d",26018:"0e866c85",26112:"8733f938",26130:"124af76f",26185:"7f359088",26220:"77c51442",26246:"bc0a516c",26506:"ce7a392e",26651:"abc87df9",26660:"86a31ba9",26843:"75a0db65",26844:"8f821d0a",26851:"b7cfdaa0",26862:"d75712ac",26881:"8596ac7f",26883:"c65e1ea9",26901:"ebf17a91",26926:"ef0ebd8c",26983:"825ed9a9",26994:"8d408389",27001:"b3e5f2dc",27162:"9e80b11a",27236:"c6c37801",27281:"2c7bc21b",27305:"12f5f177",27413:"4f2e2425",27517:"d88354bc",27561:"ebf08157",27598:"676156a4",27626:"2437ffe0",27677:"412c35f4",27743:"fe83b8c3",27770:"994e98eb",27890:"6230c296",27964:"776847ab",28049:"8997091b",28084:"fce9c1ee",28192:"b2ef0205",28232:"a9bc34b1",28239:"7a422671",28260:"15f6e826",28295:"e9ed9b68",28314:"767d85ea",28350:"916ffe38",28368:"b54386c9",28443:"7ed60a84",28459:"01815ae4",28467:"dc08a47b",28484:"a54b458e",28596:"bb0b3d8d",28615:"c5afdcfc",28874:"37fed0ab",28925:"c677e920",28932:"d69196b7",29022:"208e5c7f",29046:"f234e774",29070:"619e965e",29099:"8aa14273",29269:"44e74c1b",29360:"7f650cbf",29388:"bfb2bc97",29406:"d3f0e5f3",29516:"31891758",29532:"67019fe2",29646:"0d4b7298",29683:"63807205",29689:"9e4843c5",29796:"234c3522",29839:"2238e097",29973:"50bea008",30120:"023af399",30174:"08cd7da2",30179:"1a52ecb9",30217:"aa6eccf3",30453:"5c74d948",30481:"4be346bf",30497:"a231253c",30508:"196d771e",30521:"99ed21ee",30556:"5898e274",30738:"00e89c92",30748:"67dc607d",30751:"acb636ab",30755:"a45ea5de",30835:"6fbb20f0",31040:"59953262",31181:"5b3db814",31203:"8eb4c745",31212:"75157119",31218:"5d936599",31251:"e2267db4",31268:"64eb0b3a",31278:"3faa3cb0",31283:"6eaa47bd",31753:"249fcd68",31796:"f60b3de8",31905:"638705ec",31987:"bc5dfec2",32075:"47a13503",32175:"9b905c19",32227:"1d033e3e",32243:"5e2724b0",32318:"8a4da698",32322:"e348ca79",32394:"bb41bc92",32434:"31c97ea1",32495:"1a668fec",32499:"d25a404a",32843:"38e3b298",32893:"e28c4d6a",32999:"8af7f8f4",33053:"5754676b",33104:"cd6396e4",33227:"e4c5cf48",33296:"ef83f15d",33308:"477b623a",33440:"79134d92",33573:"b4b6a501",33602:"e4097904",33615:"e4827157",33712:"a23607d6",33889:"30a4285d",33948:"6792f95a",33994:"d1d9cdfe",34025:"b138fc7b",34029:"bba0ee19",34186:"f0311cb7",34199:"e7af120f",34204:"e1704283",34345:"3a299e68",34457:"38b5d706",34517:"34f0b706",34674:"835ecdca",34714:"98cc1f06",34725:"1cc8fef8",34784:"ae8688db",34828:"59894150",34921:"adbcd54f",34946:"cb2a40d5",34957:"0aa84b76",34963:"89f8d50c",35039:"f602d9c4",35142:"e458632f",35204:"9d6dd2c9",35224:"54fbd5ee",35331:"18e15127",35350:"da7d1339",35447:"b6c8ae9c",35460:"2c7bf580",35498:"c13066d9",35571:"00164343",35616:"a88bcbc7",35693:"2d661d5a",35742:"204266bf",35753:"8adf13f7",35781:"91d3aeff",35813:"e4a4fef6",35864:"db99e4de",35903:"cf224cbd",36038:"aed218b9",36076:"8d782292",36088:"8b577e54",36135:"1c0ccc18",36241:"a3b18d74",36291:"cea25971",36317:"0062a057",36488:"bfcf6d24",36533:"c5c8a5b2",36573:"1681d286",36763:"4fde379a",36768:"061c6922",36775:"4be02e7e",36781:"86b4a664",36800:"e3db0c6c",37163:"11d1a5da",37242:"acb7607c",37262:"0d463dbf",37312:"2d059516",37616:"4e572a42",37645:"ccb50372",37670:"3d3590ec",37750:"b02d6430",37766:"3f650929",37834:"9631fc63",37847:"66cb94eb",37868:"e0484a38",37889:"459bc960",37988:"686a8087",38032:"58163ef9",38102:"2b411eb8",38267:"7fad5f79",38387:"aec7c615",38454:"8b209704",38518:"73c3dceb",38547:"d1743e91",38620:"ed1b33f0",38729:"abf8eb48",38817:"3e3aae95",38858:"87df66eb",38872:"c2f09dea",38973:"bd5f6dd0",39149:"8de5f015",39246:"6f80eb15",39360:"4788b4b1",39409:"aad15900",39411:"12b37266",39425:"e21489c5",39455:"f5801d1d",39617:"6e6462ca",39643:"ef277e46",39645:"ac97f775",39693:"c41085a5",39816:"5cdb902a",39914:"77e81acf",39940:"0c50d5fe",40018:"b28db297",40226:"f6af1d4f",40253:"7ac3d8b0",40348:"5faef4d8",40435:"5fc3f30c",40603:"96c0723c",40631:"463ad66a",40636:"682d09b2",40677:"f42905ab",40715:"8e0280be",40919:"195ec9c3",40926:"8648e617",41006:"9d06528a",41072:"27d2f77f",41093:"decb1dba",41123:"7acb36c7",41126:"810632bf",41181:"872c4085",41242:"5e69245f",41418:"90fa4b5e",41432:"564d7ef5",41535:"8bc310f0",41586:"56e1405e",41593:"bd0f5182",41622:"57aabb41",41675:"2288d877",42038:"377af844",42048:"0410ff57",42092:"d22d455f",42095:"ef3c7038",42113:"2384d71f",42115:"7ff465c8",42158:"67aa7905",42172:"684074e7",42177:"1cbe532b",42332:"79f410b8",42369:"b8644517",42374:"6e4a6386",42463:"d3daacb8",42534:"f1dda845",42565:"b11ae7df",42568:"b0d88057",42607:"c776fc26",43059:"09a159e7",43129:"9a248f37",43248:"ca796ef0",43320:"02df0202",43325:"2e98cdff",43333:"5e4302fe",43353:"12b24077",43530:"db036786",43619:"a2b6f9e3",43664:"debab591",43679:"4ba9b3a3",43772:"2b4ea262",43843:"4ed35ca7",43850:"e5f06e59",43853:"86977270",43979:"fec14079",44024:"ea390521",44031:"d245c358",44085:"d71e80df",44234:"044524b1",44250:"7f74fa9e",44252:"d969a46d",44275:"d15b21d3",44360:"80f4ef05",44436:"8fdf2a03",44441:"76d882e9",44546:"23825cde",44562:"aca1d479",44671:"d9bc088b",44749:"f4ea5dc2",44759:"3b55f2cb",44899:"b317d2c2",44973:"c3d4dd3c",45019:"496b27d4",45113:"6edbbfd7",45140:"470c2def",45147:"cf43c8f8",45193:"c41fa3c7",45230:"14b749a0",45319:"504e460a",45324:"983c49fe",45326:"ef2d3bbe",45361:"07acb7e1",45534:"7057958d",45563:"7aad6352",45764:"92fdde50",45772:"f5697c9d",45825:"9c19c283",45897:"e5abafc7",45905:"24a0607b",45961:"186ffaf0",45988:"25fd6a0f",45992:"b31ac539",46027:"35bcc54d",46111:"a6102c09",46131:"0fbda58f",46135:"2921b160",46321:"ae3ea887",46362:"16c6479b",46436:"17cdf404",46442:"6d33c152",46463:"abea0585",46504:"b4db82f4",46633:"c89e102d",46671:"d4f76f8a",46672:"913473bf",46683:"86a45d03",46721:"019ff31f",46728:"e9b1c5ff",46857:"0d2ced8c",46872:"f29ba601",46895:"8a6b16d1",46962:"a4c79d82",47044:"8c8a1b21",47097:"002bc6c3",47116:"3a094839",47121:"187c7819",47173:"fd70a575",47229:"26d842a4",47299:"0f50b506",47320:"84668085",47331:"8d4f27de",47343:"3a942a4b",47417:"f740f08d",47481:"cc13b003",47506:"70202892",47726:"aa10f317",47744:"f82f8fc7",47758:"4800adc7",47807:"68644a5c",47817:"cedd1537",47881:"11335cff",47927:"0b5d10cf",48052:"ead7c6c5",48165:"f3da620a",48205:"a245f384",48221:"cf3ea1b3",48244:"2b87d40c",48334:"6faaff40",48392:"652e31fe",48513:"b1af39d4",48589:"a677fd58",48856:"b441683d",48900:"860a4b00",48944:"10ff2f9e",48983:"9f87a2e8",49032:"63822609",49209:"9c37be12",49364:"36cf387d",49534:"375cf737",49710:"35ae06a7",49769:"7f3fc104",49815:"85c6538b",49854:"61770aff",49868:"bdc683a8",49918:"ad4458c3",49989:"a266e484",49999:"51b18234",50088:"b3102cfa",50094:"4c23efad",50418:"87b68c0c",50435:"72eaf435",50507:"76cc8c71",50519:"e82d6468",50556:"419deea3",50581:"0c32cc26",50627:"ee02cd8d",50695:"0ec2842b",50736:"1629e518",50760:"e7f781fe",50887:"43f2c27a",50913:"86cfb1f3",50940:"e399c16a",50961:"c049d1a5",51083:"7c870bcd",51141:"4db6b46e",51318:"2dae4d39",51354:"6b02f29f",51376:"c0e09aa8",51377:"024d3cfb",51408:"5b068589",51418:"ff4fd1fe",51421:"53b8b68c",51462:"69a806b2",51483:"2445a4f6",51582:"fb0b283c",51588:"a86052be",51602:"b451c47e",51613:"3513c821",51721:"5cfcbc4a",52004:"243e1aa5",52035:"a5587c17",52148:"cc767227",52175:"08a2def6",52253:"4928fc9a",52419:"a95af1d1",52424:"f164a2ab",52483:"fa63ef57",52494:"d359e84f",52555:"c94282a7",52630:"a9659e3a",52634:"5b99b33c",52662:"4f204905",52750:"cd8139a0",52771:"f3fc8e12",52796:"a5d0fb0b",52860:"f4ac5bb4",52942:"66141af6",52951:"711418c5",53030:"f0eb40b4",53061:"799af27b",53105:"1c527da1",53177:"6c3a7791",53186:"1aafd680",53272:"a5794e1b",53302:"799aaf41",53445:"02a00dff",53513:"f71cc0da",53581:"2df938f1",53607:"cb69f870",53724:"0de53176",53820:"e1e1ee0b",53842:"ebd4af83",53850:"23d160f4",53870:"a6ce6c7c",53907:"499e2cf7",53910:"88dc7309",53912:"27c3c53f",53978:"88ce50c3",54007:"060db986",54146:"4f222777",54169:"96bd6cad",54178:"3701ad78",54203:"cf4269e8",54209:"d09bb2c8",54307:"d49028b7",54346:"acf25e00",54376:"41bcf99c",54448:"47192fe9",54458:"94d7d3e7",54462:"1f793dcd",54502:"c41f72dd",54690:"4a946c88",54728:"0c47bca2",54733:"79771b27",54840:"06949243",54855:"35ef892f",54996:"b1763e4d",55089:"f67b0651",55100:"c7a6b45b",55156:"ee8eadd1",55172:"054798da",55181:"b66921af",55241:"95c98478",55254:"06706180",55354:"5dd9d23f",55378:"c44c3695",55419:"0f8250bc",55519:"eddedeac",55528:"4b46a944",55624:"5553d58b",55821:"939aa008",55829:"17f18b1a",55840:"cb063a08",55842:"0fe8dc7c",55939:"bf366727",55956:"9331789b",56046:"abcaa250",56076:"1a56f82d",56136:"72658065",56218:"04e7f353",56225:"51aa4460",56257:"fafc05df",56331:"bf8000e6",56335:"1cd6ae0d",56361:"3971c549",56433:"8b1a3f11",56481:"c3f8883f",56486:"3dabb237",56498:"525a77c8",56543:"a22841a5",56632:"c24c4af3",56783:"6e43d679",56852:"624a4db7",56862:"01a5c9b0",56914:"6ec1fa93",56959:"27eadd2c",56970:"3f3fe47a",57013:"cf1b086b",57038:"70d7c468",57050:"9445fa4a",57119:"eb69ad4b",57137:"f5e83599",57153:"55af3da5",57194:"50aa6023",57221:"396dfa07",57282:"4b7b77cc",57331:"4e7441f1",57455:"5c02b132",57529:"df14b74c",57565:"d048ecf8",57648:"12550bff",57669:"d2c7a18d",57695:"468159e8",57775:"7320856f",57820:"0c89951b",57830:"ee3f26aa",57834:"36f64875",57923:"a85a111d",57982:"d472f987",57997:"3beef18c",58009:"dfe2e175",58013:"fbd6b53f",58018:"3ff0bcb4",58034:"4a8cde29",58236:"dfc5eded",58376:"2c2e12db",58441:"821080ca",58443:"53d82d0c",58449:"8967ef45",58583:"c7f9cfdf",58585:"8c97c045",58598:"3fe6465b",58634:"0867c4d4",58688:"d493e5b7",58812:"3d55d18e",58945:"edbc7218",58989:"794cb81e",59045:"3c616dcb",59099:"69ed0e83",59137:"06926336",59206:"30a5f1bc",59262:"50a8224c",59360:"0da3c922",59659:"51331681",59711:"be05886a",59773:"f79d979a",59973:"0106dbaf",60210:"1cbe6365",60304:"75fcfcf3",60503:"c326100e",60615:"afff6714",60686:"471f457f",60699:"80c2298d",60708:"6b1c9f7b",60843:"a89ccb80",60862:"50d19610",60933:"8c5d5b3a",61096:"9fc1e96d",61134:"5b267ece",61143:"2a7708d1",61151:"47b88b99",61196:"c288934d",61235:"b33fdc04",61400:"2bdc8c3b",61401:"e56e359e",61420:"6b52d8eb",61467:"e3e48826",61500:"ab7da824",61577:"fa570575",61609:"cf6a1f37",61664:"12c6c1f1",61864:"950d031a",61869:"de0d1909",61875:"c1e2efe7",61905:"a832d6a0",62013:"76cb12b4",62026:"32c70b0d",62033:"e5c19d1c",62114:"f7aa51db",62138:"90162df5",62229:"c45649ea",62253:"e0c4987e",62430:"89e02779",62508:"e82632dc",62793:"98ce9c4a",62847:"fc7578e1",62901:"e446ca2e",62959:"917b4db3",62972:"ca65ebd7",63006:"e92277c3",63010:"55fa2861",63047:"818327f3",63167:"e975efea",63199:"442cb49e",63317:"c0a37544",63373:"73373f81",63445:"55b6480d",63593:"8186a5b9",63602:"3c936f08",63612:"01f0d3e6",63615:"77fb43a7",63635:"b31cd4ce",63736:"6ea3b924",64110:"35bb8da6",64147:"d2a2a226",64153:"fa6798df",64342:"23f33100",64417:"640dfd3c",64495:"3ee2c89d",64603:"27c68f0b",64615:"076bd5db",64752:"0b9dafc3",64761:"e5da804b",64797:"e85d4510",65014:"95b865e8",65125:"dfc045da",65194:"3490c583",65284:"e70996e4",65293:"af9d25e2",65340:"ac85b7d2",65455:"192751e9",65501:"2b8fffbe",65552:"aeef7957",65593:"8eaa1b71",65633:"1aa429dd",65664:"eb5c4980",65795:"8deb4be3",65957:"99e5aedf",66061:"5dbe4738",66078:"8e44b6ac",66106:"9efdbd30",66142:"bde7f7f5",66157:"8bff747f",66238:"6ef0c3ca",66262:"e298c47f",66425:"dbaa79da",66473:"6e820866",66541:"cfe0db3a",66693:"621a950b",66697:"565c52a1",66733:"77484279",66775:"23cc94a7",66780:"319e0dba",66814:"6c8a2c04",66881:"951e8508",67054:"a932900f",67079:"a12c681e",67098:"6932e51d",67121:"e6cd005b",67142:"35e697b8",67280:"f094e186",67460:"36fffa96",67536:"60668343",67605:"04f54d0a",67677:"60020342",67681:"65a231de",67751:"93edf0eb",67782:"9b200696",67789:"2d62a10d",67812:"87d03c9a",68056:"51207cb2",68070:"838a69dd",68304:"e3c6788e",68328:"7c9a3e6f",68571:"6697a897",68578:"d6111468",68619:"eac1de51",68632:"b1960cec",68714:"ee9c06ca",68837:"8577e4ee",68900:"de3041f9",68982:"d4d388a0",68988:"b579c02d",69039:"827611a9",69082:"8acef246",69128:"386ea0a3",69195:"c7a78436",69278:"cd69a2d5",69309:"230beaf7",69412:"8ff54072",69646:"2af1f7cb",69803:"5aca47cc",69889:"b6835996",69953:"33a5251a",69981:"77a77c26",69984:"d90fb706",70035:"0e903fd7",70062:"3a6569d2",70113:"0cbaf6db",70206:"6b2329d8",70220:"3537f7dc",70224:"55b64b12",70401:"b3ff3c22",70405:"28bcf09a",70409:"3277c0ae",70447:"43db58d6",70459:"90356571",70558:"6d04ebcb",70581:"f90ae75a",70590:"f1d04cc9",70608:"08cf575a",70629:"f719c882",70829:"bcb7aa2c",70929:"66cbddfd",70940:"d764667c",71036:"ce4acccb",71058:"6d13cf08",71077:"f425fbcd",71160:"f884aad5",71294:"acc94dc6",71325:"d09f83e5",71493:"01b27a06",71515:"73ea1249",71546:"07b738a8",71643:"e3978614",71698:"170d7d01",71742:"c0777cf8",71754:"03281959",71790:"37762d3e",71806:"504845c3",71861:"98d3b2e0",71899:"bf46ab98",71904:"fdd59bdb",71946:"3ea62be5",72092:"3561088e",72112:"37eef953",72257:"547bef09",72265:"c05c620a",72299:"879108ad",72339:"20aeacff",72343:"08d3970a",72386:"46dc2493",72429:"f39d2709",72528:"bcfd8236",72588:"d120183a",72596:"53603836",72736:"644b62aa",72811:"4543ff35",72900:"f744479b",72930:"e240138e",73019:"9e82ee09",73042:"fe988577",73057:"9561a9ea",73059:"da15b51e",73066:"37d82ced",73079:"e1a430e6",73164:"d58e201c",73331:"25bd6f8f",73356:"05bf7730",73424:"4be2129b",73428:"82d0db5a",73485:"1378cbe6",73634:"c30ea1bd",73778:"31aaf730",73844:"b5181d94",73874:"64d46886",73875:"2f399000",73915:"44f2a823",73916:"150584aa",73917:"35fcb46b",73968:"50a74e88",73988:"96766f5c",74011:"e92380c7",74236:"843a91e3",74274:"e4acee56",74285:"6eeef85e",74300:"e2eb7c55",74347:"8116597a",74368:"8543c95b",74722:"5e502850",74760:"6f9e68e3",74824:"e33ca4df",74845:"c60a8b5f",74888:"4efc14c7",74928:"e6761322",75074:"e69e47c6",75113:"87052d73",75122:"9e3dc41d",75135:"f568edb6",75157:"8974342e",75324:"2da689ec",75347:"e2bf34ab",75405:"ee7e9aaf",75425:"5c1961e8",75476:"5e74b485",75500:"06974607",75519:"13838524",75538:"79bee254",75553:"f4e6d415",75591:"658e9b1a",75661:"55f74f0e",75854:"14841acb",75870:"4137b67c",75882:"ca14bce4",75904:"70dc681c",75965:"fe6662fc",75998:"d7d8fc5d",76073:"3b64ec8d",76093:"9e2f7d4c",76197:"3f88b4bf",76304:"7f0857c8",76430:"8ea36025",76438:"9819c3c5",76511:"2daadcec",76638:"8aae09a2",76658:"9f8ed734",76676:"72103045",76713:"9f66ba36",76773:"c2aaa834",76907:"61ff7ea9",76959:"cc339b1f",76968:"4a88076b",76970:"7bacbe9d",77042:"d4f006af",77079:"395a824a",77083:"3063dd5b",77089:"62ae8d84",77148:"26f7ba79",77230:"bcc399c2",77268:"52c01437",77298:"80976d9b",77325:"fadcba59",77342:"b3a7e6dc",77419:"fb0f24e5",77423:"f4646364",77549:"8ae6499f",77682:"4c083605",77755:"50556bb7",77780:"02bebe17",77862:"e5bc0b08",77881:"08112b76",77919:"478408b5",77943:"7e9baf37",77957:"6ac4a25e",77970:"636cc30b",77971:"7bcba202",78028:"69237608",78055:"57c3e5e4",78189:"ac826ba6",78226:"514fd9ff",78231:"a6bb4069",78446:"fc37276b",78500:"7c8e2e72",78600:"01ea5385",78800:"9f4c4209",78803:"a7821457",78950:"f7696b79",79048:"3279ae6a",79101:"2319f882",79143:"45a7c4cf",79160:"f867437e",79204:"10fd2df0",79241:"d8ed61f6",79255:"c83f14eb",79293:"6e938818",79345:"bcb12bcb",79524:"2cb4986a",79528:"cfffc12e",79678:"c0a09df8",79694:"d0584ba0",79768:"70b418ce",79827:"855f29c0",79863:"da23cc65",79990:"19296ab9",80005:"c296ea21",80096:"c6b7e386",80130:"35fc0d3f",80223:"91e4c9ca",80247:"e85ba095",80267:"03298066",80323:"11be3ae3",80417:"e12d1330",80426:"58eeb6a2",80454:"6100bad7",80527:"28e00871",80626:"c07f95f1",80705:"2925661c",80753:"b28e8dab",80957:"6e0974c6",81069:"409e7458",81193:"fd26e284",81271:"3ca92edd",81300:"45aea0cb",81310:"579cb04d",81384:"903cd144",81453:"0c696a30",81661:"9490dd03",81841:"c036d70a",81946:"9561fc56",81957:"460bb8ee",82002:"1adb7e4a",82123:"9fd07b86",82229:"c2c9fdb8",82309:"a06feafb",82353:"3722fa4c",82368:"4f440425",82390:"c263d2b5",82447:"abcccfe9",82478:"a10dc83c",82591:"ee084f9f",82721:"a1825701",82888:"84f25c33",82950:"95385fba",82965:"fa63e70b",83161:"b421302f",83188:"e4a7ef34",83223:"8a2eb5e6",83504:"108181d9",83559:"9e29363b",83678:"9394877a",83698:"4e9df145",83734:"fe8f6cc4",83758:"9d5a9688",83783:"04930936",83859:"fb486daf",83899:"5df0520b",83917:"ee0c565b",83941:"860122bb",83972:"f07eb691",83980:"6800c1c1",83988:"288865ac",84009:"bc2754d6",84026:"570009a4",84043:"a3c34854",84147:"7c8999bc",84184:"b5fe6378",84230:"1cbce941",84239:"3c53cfa4",84595:"0fb792a7",84670:"971977c7",84743:"075d48bb",84769:"50080aae",84824:"9b8e12f6",84827:"d2abc415",84844:"3c041672",84846:"77906727",84879:"1030eabc",84894:"7674bc41",84910:"099d04a3",85015:"f1cddda1",85024:"91f0df82",85110:"776ce2d2",85186:"751ebd35",85196:"473702bd",85454:"8ca22e9a",85476:"bd8730a1",85505:"c6eeb6ee",85531:"a2be7b92",85650:"7a08ea23",85686:"bd15b04e",85870:"30d8b5e0",85885:"1e323564",85891:"e93e76a8",85994:"6cbbe5fb",86166:"1b2120ee",86207:"74480c82",86248:"26f63bb9",86458:"a535e6a3",86463:"8284fa64",86464:"d51d6868",86468:"e266b506",86562:"2ec42ba9",86610:"2cb95673",86719:"9c66ca1c",86727:"e5816299",86764:"50646fd1",86886:"cd59a166",86890:"327d891b",87101:"48d82db9",87106:"ebfe0ebc",87127:"226d0222",87146:"dccd1423",87201:"2d212fd3",87203:"f1f5b592",87222:"9ef85b23",87227:"0e50ab80",87237:"c4c67559",87406:"aadda6cb",87437:"05e6a13b",87613:"a02c9474",87627:"b9af98e7",87838:"d2a135ad",87889:"94150d27",87899:"0270771f",88183:"8f66f8c6",88272:"7cacc6a5",88277:"cd854106",88360:"5b2c1e90",88428:"b8699a31",88441:"f19e5d84",88537:"e75caefd",88618:"e0d3f479",88639:"cdb68f1a",88751:"2b92e290",88759:"b3223334",88863:"4080e63a",89012:"ba2339ca",89061:"b5c651f3",89062:"014a0c9d",89074:"0d9aad3e",89094:"187796a8",89331:"14233065",89344:"dc6b07be",89408:"fc875389",89420:"c9ddb525",89449:"2519e76d",89610:"279b4958",89624:"59f13538",89629:"ebcd187d",89666:"842f58b2",89717:"03ef2ee2",89749:"7b3f315b",89833:"a8c6febb",89838:"a6c476a1",89885:"7b914ea9",89903:"75152cf0",89982:"d0c1fc96",9e4:"40f09738",90056:"a8839541",90197:"914b65c3",90227:"a582bbf4",90329:"172d3f49",90411:"1c428e81",90446:"beee927d",90484:"c47ad6aa",90529:"7ed7b881",90562:"a05daa7e",90714:"93be768d",90849:"476207c4",90881:"2eae63ff",90890:"91131a7f",90906:"5367d6ab",90936:"d0d06df6",90940:"6ee1a63f",90987:"9af8e766",90996:"1741722d",91026:"fc633d47",91110:"01749fcc",91167:"c40907c3",91246:"a16922fa",91357:"0a0aabcb",91359:"9435b847",91515:"e9382f0f",91564:"91e06b0f",91591:"dc7e5c83",91599:"1fe0bbd9",91665:"2be8c4bc",91711:"e5ff9ed4",91760:"2fb59c36",91806:"fd74331a",91810:"9af192e1",91889:"a5b5cde1",91919:"875d7c5b",92006:"8d450189",92051:"1302fd21",92106:"1768bf30",92272:"105a783c",92339:"95248522",92362:"e436ef5b",92378:"381818f2",92582:"f40b8f1f",92734:"d84ca24c",92811:"afad22e4",92828:"2b75fa70",92839:"2cb7f593",92843:"a2752a88",92855:"7ca5a816",92892:"925901bd",92983:"e362a7aa",93066:"a4782032",93096:"926cb9a7",93281:"ab2e6155",93305:"d856a18a",93379:"1a082f7c",93406:"836f7c49",93434:"4526685a",93487:"9647daec",93499:"09d8e697",93517:"71dd56ac",93554:"fb842203",93565:"96467c08",93650:"31fa60d0",93751:"ec827f58",93766:"a4fb3ccf",93770:"0fa7d315",93984:"1ed5f792",94059:"1379cd9c",94153:"3f9c31ee",94191:"903b9c34",94442:"1cac9a46",94499:"5db7add0",94530:"593f6226",94622:"8b50bee0",94654:"2d0b8edd",94744:"999bf194",94896:"0e98c2b2",94952:"89d0cb12",95027:"6378e8eb",95032:"8aad97c7",95110:"41743e2b",95192:"fd90adc5",95216:"e678750d",95239:"aca59460",95297:"7b02bab6",95342:"4bb438aa",95355:"36b5d2a8",95372:"59946b4a",95526:"8ca1a7d6",95769:"54ea74cf",95882:"39dcbf54",95986:"e7f4b197",96014:"bebda8f7",96097:"1ffdcf48",96159:"d86fa332",96168:"e723ebec",96285:"eab291e4",96298:"db392dc7",96316:"202cb3ea",96346:"4a45dccf",96522:"2c4a7a0d",96616:"38563dd9",96625:"3e9f087c",96660:"4b81afbc",96852:"db313614",96855:"7da8459a",96884:"5b382502",96887:"506fcbd5",96898:"9f30c215",97074:"85c86f19",97104:"929b1956",97118:"83851a36",97123:"164b8bf0",97403:"9f025460",97409:"867d40f2",97431:"a7f57014",97525:"d21218d3",97660:"217833a4",97728:"2ab745ab",97768:"af57d25c",97783:"807d73b4",97798:"2e4313c7",97800:"35d822a9",97854:"c928033d",97930:"5889664a",97971:"4f9721cf",98057:"b0ef1258",98058:"a5558109",98106:"5c5700a4",98263:"19294cd3",98264:"fcb061c0",98312:"8e1f2212",98324:"a5ac9d4a",98358:"8bce7cf4",98370:"8b52d71d",98395:"97da4af8",98523:"854bef8b",98612:"79d6ba63",98690:"babac225",98901:"301fbfbf",98961:"75c483d3",99032:"53f651e0",99148:"7e479bf2",99185:"cc32e5d4",99203:"05fe7e15",99249:"c6c4221c",99257:"f9887d18",99273:"4e5e8c37",99434:"01edac03",99462:"944764dd",99541:"b49080f2",99700:"96f75d03",99719:"0afaf755",99720:"3cfe17ec",99790:"b167e7f0",99801:"102bdc13",99920:"a8b37357"}[d]+".js",r.miniCssF=d=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(d){if("object"==typeof window)return window}}(),r.o=(d,e)=>Object.prototype.hasOwnProperty.call(d,e),b={},c="react-native-website:",r.l=(d,e,a,f)=>{if(b[d])b[d].push(e);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var c=b[d];if(delete b[d],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((d=>d(a))),e)return e(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=d=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(d,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(d,"__esModule",{value:!0})},r.p="/",r.gca=function(d){return d={13766180:"84595",13980018:"9367",13989100:"66814",15800944:"72736",17217875:"41093",17896441:"18401",20144648:"5032",25524074:"21440",27033360:"87237",30138938:"26506",33124494:"77419",33909044:"81841",35024544:"8372",37880922:"97104",38755343:"14833",39100033:"7034",39254045:"9105",39991005:"26843",40984471:"67460",41988923:"47097",45568034:"7082",52156499:"5800",58869656:"42038",65200372:"84846",65428859:"33296",66494347:"89094",68381642:"65795",79448688:"61401",80036715:"1531",85431298:"20723",86316871:"11279",89270831:"17763",89866037:"81384",91695048:"81453",95722794:"99720",99403472:"31283",e053db0d:"38","319411a6":"55","89bf39dd":"354",d64418bf:"378","51b5d68d":"648","087b7d76":"686",c8899d24:"870",b196f212:"872","6aeefb41":"1039","9cdfb8c3":"1073","4865bf41":"1093",b9361f7a:"1158","8800e804":"1308",fc260886:"1316","2827f11f":"1350","21d4bc0e":"1372","0ba118cc":"1482",d6342268:"1510","813ca450":"1520","4b4509e1":"1651","357d2506":"1727",beb3ac95:"1771","1d5130cd":"1786",f73e1de7:"1793","1c63adb2":"1849",ca213633:"1873","1705a2f5":"2016","5dcbc311":"2183",cc2c9ee0:"2197","0b3648c1":"2306","1237a0cf":"2476","0c9604fb":"2505","9ae78195":"2518","024e8286":"2520",f9922edf:"2572","6ed01025":"2772",b4f299c3:"2853","68ef1759":"2902","6de3d5b3":"2945",ec0858e5:"2982",d79e8bdf:"3034","2d554375":"3120",f78f0390:"3248","306d2344":"3249",db79922a:"3295","08a0614c":"3312",d1a27f99:"3330",d6c2ba00:"3377","65fb4e8d":"3425",c83604a4:"3446","6b49554e":"3489",d6811676:"3546",b29e94ce:"3586","7b20392b":"3738",fd5475e9:"3916","675ebcca":"4005",e5bf6a34:"4023","6b38eaf7":"4041","5799d0dd":"4097","33cddceb":"4558","7d8f16e8":"4642",d2174fb9:"4760",c38010e5:"4768","8585b615":"4781","8a049a88":"4812","9ae0af9f":"4866",db47402c:"4907","30c7ae5a":"4988",fbf58390:"5176",dc123d29:"5195","88f8cf7d":"5211",d60a7f72:"5228","23636f9a":"5293","94490ee2":"5373","8c2ad0ca":"5411",e6a6f3dc:"5421","3366e05e":"5444","6a0d7dd4":"5541","9ff7b4c0":"5568","3e1847f7":"5702",c06e8323:"5723",dbf7beca:"5759","0fb34189":"5868","12980e8b":"5910",b12657f5:"6131","3da7314b":"6204",ddd9a697:"6359","3f42c85e":"6741",e6b85556:"6775",a85d2d78:"7116",c4d886ef:"7125","078c5e69":"7190","157f3349":"7265","15498a1a":"7323",b5a7fd43:"7365",ab6173e5:"7489",ec0c998e:"7551",b7aeb43a:"7662","422866f9":"7684","46184ef1":"7708","7a693bfc":"7734","1d59c923":"7735","9cc3267b":"7754","38ed4955":"7794","85bac8ef":"7829","33c3be35":"8120","5d515b10":"8152","451a8567":"8220","535592ec":"8912","95a63350":"9001","03a32c63":"9004","3521e68a":"9132","0098ae6f":"9158",a992a0f8:"9245","937991a9":"9363",c99ef3c8:"9401","782ec3fc":"9410",bf1307fc:"9525","6b1867da":"9592","5e95c892":"9647","9a45f095":"9660",ac923fd4:"9685","801550f5":"9733",ddd72b6a:"10099","5331b8f3":"10120",e7d7dd9f:"10169","8c833fcf":"10219",a3f10777:"10233",de744a63:"10287","1e64aab5":"10526","06a38139":"10636",a6e22173:"10726","4f1e6f78":"10814","76e173fc":"10853",fcb6886d:"10900","45450b3b":"11198","729c0f86":"11268","321d4575":"11274",ac524e79:"11331",aa64b883:"11358","34eb68ef":"11396",d38055fb:"11474","3fb280d9":"11501","5530c297":"11571","1960ca85":"11698","1e909336":"12001",d76382b0:"12005",e595470b:"12054",cfa740c1:"12148","64c7b138":"12161","2cd87241":"12188","332e9e34":"12193","8c3ef24b":"12230","138e67e4":"12284",c42662d8:"12306","0091494f":"12442",ef7bdc3c:"12532","93d55f6a":"12588","3dd00d0d":"12594","12e7cb89":"12620",ab50fe1d:"12869",f9a1286e:"12979",f0b7dbe2:"13283",cdf27114:"13285","878ba96b":"13308","1d73041c":"13310","49c13a5f":"13319",b2115c5a:"13335",e7e29711:"13388",e3bb5330:"13458","91336b3a":"13471",b26eaa28:"13472","38d612cd":"13532","6fa2d900":"13659","4e3142d4":"13724","52633b27":"13821","448d2e39":"13828","416cb7f4":"13960","29393bfa":"13976","9863d968":"14050",dcf691c2:"14065","6cdb7f96":"14074",b4c1c629:"14145",edeb7ca8:"14164",d1d509cf:"14270",be26c63d:"14318","61182cc0":"14343","8d5eac66":"14533","1a297150":"14565","1cd20a8e":"14581","7d092cc9":"14606",d9791473:"14615","9dbcff21":"14638","8c1b243a":"14663",e7700b5c:"14680","3753089a":"14739","8c1ce502":"14748","24ac12d3":"14831","5db99c8c":"14880","69697c25":"14934","18bb110a":"14947","0b3b7529":"14957","056867f4":"14999","04e1afbd":"15006",f1d9f180:"15034","1a7fe871":"15129","8c2e6727":"15215","5771157b":"15286","3dfaf92b":"15494","67a43a2b":"15549","64db8c83":"15627",a679d266:"15640","426d37cf":"15718",f8f6f210:"15722",f1ccaf05:"15838","834474bd":"15875","9da46a46":"15906","2e831bbf":"15978","8dd98cd6":"16031",b29ca04c:"16107",b4a9e2bf:"16178",bbc0c093:"16231",bc684a49:"16244",c1e04fa9:"16280",c4d53b4e:"16321","397ccaa2":"16420","94bb8da9":"16530","61df34c2":"16644","41badbb5":"16700","12e81c73":"16943","347319a3":"17082","56376c93":"17233","05cf0320":"17332","0dd9911d":"17439","8149c1f6":"17447",ffd1aded:"17502",c7b0479b:"17541","5f8ce4cc":"17644","647c66a2":"17810","6ad22d2d":"17822","7ba605c7":"17826","79408a0e":"17927","4b962370":"17952","3a5cd9a6":"18211","583c7938":"18231",c41cb816:"18241","9e54149e":"18279",ce798db4:"18357","498677a1":"18376","15de7ec3":"18418",f6364ade:"18432","0420286f":"18483","70ac8688":"18484","75b8d183":"18527",a4c399e2:"18561","3b1837b8":"18563","7f091097":"18590",f38a19d0:"18701",f68825ce:"18796","634e5b87":"18873","9714922d":"18923","57589dde":"18950","23b2ec0b":"18984","662ccfa7":"18989","8f0d6e5b":"18991","9ddb20fc":"19006",e590aaa6:"19081",d3fd3247:"19106",b7257cf4:"19141",b4bdd337:"19182",eeccbb9d:"19184",b08e6fd8:"19200",de28e96e:"19257","2ff152fe":"19258",cf01b66e:"19322",a911dfe5:"19335","5dbec22c":"19429","8c81d4b1":"19534",d0603a07:"19634",afff73c8:"19693","07fd7997":"19694",eb5418d6:"19736","4cbc9dd4":"19974",ee872789:"20226",a7da7bfd:"20279","3560f547":"20313","3c18d05a":"20320","9376381b":"20388","7da464c5":"20523",ad5d8c26:"20592","30bf7e1c":"20594","45f9e45c":"20658","9c131906":"20731",a39c2644:"20739","3a6fee66":"20745",ef80f5d7:"20818",a2b80c2f:"20831","5221567d":"20857",aa88182b:"20910",aed1fdfa:"20953","7c650e8c":"21016",eb38f5fa:"21023",e19eb737:"21100","1ac276d7":"21154","09a9e026":"21203","23ee098c":"21306","06a3b629":"21314",bc659752:"21376","34a3a287":"21608",ae137543:"21922","4e1aad47":"21932",bf19308c:"22019","0a196f91":"22022",f6dc595b:"22100",fb71e943:"22106",f1129715:"22155","6062b3b1":"22227","5510f1b7":"22252","8b513d12":"22331","2cf1bed0":"22574","3d37559d":"22629",ee801bea:"22646","4396b59e":"22736","8968fb7b":"22843","20c45178":"22903","7c4f02d8":"22905","260634c1":"23008","623d7060":"23077",ced1c827:"23282","20a41275":"23287",b7112064:"23596","3b17f5a4":"23620","17ec9470":"23685","28b6b6ba":"23694","043f5d57":"23699","782d5715":"23778","111e950a":"23800","50e6032a":"23877",bf77c5df:"24051",d1a6a78e:"24154","9ec17576":"24162","1de587e0":"24262",cf645fbf:"24475","09de660c":"24612",ef084d6b:"24694",c721bd5f:"24869","993625b5":"24886","67574dd0":"25134",bd7672cc:"25187",cbb92f95:"25205","46a5adb6":"25248","07a91882":"25287","114e0000":"25580",f7874cab:"25747","0a0bc396":"25823","3f78ddfa":"25846","06cd84e5":"25866","39d9d3b1":"25890","3163195d":"25979",f135686d:"26011","30d73f3c":"26016",bae45495:"26018","95bb95fe":"26112","51d1e75a":"26130","2a7802e5":"26185","500270fa":"26220",f26b69fd:"26246","929fe6ef":"26651","7b293dc3":"26660",e264076a:"26844","2845b5fb":"26851",b36fef1b:"26862","08e13917":"26881","626019ce":"26883","039b8e3d":"26901","06dba648":"26926","9cbfa21b":"26983",f64ddea3:"26994",a32085e6:"27001","6ba5ca07":"27162",bd5fb03c:"27236","0bb0f3cf":"27281","716c2719":"27305","7e185b3a":"27413","32c64886":"27517","75ef737d":"27561","8ede17c4":"27598","614f9872":"27626","623cc3b0":"27677","134ae693":"27743",c9b36244:"27770","8bad6f6b":"27890","08d358f5":"27964","6928d3e3":"28049","713f446b":"28084","9644b941":"28192","2549e033":"28232","2dca9575":"28239",b1c5bd19:"28260","0cf75f61":"28295","87119bda":"28314","91786f2d":"28350","9240dba7":"28368",c737572b:"28443","6c55ddd3":"28459","38c36092":"28467","1ea42534":"28484",bc22aba8:"28596","486059a3":"28615",a3929b5f:"28874","93d5903e":"28925",a5c5fcf6:"28932","717ea6d4":"29022",c8250b16:"29046","42a3ef15":"29070","9ee19b63":"29099",e43bbd8d:"29269",ea9d8190:"29360","674d6b73":"29388","3640f479":"29406",ad1c6c85:"29516",edaa9a97:"29532","5d7ae6cf":"29646","80f530aa":"29683","4976484d":"29689","031d8f0a":"29796","45209ae6":"29839","3d33c646":"29973","326739da":"30120","4a5a3e4f":"30174",cbe6a4fc:"30179","9cae6ca6":"30217","7c6c7a0a":"30453","82c71751":"30481","1821187d":"30497",e81ab398:"30508",b81226b7:"30521","6fed3a2f":"30556","2338a9e8":"30738",cdd4e3f0:"30748",f7de2b66:"30751",de334689:"30755","5487638e":"30835",f7e8b9a1:"31040",e24ac2b3:"31181",bc26c448:"31203",d29b4af3:"31212","4084a0d2":"31218",c10d4556:"31251",ffe4f0b4:"31268",c935642e:"31278","3d6c47cd":"31753",a6a086f1:"31796","51d9b128":"31905","927c83fb":"31987","37d005cf":"32075",b2cfddf1:"32175",c50fc537:"32227","2003fdf9":"32243","6b8c6e92":"32318","2df7b45c":"32322",ab3c2611:"32394","7b907fd6":"32434",bc2f7794:"32495",c99c71a3:"32499",dbf682ac:"32843","1076b3a4":"32893","81dc996f":"32999","4eed3210":"33053",cf6e58a7:"33104","4104e253":"33227","6dadabbe":"33308","0199d4ca":"33440","1b274068":"33573","4f61d82b":"33602",e5a951df:"33615","74683f69":"33712","63c8cbb7":"33889","3b653f93":"33948",fe15004d:"33994","326a97e1":"34025",d043f0f1:"34029","6fd3f1bc":"34186","3070d3e4":"34199","94041cd4":"34204",eeeb5c38:"34345","155b8540":"34457",eeda504f:"34517","9a09606f":"34674",b9ffb51b:"34714",a7137c8d:"34725","36e03c34":"34784","18b93cb3":"34828","08ffabcb":"34921","4fb4e792":"34946","77b27fcb":"34957","4ffe34ca":"34963",fdb26c07:"35039","17a8dc81":"35142",ac6b3262:"35204","8a0c818d":"35224",eeead8f6:"35331",db66ee01:"35350",b75129ac:"35447",dba0012a:"35460",f156e6fd:"35498","5b3fb50e":"35571","56b30f1b":"35616","07f65d8b":"35693",aba21aa0:"35742",f5851674:"35753",c00af2b0:"35781",f84cf5bf:"35813","5fbe96f6":"35864",a728158d:"35903","4ea08adb":"36038","4b14b251":"36076","5e351f3a":"36088","1a9dbb4a":"36135","24e86038":"36241",c96104f9:"36291","50dd9b79":"36317","59d809ff":"36488","54708e5f":"36533","985e27df":"36573","686b0bca":"36763","226a5928":"36768","801384bf":"36775","9dc99f39":"36781","1fc8674b":"36800","039d54f1":"37163","42a13e6c":"37242",e95a72c7:"37262",baa9b3e7:"37312",a079babe:"37616","1ba86576":"37645",b24d9bb6:"37670",a4970bd4:"37750","6184db93":"37766",d0ef1249:"37834","8cf5de12":"37847",a27e6552:"37868","99cd3a09":"37889",fbc03c2b:"37988","97ba5e68":"38032","74f98b1f":"38102",e758129e:"38267","240f2433":"38387","16a62667":"38454","41b14717":"38518",e6b2312c:"38547","81d00bc5":"38620","9029660b":"38729","53331f41":"38817","07c0d8c6":"38858","69d614c0":"38872","62f145c9":"38973","9955d1be":"39149","4bac2214":"39246","8c28f592":"39360","068c006a":"39409","6a5926c0":"39411","8d2e0306":"39425","22fc99f1":"39455","04633a36":"39617",fb578f06:"39643","0ac6d6a1":"39645","5c50ab3a":"39693","5dfec97f":"39816","35d1b9ed":"39914","5629cb3c":"39940","66e1c749":"40018",d49333b1:"40226","432a68e7":"40253","2d74339a":"40348","26c5b03c":"40435","4e81c48e":"40603",cd3a106d:"40631","578ba53f":"40636","61baf4ec":"40677",cfde41d7:"40715","6323be29":"40919",af6afb7f:"40926","9a4e11a7":"41006","01fb1614":"41072","22d7af95":"41123","1ed4e501":"41126","0fc665a3":"41181","2781e23a":"41242",f14e55c8:"41418","47a28214":"41432",ba1860c7:"41535",a221c716:"41586","0147fdcc":"41593","1ea001ab":"41622",cab74b7f:"41675","12bf709d":"42048",b0ab0602:"42092","849a2d93":"42095",d301ca6f:"42113",dc1576b0:"42115","2066eb3c":"42158","1a49fe29":"42172","78b274e1":"42177",d09c12db:"42332",a7d1ebe1:"42369","9dc2e4c7":"42374","3d175bf6":"42463","5ac697d4":"42534","14d4a842":"42565","2cd4c511":"42568",c9eff2b3:"42607","67e697ca":"43059",b3fd545e:"43129","238efb50":"43248",c020d3f5:"43320",e4de30c0:"43325","25738e2d":"43333",a0a0a2ed:"43353","4cc410e3":"43530","8ae74b50":"43619",b4bb44c0:"43664","82fa5608":"43679",ccf671a6:"43772","1d6138da":"43843","0686000e":"43850","9d97f7b6":"43853","61474b2d":"43979","186a9ba9":"44024","49d40500":"44031","6a645174":"44085","2029ef4e":"44234","294e92a9":"44250","1778559c":"44252",bbdeca34:"44275","868c59c1":"44360","98f16971":"44436","574b16b7":"44441",bbd0c512:"44546","9aabffe1":"44562","4aaaccfc":"44671","0044a2c6":"44749",c3c09026:"44759","94687d26":"44899","4f3bda51":"44973",c050f0c1:"45019","3a3f3686":"45113",d5a6e29a:"45140",d480b873:"45147","19aaa7d2":"45193",f3cf0483:"45230",d28adcd4:"45319","0cb02a81":"45324","8e40a65f":"45326","98b25e1d":"45361","001dcd58":"45534","5e797937":"45563",c996deb9:"45764","1e70be21":"45772","7223e43b":"45825",b8d0a2d1:"45897","64df562a":"45905","4f1150eb":"45961","9e461bb0":"45988",f313a82c:"45992",b7799679:"46027",cebb851b:"46111","0b9b9699":"46131","48f8c159":"46135","74878dd4":"46321","3262a2f5":"46362","98721dc9":"46436","0c794514":"46442",a9bd4440:"46463",ed655da3:"46504",c6a04e07:"46633","08e1c021":"46671",de795cee:"46672","190f221c":"46683",a2490e07:"46721","98c3dfd0":"46728","491f04b4":"46857","4e090f01":"46872","87ab4d1a":"46895",af9b37be:"46962","04037fd3":"47044","9ad607d8":"47116","943dd7cb":"47121",b2516716:"47173","63600a6b":"47229",f068a30d:"47299","13af2f7c":"47320","12b28870":"47331","1534a170":"47343",d435efc2:"47417","8b188aa1":"47481",b42b2a17:"47506","5d9b0d6a":"47726","00b6ea12":"47744","6ca8022c":"47758","9b11a7b5":"47807","3370e507":"47817","79d149e1":"47881",d8d1979f:"47927",fdd91106:"48052","733b69e3":"48165",e4de8e8e:"48205","469a9a57":"48221",d3c1a4fe:"48244",b25f10a0:"48334","804c4949":"48392","6c54cff9":"48513","951006af":"48589","8052dbb2":"48856",a01fd1dd:"48900","12e59f4a":"48944","60e27521":"48983",f666756e:"49032","3bf70e45":"49209",b45ad73f:"49364",ae7a9ea2:"49534","3d512310":"49710","0a638240":"49769",b87ed5c2:"49815",c398a51a:"49854","2b7ed3bf":"49868","1448e88e":"49918","0cd05ac6":"49989","04cee9fd":"49999","2bf753d2":"50088",ded812ef:"50094",dcaae713:"50418","65456c03":"50435","7510cbdd":"50507",cbae671d:"50519","31dc03fe":"50556",a2ec8490:"50581","0327be96":"50627","01005a98":"50695","037bf98d":"50736",b63db1e6:"50760","2add6896":"50887","29cd52c0":"50913","71e3662e":"50940","16ee311f":"50961","28e9e915":"51083",e62508a7:"51141","2b43cbc0":"51318","6e6ac1cd":"51354","578f8908":"51376",eded264f:"51377",de8df556:"51408","24abcf9b":"51418","02ed4bab":"51421","338b3790":"51462",beab48ee:"51483","83b27652":"51582",b6ebe4da:"51588",f59aea7c:"51602",e7ea3ba0:"51613","99056a19":"51721",c23b0ee1:"52004","2c9ede42":"52035","1acbe180":"52148",ffb79954:"52175",ed4f607d:"52253",fb054755:"52419",d5499c5d:"52424","31cbe202":"52483","5f226e65":"52494","4576eff5":"52555",fd880ad6:"52630",c4f5d8e4:"52634","69f0ac79":"52662","356a0ac6":"52750","9b053948":"52771","68b823fd":"52796",c804bda3:"52860",fe826c2c:"52942","03d50046":"52951",e367aa8b:"53030",a8aa25e3:"53061","35b69d2c":"53105","5f3f388e":"53177","86c68e3d":"53186","1ad120a9":"53272","472ad214":"53302","57f3f140":"53445","1eaf0d5b":"53513","5af30f32":"53581",f31ddbdd:"53607","461c5b22":"53724",bbae08e6:"53820","4b1b6b6d":"53842","3760029d":"53850","3b9f8a02":"53870","7d1976ec":"53907","4cf604fd":"53910",c6a0cc74:"53912","9b9dc0e1":"53978","6fad45aa":"54007","206c5d8a":"54146","6f1bcaad":"54169","53bb3d97":"54178","1aab41e5":"54203",ea65614d:"54209",a2dc6bf0:"54307","061959ba":"54346",e21e838c:"54376",bc8995eb:"54448",ddcfb1bc:"54458",e6740c51:"54462",c0cfec7b:"54502","7960f2a0":"54690","5eaec2c9":"54728","0aa8e717":"54733",dd6d5ea0:"54840","4710ef09":"54855","97a57718":"54996","8a792504":"55089","7210b988":"55100","512830ea":"55156",bf718f16:"55172",a44d9688:"55181",b2622f06:"55241",a770fe3b:"55254","9006e630":"55354",df544d08:"55378","29e01d36":"55419","580ea038":"55519",d734f793:"55528",c20f03e6:"55624","92947c3c":"55821","7101161a":"55829",d56b8eba:"55840","2736e981":"55842","700c0943":"55939","694579f7":"55956","902a5db0":"56046","7374b7af":"56076",c95f38cb:"56136","75ebea5a":"56218","250b4dc6":"56225","1aa1a063":"56257",a2e66dcc:"56331","6efd9833":"56335",ca8b31c1:"56361","35c1434a":"56433",b9c445d5:"56481","5dffea44":"56486",d4077890:"56498","87dd242c":"56543",f71dfec3:"56632",e20ea0b5:"56783","23d8a97e":"56852","2a6f3007":"56862",fa11d8ca:"56914",e644f73a:"56959","4b97d39c":"56970","86ef1cd5":"57013",e0cb77f5:"57038","1d7f05a3":"57050","38290d37":"57119","811e7138":"57137",bc82dc37:"57153","08a5ab73":"57194","4a70ef18":"57221",e3874c12:"57282","1cd2432c":"57331",c31cb8ac:"57455","4d79d356":"57529","02db2b77":"57565",e26f611b:"57648",a6a87773:"57669","9eda2b4c":"57695","5f11e2df":"57775",bfa82433:"57820","68ed074c":"57830",b71414c5:"57834","4dfd395e":"57923",f6da0534:"57982",b698f5b8:"57997","276ccdc6":"58009","0ade90c0":"58013",c58d17fc:"58018",af8a22e6:"58034",bb898d9a:"58236",a3196274:"58376","727a66d9":"58441","062a5932":"58443",d2f06d62:"58449","22a05a92":"58583","2a0ad02b":"58585","6347278b":"58598",a43a81e0:"58634","7890cc65":"58688","9fd8720a":"58812","2548f5e5":"58945","7e4d0154":"58989",eb50cd7d:"59045","43abb1af":"59099",c7cd3677:"59137","27022ff4":"59206",d7165f5e:"59262","793d492a":"59360",eef85b41:"59659","76571efc":"59711",f35dcbe0:"59773","116594f6":"59973",fdabb8ac:"60210",f28bd0ab:"60304","0ed694ff":"60503","80f08778":"60615",b1228550:"60686","3804da35":"60699",cc087f33:"60708","36bb38e9":"60843","9090bfe2":"60862",abdaff06:"60933",ce6049ec:"61096","56b54d0c":"61134",f4870e22:"61143",b2e9258a:"61151",af992987:"61196",a7456010:"61235","90487a84":"61400","319045b7":"61420","4bdc1132":"61467",b0f4752e:"61500",e60b42c6:"61577","1483912b":"61609","14be3d02":"61664","2fc6fcbc":"61864","4ed22eea":"61869","7ff64393":"61875","6e9e7da5":"61905",ef017137:"62013",ab535e60:"62026",e2626cf4:"62033","2c1292e3":"62114","1a4e3797":"62138","293e43ee":"62229","7b7bbdc1":"62253","7b3388c5":"62430","1791f58f":"62508","75ec37d0":"62793","0a79c9a2":"62847",f622ad78:"62901","36778e0d":"62959","320ebc57":"62972","0296afed":"63006",de7e05af:"63010","9c354e09":"63047","36cc6e86":"63167","976ab885":"63199","402bdd59":"63317","67da8bf2":"63373","1f6bedff":"63445",cfc2f36a:"63593","3493d660":"63602",c8cf90b4:"63612","13ee8587":"63615","2547de89":"63635","5cce1ffd":"63736","17352c84":"64110",dccccdff:"64147","34db6793":"64153","20e9fe55":"64342","915f3d1c":"64417","0b139e7e":"64495","36fc15ca":"64603","0dc2c486":"64615","0181b3db":"64752",c7fc39e6:"64761",ebf19685:"64797","0d626c57":"65014","70a0ba6e":"65125","8f2b33cd":"65194",b8c8be29:"65284",b5813517:"65293",c86d871d:"65340",c667a225:"65455",f6d61436:"65501","83a785e6":"65552",c159d2a1:"65593",e2559165:"65633","7f2b816c":"65664",bdea594d:"65957","1f391b9e":"66061",f5bf0763:"66078",a7fd529a:"66106",dcddf26d:"66142",a743260a:"66157","97affa7f":"66238",ad4064bb:"66262","853aad93":"66425","3a0563f8":"66473","60eb9b40":"66541","8fa43a6e":"66697","41794b63":"66733",cd2e908e:"66775","9b60a6c4":"66780","8f5764cc":"66881","60d0d69b":"67054",cdf0b926:"67079",a7bd4aaa:"67098",af78357d:"67142",b6220ba5:"67280","2c2b467e":"67536","0747ea75":"67605","509d8239":"67677","3861ecca":"67681",bff0709d:"67751","40628e9c":"67782",ae6fccdb:"67789","9bf717b1":"67812","1404e73e":"68056","0a8cb4e2":"68070",e15e352e:"68304",c1467f4f:"68328","7f6979ff":"68571","33f86aee":"68578","93583d2d":"68619","7f6ca9e0":"68632","605b0891":"68714",fc751a3d:"68837","31b01d6d":"68900","345c2f79":"68982","56a727d7":"68988",c28f96f6:"69039",e711fdf3:"69082",e916fc52:"69128",d88eb93c:"69195","088c6538":"69278","6820c973":"69309",b233694f:"69412",fed8e900:"69646",a8687ac8:"69803","1741557d":"69889","02da5ab9":"69953",e71901c0:"69981",d816ab3f:"69984",c19ed1d7:"70035","97b28733":"70062","36107b78":"70113","6131ccf6":"70206","0a033318":"70220",b8796a33:"70224","78bcd1a8":"70401","21e474a0":"70405",a535188c:"70409","4f73d880":"70447",c958b86c:"70459","3701251b":"70558",c99653b5:"70581","55f4c5b3":"70590",bf4489ea:"70608","9c00ca68":"70629","012d05d8":"70829","0c5f8fb8":"70929","5e8e437b":"70940","3b6f8471":"71036","2092b488":"71058",fd0805d1:"71077","39ae1dcc":"71160","2ed06246":"71294","1f8182e7":"71325",c1220e0c:"71493",b15ec89c:"71515",deb2d893:"71546",f2b40bbf:"71643","572bad33":"71698","0b242e68":"71742",cf9d5ce2:"71754","601330aa":"71790","15c9a7f1":"71806","24e50fa3":"71861","877fc452":"71899",a6d3b32b:"71904",b4ae246a:"71946",b8cf7f45:"72092","9bdf7f32":"72112","285b3354":"72257","784fecab":"72265","73f011ae":"72299","618b84ef":"72339","9915efaf":"72343","531dfa41":"72386","78406dfc":"72429","1bcfa046":"72528","712603f6":"72588",c74f51da:"72596","71449ed6":"72811","5a35eefa":"72900",ff0316c2:"72930",d1ebdf95:"73019",f5d38d41:"73042",fa2e85d3:"73057","3bb14ef7":"73059","2ac0b4bc":"73066","36627b26":"73079",fb100ce8:"73164","6e5bc6ab":"73331","91918b05":"73356","717f9656":"73424","42dbec43":"73428","525fe6fa":"73485",e4cd52a9:"73634",cad34824:"73778","77f249ff":"73844","42b9625c":"73874","7600c741":"73875","0efc406b":"73915","43816d14":"73916","728d2d7a":"73917","4885913a":"73968","2581efca":"73988","3b3060ca":"74011","17bfe970":"74236",ea73ae50:"74274",d89c5153:"74285","54955dc8":"74300","8b30a105":"74347","450cda6b":"74368","3c68b9d2":"74722","6137920c":"74760","078a9b71":"74824","64187b62":"74845",af62122e:"74888",d695235e:"74928","149005f6":"75074",b591ae09:"75113","1cfe702a":"75122",d0cd4a88:"75135",d33531c0:"75157","73da224d":"75324","75e5d073":"75347","6f5989c4":"75405",e94d0088:"75425","1082d4d6":"75476",ce5cde8f:"75500","7d2cd00d":"75519","45618ae1":"75538",da5b456a:"75553","1836dca0":"75591",eb1e27c5:"75661","4ec5dc72":"75854","3c8791ea":"75870","15770add":"75882","437495c6":"75904",fe60c9cb:"75965","5bb745c9":"75998",d4be08e6:"76073","9a1f20dc":"76093","37ae9f43":"76197","54255f28":"76304","091cab81":"76430","2fb758e0":"76438","2ed989b5":"76511",c29853ab:"76638","1daeb507":"76658","243fbebc":"76676",fecf6185:"76713","76228cdf":"76773","8136ae62":"76907","71b28fa1":"76959",c759f874:"76968",ac5ffeb9:"76970","493c96f5":"77042",dbc6080a:"77079",eec26f27:"77083","2dc15feb":"77089","354394ed":"77148","127efe29":"77230","925bf856":"77268","0b447833":"77298","8af066b3":"77325",dae67a8a:"77342","9e0309bf":"77423","6e348b42":"77549","0667b750":"77682","85e970a9":"77755",d385ee25:"77780","2b53b872":"77862",b5352e4b:"77881","4d7503d3":"77919","698d87d8":"77943","09917fe9":"77957","47dd0419":"77970","162ee6b1":"77971",a7973d5a:"78028","0c2c0374":"78055","320b7954":"78189",fc04664d:"78226",f9ef2d71:"78231","487e8214":"78446","787d1332":"78500",e3800717:"78600",d5ca4adc:"78800","02309956":"78803",cdc8a01e:"78950",a94703ab:"79048","2b8d9243":"79101","207889a9":"79143","20da3b21":"79160","3e3c20b5":"79204","0d680d08":"79241",acac7935:"79255","27161ea7":"79293",b63e4b40:"79345","624f0d9f":"79524",a67fb928:"79528",db5319b3:"79678","6c509596":"79694","278d928c":"79768","0d01e3af":"79827",a6efc48a:"79863",d90455db:"79990","8d1d2f63":"80005",ed95a3f4:"80096","6a58dac5":"80130",e0e92014:"80223","51fb9cc7":"80247",a2e2213f:"80267","55b63d4c":"80323",e760573e:"80417","86abb156":"80426","670e8940":"80454","4b916891":"80527","2954fac3":"80626",c608d889:"80705","2a144c3d":"80753",c141421f:"80957","31aad40d":"81069","1d104e2e":"81193",ab4a0273:"81271","821dce8b":"81300",f115b6dd:"81310","1961b513":"81661","2db8c4b6":"81946","3efc55e6":"81957","389fb278":"82002","98cc0cdb":"82123",f2d290a0:"82229",d05ae094:"82309",c13e7fb3:"82353",bed8702c:"82368",d09b6b40:"82390","7a423906":"82447","1658c756":"82478",d00a879e:"82591","0a489978":"82721",d788b4db:"82888",c09a614e:"82950",f8b1a534:"82965","27caae05":"83161","787a5247":"83188",d771e5a2:"83223",c2a87ab1:"83504","117d6e39":"83559",b8509072:"83678",fc8b2c25:"83698","5386bed0":"83734","8c1e11f0":"83758","24a9a59a":"83783","8d3fc5c6":"83859","0bcf800a":"83899","0bb26877":"83917",be7b5d27:"83941","1ab5a786":"83972",ec45d43c:"83980","79829de9":"83988",ad1533d5:"84009","4dd33177":"84026",c77f28be:"84043","7fe5042c":"84147",a74fb6d1:"84184",f0e049cd:"84230","292ebda1":"84239",f1dc25e1:"84670","38eee5c4":"84743","1a44db19":"84769","4dfd0a79":"84824","5a876e59":"84827",e8780874:"84844","2cf74606":"84879","911052af":"84894","260946d2":"84910","08c15c4c":"85024","3ffb6394":"85110",c3592a68:"85186","50f74dc8":"85196","9787e2b5":"85454",d837d0de:"85476",ab51e9a4:"85505","31e0ef60":"85531","704c7051":"85650","8c82037f":"85686","38b28ba1":"85870","4d9bd555":"85885","6d3744bb":"85891",eaf9832e:"85994","25d2a069":"86166","49b8fdc8":"86207","7a6c553e":"86248",ca006c66:"86458","5ea6b885":"86463",b6fa087a:"86464",d01173a8:"86468",c64024bf:"86562",ad3b8188:"86610","73039b17":"86719","7a63ecef":"86727",ba2d52b1:"86764","28d3cf43":"86886",daf96af6:"86890",f9145531:"87101","475ddf72":"87106","6de08607":"87127","798845d8":"87146",eca1dea2:"87201",d8db4bdd:"87203","7fc59764":"87222","900a3533":"87227",e4160942:"87406","5deadce3":"87437","76e32d2e":"87613","1dfed3a8":"87627",b54696c0:"87838",a84ffbb9:"87889","95d3faaa":"87899","8f3faaa4":"88183","81bc0670":"88272","5036f758":"88277","20b2c2b8":"88360","4b5c0d4e":"88428","169f5904":"88441",c0db360b:"88537","8aeb1be7":"88618","3893db7b":"88639","147dc28e":"88751","79c31966":"88759","052da1da":"88863",e52f87df:"89012",b87596d5:"89061","1b602655":"89062","7bf84062":"89074",d480b2d8:"89331","3380ced1":"89344","051a0a0e":"89408","013c1bab":"89420","4f718585":"89449",e16442cf:"89610",b9e9b3a4:"89624","23909da8":"89629","8fc7f1ee":"89666","30fb9325":"89717","444ce9f1":"89749","898f93c0":"89833","7563de56":"89838","8041f9fb":"89885",c9fc4253:"89903",c57040ca:"89982","87d9fa95":"90000",dc64daf5:"90056","05e73bfb":"90197",f1b50ac4:"90227","3b6e9377":"90329","8da1edc8":"90411","590fe42d":"90446","2ac63345":"90484","69f236bd":"90529",d4d7e15c:"90562",efc55a86:"90714","0058b4c6":"90849","6eeffc01":"90881","01b58810":"90890","3468f004":"90906","2e44e249":"90936","13da317c":"90940","07660bd9":"90987",fdd518cf:"90996",eac5cc4a:"91026",d5eb11a4:"91110","777c6042":"91167",f59ee173:"91246","5aea82ac":"91357","08f736fd":"91359","4a860d8c":"91515","7a8aac42":"91564",b449eac0:"91591","58c4affa":"91599","69aee15b":"91665","39b57bd8":"91711",e980bfab:"91760",ed353322:"91806","0329a84f":"91810","53fa95c6":"91889","5ae09df0":"91919",e97c1fe7:"92006","0a35f6eb":"92051",da1cd4ff:"92106",a135050d:"92272",bc08316c:"92339",d91f58ea:"92362","8aa2fcff":"92378","428d4f34":"92582",a7719d3c:"92734","8cc7edc7":"92811",a3d50c6d:"92828",e23b750b:"92839",d9b20917:"92843",bba11647:"92855",e7b843b8:"92892","9baacde1":"92983","8b56192f":"93066","30d00011":"93096",e5d76254:"93281","7c812bc0":"93305",dceb5a04:"93379","461fa96b":"93406","0602bf05":"93434","861560fd":"93487","216ae4cf":"93499","238b4d74":"93517",c9c6f808:"93554","423de293":"93565","1d9a061e":"93650","517a6efc":"93751","45efb036":"93766","28c0a052":"93770","7d04e04a":"93984",f65152a8:"94059","7921b649":"94153",bc21daa0:"94191","962fb06e":"94499","31243f4d":"94530","383e0d08":"94622","01e031cb":"94654",a3c2ef0a:"94744","8e9fc961":"94896","230c8311":"94952",af469e1b:"95027",a18866da:"95032",cc0cb525:"95110","062ec1a5":"95192",cb25f79e:"95216",accf606c:"95239","34b1f086":"95297",f8c20afc:"95342","8538b042":"95355","9cdb1c5b":"95372",c544f4a4:"95526","510cb4fc":"95769","12d44b5e":"95986",cb7060e2:"96014",db682b59:"96097","2f0f6a05":"96159","3b865f5d":"96168","21401b7a":"96285","1d0513e8":"96298","476994e3":"96316","5887780d":"96346",fa54d3f4:"96522",c8789a67:"96616","9367275a":"96625","9e828d90":"96660","56c61789":"96852","6a4e1d5f":"96855",a86079f0:"96884",d4bf4b5a:"96887","10ba125c":"96898","285077f8":"97074",d6670666:"97118","89a085ba":"97123","2b571a06":"97403","243b9aa6":"97409","5ac20d8a":"97431","6345335c":"97525","32b5ea16":"97660",ff68b7f6:"97728","78d0b93d":"97768","8b583ccf":"97783","3178eb30":"97798","101b7008":"97800","437c7eac":"97854","1d6877e1":"97930",ba227fd4:"97971",a42d09e5:"98057",b771fa58:"98058","9b1b20cb":"98106",cd2936c4:"98263","174b14fd":"98264","92871e18":"98312",a943c173:"98324","849b3b7f":"98358",ee4153d2:"98370","19d845e4":"98395",dfa30293:"98523","0c7d02e4":"98612",b44c3773:"98690","1fc0c829":"98901",b6bd4264:"98961","2e687d69":"99032",ac411221:"99148",dacddbce:"99185","8d853448":"99203",e467d655:"99249","86bf3c9e":"99257",f667452d:"99273","7dbd846d":"99434",ea4644b7:"99462","33b6cd96":"99541","3f96f959":"99700","123bb9ef":"99719","362c9549":"99790","21daa31c":"99801","95a8e207":"99920"}[d]||d,r.p+r.u(d)},(()=>{var d={45354:0,71869:0};r.f.j=(e,a)=>{var b=r.o(d,e)?d[e]:void 0;if(0!==b)if(b)a.push(b[2]);else if(/^(45354|71869)$/.test(e))d[e]=0;else{var c=new Promise(((a,c)=>b=d[e]=[a,c]));a.push(b[2]=c);var f=r.p+r.u(e),t=new Error;r.l(f,(a=>{if(r.o(d,e)&&(0!==(b=d[e])&&(d[e]=void 0),b)){var c=a&&("load"===a.type?"missing":a.type),f=a&&a.target&&a.target.src;t.message="Loading chunk "+e+" failed.\n("+c+": "+f+")",t.name="ChunkLoadError",t.type=c,t.request=f,b[1](t)}}),"chunk-"+e,e)}},r.O.j=e=>0===d[e];var e=(e,a)=>{var b,c,f=a[0],t=a[1],o=a[2],n=0;if(f.some((e=>0!==d[e]))){for(b in t)r.o(t,b)&&(r.m[b]=t[b]);if(o)var i=o(r)}for(e&&e(a);n - + diff --git a/docs/0.70/accessibilityinfo.html b/docs/0.70/accessibilityinfo.html index 56382843e35..bc260315e03 100644 --- a/docs/0.70/accessibilityinfo.html +++ b/docs/0.70/accessibilityinfo.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/actionsheetios.html b/docs/0.70/actionsheetios.html index 3c00fdc2b8f..bd78614d3c5 100644 --- a/docs/0.70/actionsheetios.html +++ b/docs/0.70/actionsheetios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/activityindicator.html b/docs/0.70/activityindicator.html index a6d45dcdd55..5fe7706311e 100644 --- a/docs/0.70/activityindicator.html +++ b/docs/0.70/activityindicator.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/alert.html b/docs/0.70/alert.html index c0a7593a03b..3bc86ae468b 100644 --- a/docs/0.70/alert.html +++ b/docs/0.70/alert.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/alertios.html b/docs/0.70/alertios.html index 5116a8986a3..b174d6c75a7 100644 --- a/docs/0.70/alertios.html +++ b/docs/0.70/alertios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/animated.html b/docs/0.70/animated.html index 7c2b459f61d..e6c78e36d41 100644 --- a/docs/0.70/animated.html +++ b/docs/0.70/animated.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/animatedvalue.html b/docs/0.70/animatedvalue.html index 646f789f398..6b6e386c0dd 100644 --- a/docs/0.70/animatedvalue.html +++ b/docs/0.70/animatedvalue.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/animatedvaluexy.html b/docs/0.70/animatedvaluexy.html index 136a99e9e57..41fc0836421 100644 --- a/docs/0.70/animatedvaluexy.html +++ b/docs/0.70/animatedvaluexy.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/animations.html b/docs/0.70/animations.html index 0e3eaaad1fe..d47e2a57796 100644 --- a/docs/0.70/animations.html +++ b/docs/0.70/animations.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/app-extensions.html b/docs/0.70/app-extensions.html index 7a753a0aacd..25257d8cfa4 100644 --- a/docs/0.70/app-extensions.html +++ b/docs/0.70/app-extensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/appearance.html b/docs/0.70/appearance.html index e051a79111e..72f3f9057b8 100644 --- a/docs/0.70/appearance.html +++ b/docs/0.70/appearance.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/appregistry.html b/docs/0.70/appregistry.html index d5cac441164..ae81b886db5 100644 --- a/docs/0.70/appregistry.html +++ b/docs/0.70/appregistry.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/appstate.html b/docs/0.70/appstate.html index 9c362159c0c..343d8e456ad 100644 --- a/docs/0.70/appstate.html +++ b/docs/0.70/appstate.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/architecture-glossary.html b/docs/0.70/architecture-glossary.html index c6db2f75fbf..c4f8cdd50ae 100644 --- a/docs/0.70/architecture-glossary.html +++ b/docs/0.70/architecture-glossary.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/architecture-overview.html b/docs/0.70/architecture-overview.html index e174abd1c9f..9fbf4affdbe 100644 --- a/docs/0.70/architecture-overview.html +++ b/docs/0.70/architecture-overview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/asyncstorage.html b/docs/0.70/asyncstorage.html index 0cc912d5d72..19762f5a0b4 100644 --- a/docs/0.70/asyncstorage.html +++ b/docs/0.70/asyncstorage.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/backhandler.html b/docs/0.70/backhandler.html index fcd91dabd81..b47d974a715 100644 --- a/docs/0.70/backhandler.html +++ b/docs/0.70/backhandler.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/build-speed.html b/docs/0.70/build-speed.html index c60134d0662..b5bdf2fce9f 100644 --- a/docs/0.70/build-speed.html +++ b/docs/0.70/build-speed.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/building-for-tv.html b/docs/0.70/building-for-tv.html index c943833ce90..a72552322cc 100644 --- a/docs/0.70/building-for-tv.html +++ b/docs/0.70/building-for-tv.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/building-from-source.html b/docs/0.70/building-from-source.html index 72abc434b7b..91a5b2dac12 100644 --- a/docs/0.70/building-from-source.html +++ b/docs/0.70/building-from-source.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/button.html b/docs/0.70/button.html index ec2fe227724..93545f68f83 100644 Binary files a/docs/0.70/button.html and b/docs/0.70/button.html differ diff --git a/docs/0.70/checkbox.html b/docs/0.70/checkbox.html index 8bc284e3e90..2e07b830364 100644 --- a/docs/0.70/checkbox.html +++ b/docs/0.70/checkbox.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/clipboard.html b/docs/0.70/clipboard.html index a3b804cc3da..3a17dbfa4bb 100644 --- a/docs/0.70/clipboard.html +++ b/docs/0.70/clipboard.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/colors.html b/docs/0.70/colors.html index 64e63ab5627..d5356dbca5d 100644 Binary files a/docs/0.70/colors.html and b/docs/0.70/colors.html differ diff --git a/docs/0.70/communication-android.html b/docs/0.70/communication-android.html index eccab5853bc..a57c54fe8bd 100644 --- a/docs/0.70/communication-android.html +++ b/docs/0.70/communication-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/communication-ios.html b/docs/0.70/communication-ios.html index 847459329b6..6a8baaf0bbf 100644 --- a/docs/0.70/communication-ios.html +++ b/docs/0.70/communication-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/components-and-apis.html b/docs/0.70/components-and-apis.html index 52262ca6cdb..d1e6e3d3261 100644 --- a/docs/0.70/components-and-apis.html +++ b/docs/0.70/components-and-apis.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/custom-webview-android.html b/docs/0.70/custom-webview-android.html index 119f51ba236..d417d3d6e89 100644 --- a/docs/0.70/custom-webview-android.html +++ b/docs/0.70/custom-webview-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/custom-webview-ios.html b/docs/0.70/custom-webview-ios.html index 493e3084011..6894615cd4c 100644 --- a/docs/0.70/custom-webview-ios.html +++ b/docs/0.70/custom-webview-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/datepickerandroid.html b/docs/0.70/datepickerandroid.html index e0154ca2c1d..b9f142feaaf 100644 --- a/docs/0.70/datepickerandroid.html +++ b/docs/0.70/datepickerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/datepickerios.html b/docs/0.70/datepickerios.html index 71dcf50dc4d..bc5c6eb623c 100644 --- a/docs/0.70/datepickerios.html +++ b/docs/0.70/datepickerios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/debugging.html b/docs/0.70/debugging.html index 11125d6845b..ea48e433977 100644 --- a/docs/0.70/debugging.html +++ b/docs/0.70/debugging.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/devsettings.html b/docs/0.70/devsettings.html index f5168ac5b80..b40d22c033c 100644 --- a/docs/0.70/devsettings.html +++ b/docs/0.70/devsettings.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/dimensions.html b/docs/0.70/dimensions.html index c806b46454b..ed215740c25 100644 --- a/docs/0.70/dimensions.html +++ b/docs/0.70/dimensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/direct-manipulation.html b/docs/0.70/direct-manipulation.html index 1f5ebb587f4..7a4a5ee721f 100644 --- a/docs/0.70/direct-manipulation.html +++ b/docs/0.70/direct-manipulation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/drawerlayoutandroid.html b/docs/0.70/drawerlayoutandroid.html index 2cc34eacdd0..57b70b7e4c0 100644 --- a/docs/0.70/drawerlayoutandroid.html +++ b/docs/0.70/drawerlayoutandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/dynamiccolorios.html b/docs/0.70/dynamiccolorios.html index 6486a25191b..192869b6365 100644 --- a/docs/0.70/dynamiccolorios.html +++ b/docs/0.70/dynamiccolorios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/easing.html b/docs/0.70/easing.html index 2390268d96d..890b0bcc137 100644 Binary files a/docs/0.70/easing.html and b/docs/0.70/easing.html differ diff --git a/docs/0.70/environment-setup.html b/docs/0.70/environment-setup.html index 9d493ae78bd..44619d3dc45 100644 --- a/docs/0.70/environment-setup.html +++ b/docs/0.70/environment-setup.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/fabric-renderer.html b/docs/0.70/fabric-renderer.html index 6674c6633c7..e695e6d7f68 100644 --- a/docs/0.70/fabric-renderer.html +++ b/docs/0.70/fabric-renderer.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/fast-refresh.html b/docs/0.70/fast-refresh.html index e4850ea78e6..031066719ec 100644 --- a/docs/0.70/fast-refresh.html +++ b/docs/0.70/fast-refresh.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/flatlist.html b/docs/0.70/flatlist.html index 2fb72e6c6dd..e6d9bdec3ac 100644 --- a/docs/0.70/flatlist.html +++ b/docs/0.70/flatlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/flexbox.html b/docs/0.70/flexbox.html index eb871c69c29..9b4e07e3298 100644 --- a/docs/0.70/flexbox.html +++ b/docs/0.70/flexbox.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/gesture-responder-system.html b/docs/0.70/gesture-responder-system.html index 48eeaa90c09..af087a4c23e 100644 --- a/docs/0.70/gesture-responder-system.html +++ b/docs/0.70/gesture-responder-system.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/getting-started.html b/docs/0.70/getting-started.html index fa22ef67a34..95848b40012 100644 --- a/docs/0.70/getting-started.html +++ b/docs/0.70/getting-started.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/handling-text-input.html b/docs/0.70/handling-text-input.html index acb0d0c2535..2766c4d2e69 100644 --- a/docs/0.70/handling-text-input.html +++ b/docs/0.70/handling-text-input.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/handling-touches.html b/docs/0.70/handling-touches.html index eb28bc0c0aa..066397491a1 100644 --- a/docs/0.70/handling-touches.html +++ b/docs/0.70/handling-touches.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/headless-js-android.html b/docs/0.70/headless-js-android.html index 72e6927e8ff..20879bfd335 100644 --- a/docs/0.70/headless-js-android.html +++ b/docs/0.70/headless-js-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/height-and-width.html b/docs/0.70/height-and-width.html index bd0eec5b47d..3fff945b911 100644 --- a/docs/0.70/height-and-width.html +++ b/docs/0.70/height-and-width.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/hermes.html b/docs/0.70/hermes.html index 757a7484c9a..8f55a964afa 100644 Binary files a/docs/0.70/hermes.html and b/docs/0.70/hermes.html differ diff --git a/docs/0.70/image-style-props.html b/docs/0.70/image-style-props.html index 52768db53a4..821c4864cfa 100644 --- a/docs/0.70/image-style-props.html +++ b/docs/0.70/image-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/image.html b/docs/0.70/image.html index 0d0ecd6abc7..f963c900ab5 100644 --- a/docs/0.70/image.html +++ b/docs/0.70/image.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/imagebackground.html b/docs/0.70/imagebackground.html index 6bfa1f4f629..9a4878c9fe7 100644 --- a/docs/0.70/imagebackground.html +++ b/docs/0.70/imagebackground.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/imagepickerios.html b/docs/0.70/imagepickerios.html index 562293015b3..bab7a4fb34e 100644 --- a/docs/0.70/imagepickerios.html +++ b/docs/0.70/imagepickerios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/images.html b/docs/0.70/images.html index 0ab651822e0..1bc68b38dc6 100644 Binary files a/docs/0.70/images.html and b/docs/0.70/images.html differ diff --git a/docs/0.70/improvingux.html b/docs/0.70/improvingux.html index 4ff016035c3..4168089ce45 100644 --- a/docs/0.70/improvingux.html +++ b/docs/0.70/improvingux.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/inputaccessoryview.html b/docs/0.70/inputaccessoryview.html index 6579143c57d..cd2c69c66ae 100644 --- a/docs/0.70/inputaccessoryview.html +++ b/docs/0.70/inputaccessoryview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/integration-with-android-fragment.html b/docs/0.70/integration-with-android-fragment.html index 8b08c5b41ae..f22111b357f 100644 Binary files a/docs/0.70/integration-with-android-fragment.html and b/docs/0.70/integration-with-android-fragment.html differ diff --git a/docs/0.70/integration-with-existing-apps.html b/docs/0.70/integration-with-existing-apps.html index 3fefc1319fb..8cac2781532 100644 --- a/docs/0.70/integration-with-existing-apps.html +++ b/docs/0.70/integration-with-existing-apps.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/interactionmanager.html b/docs/0.70/interactionmanager.html index ad383dbd0f4..dc86feec1c5 100644 --- a/docs/0.70/interactionmanager.html +++ b/docs/0.70/interactionmanager.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/intro-react-native-components.html b/docs/0.70/intro-react-native-components.html index 2d5dc42f658..dd1877977e1 100644 --- a/docs/0.70/intro-react-native-components.html +++ b/docs/0.70/intro-react-native-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/intro-react.html b/docs/0.70/intro-react.html index 669ba124a7e..dcae6fd1d81 100644 --- a/docs/0.70/intro-react.html +++ b/docs/0.70/intro-react.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/javascript-environment.html b/docs/0.70/javascript-environment.html index 3c14acf4a52..97bf691647e 100644 --- a/docs/0.70/javascript-environment.html +++ b/docs/0.70/javascript-environment.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/keyboard.html b/docs/0.70/keyboard.html index ab29d63fb05..5a1811a29b5 100644 --- a/docs/0.70/keyboard.html +++ b/docs/0.70/keyboard.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/keyboardavoidingview.html b/docs/0.70/keyboardavoidingview.html index 8a8dd0bbc54..e4a4881710a 100644 --- a/docs/0.70/keyboardavoidingview.html +++ b/docs/0.70/keyboardavoidingview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/layout-props.html b/docs/0.70/layout-props.html index 8667d6b9fbd..74c975b0d7b 100644 --- a/docs/0.70/layout-props.html +++ b/docs/0.70/layout-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/layoutanimation.html b/docs/0.70/layoutanimation.html index 24b00c6cb77..187c0ddc44e 100644 --- a/docs/0.70/layoutanimation.html +++ b/docs/0.70/layoutanimation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/layoutevent.html b/docs/0.70/layoutevent.html index 7ff1a87ec1d..b3d955c8e17 100644 --- a/docs/0.70/layoutevent.html +++ b/docs/0.70/layoutevent.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/libraries.html b/docs/0.70/libraries.html index 3be2ced7194..4501ea8732f 100644 --- a/docs/0.70/libraries.html +++ b/docs/0.70/libraries.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/linking-libraries-ios.html b/docs/0.70/linking-libraries-ios.html index 88ace527801..790cdcbd7d4 100644 --- a/docs/0.70/linking-libraries-ios.html +++ b/docs/0.70/linking-libraries-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/linking.html b/docs/0.70/linking.html index 8a413da15a9..413ad7e20da 100644 --- a/docs/0.70/linking.html +++ b/docs/0.70/linking.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/modal.html b/docs/0.70/modal.html index 565bc7cd16d..0843974043f 100644 --- a/docs/0.70/modal.html +++ b/docs/0.70/modal.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/more-resources.html b/docs/0.70/more-resources.html index 2478d4fd1ba..706e67fefcf 100644 --- a/docs/0.70/more-resources.html +++ b/docs/0.70/more-resources.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/native-components-android.html b/docs/0.70/native-components-android.html index 789065ff212..051871a6609 100644 --- a/docs/0.70/native-components-android.html +++ b/docs/0.70/native-components-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/native-components-ios.html b/docs/0.70/native-components-ios.html index 98939908968..92a5f0cfb8c 100644 --- a/docs/0.70/native-components-ios.html +++ b/docs/0.70/native-components-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/native-modules-android.html b/docs/0.70/native-modules-android.html index 76ef37108f9..c43b55aac2d 100644 --- a/docs/0.70/native-modules-android.html +++ b/docs/0.70/native-modules-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/native-modules-intro.html b/docs/0.70/native-modules-intro.html index 3953a6285f3..60522d0ca33 100644 --- a/docs/0.70/native-modules-intro.html +++ b/docs/0.70/native-modules-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/native-modules-ios.html b/docs/0.70/native-modules-ios.html index 593bbb66e47..6bdb28e5375 100644 --- a/docs/0.70/native-modules-ios.html +++ b/docs/0.70/native-modules-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/native-modules-setup.html b/docs/0.70/native-modules-setup.html index c3b37334530..90ae5127ff2 100644 --- a/docs/0.70/native-modules-setup.html +++ b/docs/0.70/native-modules-setup.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/navigation.html b/docs/0.70/navigation.html index f770b6fe365..4385c753203 100644 --- a/docs/0.70/navigation.html +++ b/docs/0.70/navigation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/netinfo.html b/docs/0.70/netinfo.html index b457b3fd5d3..16cd5baafaf 100644 --- a/docs/0.70/netinfo.html +++ b/docs/0.70/netinfo.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/network.html b/docs/0.70/network.html index 4191d98ab67..450004e87c8 100644 --- a/docs/0.70/network.html +++ b/docs/0.70/network.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/new-architecture-app-intro.html b/docs/0.70/new-architecture-app-intro.html index cda83ffd872..466cb505d2b 100644 --- a/docs/0.70/new-architecture-app-intro.html +++ b/docs/0.70/new-architecture-app-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/new-architecture-app-modules-android.html b/docs/0.70/new-architecture-app-modules-android.html index 7aaf9653e32..52c12a7d9aa 100644 --- a/docs/0.70/new-architecture-app-modules-android.html +++ b/docs/0.70/new-architecture-app-modules-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/new-architecture-app-modules-ios.html b/docs/0.70/new-architecture-app-modules-ios.html index 98f4180999e..eba4dd86a63 100644 --- a/docs/0.70/new-architecture-app-modules-ios.html +++ b/docs/0.70/new-architecture-app-modules-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/new-architecture-app-renderer-android.html b/docs/0.70/new-architecture-app-renderer-android.html index 030a0b377b9..b9b4424ec58 100644 --- a/docs/0.70/new-architecture-app-renderer-android.html +++ b/docs/0.70/new-architecture-app-renderer-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/new-architecture-app-renderer-ios.html b/docs/0.70/new-architecture-app-renderer-ios.html index db9596ed11e..2f464c03dee 100644 Binary files a/docs/0.70/new-architecture-app-renderer-ios.html and b/docs/0.70/new-architecture-app-renderer-ios.html differ diff --git a/docs/0.70/new-architecture-appendix.html b/docs/0.70/new-architecture-appendix.html index bb79084ca26..152b68aafa5 100644 --- a/docs/0.70/new-architecture-appendix.html +++ b/docs/0.70/new-architecture-appendix.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/new-architecture-intro.html b/docs/0.70/new-architecture-intro.html index 3e532505b33..6474ffa802e 100644 --- a/docs/0.70/new-architecture-intro.html +++ b/docs/0.70/new-architecture-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/new-architecture-library-android.html b/docs/0.70/new-architecture-library-android.html index f614f9a7456..d85a8e7af2d 100644 --- a/docs/0.70/new-architecture-library-android.html +++ b/docs/0.70/new-architecture-library-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/new-architecture-library-intro.html b/docs/0.70/new-architecture-library-intro.html index 112343fc5cd..d80f07c649e 100644 --- a/docs/0.70/new-architecture-library-intro.html +++ b/docs/0.70/new-architecture-library-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/new-architecture-library-ios.html b/docs/0.70/new-architecture-library-ios.html index d55b6bd69e7..efbafe9ea6d 100644 --- a/docs/0.70/new-architecture-library-ios.html +++ b/docs/0.70/new-architecture-library-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/new-architecture-troubleshooting.html b/docs/0.70/new-architecture-troubleshooting.html index 1ac8c22e37e..326ad0c8bc4 100644 --- a/docs/0.70/new-architecture-troubleshooting.html +++ b/docs/0.70/new-architecture-troubleshooting.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/optimizing-flatlist-configuration.html b/docs/0.70/optimizing-flatlist-configuration.html index 59ef5b53fe9..4cc8963f3a0 100644 Binary files a/docs/0.70/optimizing-flatlist-configuration.html and b/docs/0.70/optimizing-flatlist-configuration.html differ diff --git a/docs/0.70/out-of-tree-platforms.html b/docs/0.70/out-of-tree-platforms.html index 4e8d5f5064d..489a3aef07b 100644 --- a/docs/0.70/out-of-tree-platforms.html +++ b/docs/0.70/out-of-tree-platforms.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/panresponder.html b/docs/0.70/panresponder.html index 1e28a71aa29..2a548ebdeb5 100644 --- a/docs/0.70/panresponder.html +++ b/docs/0.70/panresponder.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/performance.html b/docs/0.70/performance.html index 484e1944908..0f3452a48f5 100644 --- a/docs/0.70/performance.html +++ b/docs/0.70/performance.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/permissionsandroid.html b/docs/0.70/permissionsandroid.html index 4be002876bb..68c2a141d8e 100644 --- a/docs/0.70/permissionsandroid.html +++ b/docs/0.70/permissionsandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/pixelratio.html b/docs/0.70/pixelratio.html index 5ec37f367f3..965df66add0 100644 --- a/docs/0.70/pixelratio.html +++ b/docs/0.70/pixelratio.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/platform-specific-code.html b/docs/0.70/platform-specific-code.html index 58fc1111764..a8fe81996dd 100644 --- a/docs/0.70/platform-specific-code.html +++ b/docs/0.70/platform-specific-code.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/platform.html b/docs/0.70/platform.html index 0247fd63a1a..3f9ecb3125f 100644 --- a/docs/0.70/platform.html +++ b/docs/0.70/platform.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/platformcolor.html b/docs/0.70/platformcolor.html index 9ca51c1e3f6..ffe77f86ec8 100644 --- a/docs/0.70/platformcolor.html +++ b/docs/0.70/platformcolor.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/pressable.html b/docs/0.70/pressable.html index 8d57e0b62a6..d1c4b0a9c5d 100644 --- a/docs/0.70/pressable.html +++ b/docs/0.70/pressable.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/pressevent.html b/docs/0.70/pressevent.html index fc06d26a7ec..291a25b3659 100644 --- a/docs/0.70/pressevent.html +++ b/docs/0.70/pressevent.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/profile-hermes.html b/docs/0.70/profile-hermes.html index 82e0884de62..27eb3b46243 100644 --- a/docs/0.70/profile-hermes.html +++ b/docs/0.70/profile-hermes.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/profiling.html b/docs/0.70/profiling.html index 1d5606b2e9f..b7bf507fbd4 100644 --- a/docs/0.70/profiling.html +++ b/docs/0.70/profiling.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/progressbarandroid.html b/docs/0.70/progressbarandroid.html index 57174dbc012..c5b60123141 100644 --- a/docs/0.70/progressbarandroid.html +++ b/docs/0.70/progressbarandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/progressviewios.html b/docs/0.70/progressviewios.html index fb6cb48a623..d7f1173f71a 100644 --- a/docs/0.70/progressviewios.html +++ b/docs/0.70/progressviewios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/props.html b/docs/0.70/props.html index b2f276a94bb..ca3d1b786d1 100644 --- a/docs/0.70/props.html +++ b/docs/0.70/props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/publishing-forks.html b/docs/0.70/publishing-forks.html index 55b42ec714e..783473e2cb9 100644 --- a/docs/0.70/publishing-forks.html +++ b/docs/0.70/publishing-forks.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/publishing-to-app-store.html b/docs/0.70/publishing-to-app-store.html index fd09e43950d..2b014a9b751 100644 --- a/docs/0.70/publishing-to-app-store.html +++ b/docs/0.70/publishing-to-app-store.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/pushnotificationios.html b/docs/0.70/pushnotificationios.html index 2218c57f2b4..23df0bc392c 100644 --- a/docs/0.70/pushnotificationios.html +++ b/docs/0.70/pushnotificationios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/ram-bundles-inline-requires.html b/docs/0.70/ram-bundles-inline-requires.html index fac40086b0e..88a1f26928a 100644 --- a/docs/0.70/ram-bundles-inline-requires.html +++ b/docs/0.70/ram-bundles-inline-requires.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/react-18-and-react-native.html b/docs/0.70/react-18-and-react-native.html index 8d1fa4ce43a..980bb4eaaa9 100644 --- a/docs/0.70/react-18-and-react-native.html +++ b/docs/0.70/react-18-and-react-native.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/react-node.html b/docs/0.70/react-node.html index 9da51d454b4..b35c928f76e 100644 --- a/docs/0.70/react-node.html +++ b/docs/0.70/react-node.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/rect.html b/docs/0.70/rect.html index bb006fd8d87..091883753c4 100644 --- a/docs/0.70/rect.html +++ b/docs/0.70/rect.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/rectorsize.html b/docs/0.70/rectorsize.html index f7a8883ab76..3026cd2a408 100644 --- a/docs/0.70/rectorsize.html +++ b/docs/0.70/rectorsize.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/refreshcontrol.html b/docs/0.70/refreshcontrol.html index d27fe980592..7890909e378 100644 --- a/docs/0.70/refreshcontrol.html +++ b/docs/0.70/refreshcontrol.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/removing-default-permissions.html b/docs/0.70/removing-default-permissions.html index ffdaf2c1043..13e08fe4088 100644 --- a/docs/0.70/removing-default-permissions.html +++ b/docs/0.70/removing-default-permissions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/render-pipeline.html b/docs/0.70/render-pipeline.html index 689dd102a49..037ecc75e6a 100644 --- a/docs/0.70/render-pipeline.html +++ b/docs/0.70/render-pipeline.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/roottag.html b/docs/0.70/roottag.html index 7c909a81228..787cde45d57 100644 --- a/docs/0.70/roottag.html +++ b/docs/0.70/roottag.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/running-on-device.html b/docs/0.70/running-on-device.html index d8b69395178..4195b9e9dc5 100644 --- a/docs/0.70/running-on-device.html +++ b/docs/0.70/running-on-device.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/running-on-simulator-ios.html b/docs/0.70/running-on-simulator-ios.html index 92f63de4d85..fef7d286a7f 100644 --- a/docs/0.70/running-on-simulator-ios.html +++ b/docs/0.70/running-on-simulator-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/safeareaview.html b/docs/0.70/safeareaview.html index 4b42a5f03a2..d407cfc0ca9 100644 --- a/docs/0.70/safeareaview.html +++ b/docs/0.70/safeareaview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/sample-application-movies.html b/docs/0.70/sample-application-movies.html index 8e626a1240b..0035d7660e4 100644 --- a/docs/0.70/sample-application-movies.html +++ b/docs/0.70/sample-application-movies.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/scrollview.html b/docs/0.70/scrollview.html index 0df60bb425a..ad86e46b6e9 100644 --- a/docs/0.70/scrollview.html +++ b/docs/0.70/scrollview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/sectionlist.html b/docs/0.70/sectionlist.html index 176545b9dcc..1eca8f13412 100644 --- a/docs/0.70/sectionlist.html +++ b/docs/0.70/sectionlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/security.html b/docs/0.70/security.html index e4b134d7e9e..9d65613c3ad 100644 --- a/docs/0.70/security.html +++ b/docs/0.70/security.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/segmentedcontrolios.html b/docs/0.70/segmentedcontrolios.html index 92587ef358f..cf0a16adadb 100644 --- a/docs/0.70/segmentedcontrolios.html +++ b/docs/0.70/segmentedcontrolios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/settings.html b/docs/0.70/settings.html index b73e04ad12a..09e08f8a95e 100644 --- a/docs/0.70/settings.html +++ b/docs/0.70/settings.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/shadow-props.html b/docs/0.70/shadow-props.html index 47ea118d94e..8e5cca1ebb4 100644 --- a/docs/0.70/shadow-props.html +++ b/docs/0.70/shadow-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/share.html b/docs/0.70/share.html index b52eb1a0815..c51c3db3a7c 100644 --- a/docs/0.70/share.html +++ b/docs/0.70/share.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/signed-apk-android.html b/docs/0.70/signed-apk-android.html index 021073e0925..313caceb8fa 100644 --- a/docs/0.70/signed-apk-android.html +++ b/docs/0.70/signed-apk-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/slider.html b/docs/0.70/slider.html index 7f5fb4f584b..7d46511b6b8 100644 Binary files a/docs/0.70/slider.html and b/docs/0.70/slider.html differ diff --git a/docs/0.70/statusbar.html b/docs/0.70/statusbar.html index baa9d42cd72..f5ef801cb71 100644 --- a/docs/0.70/statusbar.html +++ b/docs/0.70/statusbar.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/style.html b/docs/0.70/style.html index 0d38634560f..969026077d2 100644 --- a/docs/0.70/style.html +++ b/docs/0.70/style.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/stylesheet.html b/docs/0.70/stylesheet.html index df973b0c524..75861ad8e6b 100644 --- a/docs/0.70/stylesheet.html +++ b/docs/0.70/stylesheet.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/switch.html b/docs/0.70/switch.html index 2862240fa5c..89d7abc3327 100644 Binary files a/docs/0.70/switch.html and b/docs/0.70/switch.html differ diff --git a/docs/0.70/symbolication.html b/docs/0.70/symbolication.html index 62361b5eaa8..01e9076f828 100644 --- a/docs/0.70/symbolication.html +++ b/docs/0.70/symbolication.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/systrace.html b/docs/0.70/systrace.html index 34495948568..754c14c94cc 100644 --- a/docs/0.70/systrace.html +++ b/docs/0.70/systrace.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/testing-overview.html b/docs/0.70/testing-overview.html index 75645674edd..bb2c3fce888 100644 --- a/docs/0.70/testing-overview.html +++ b/docs/0.70/testing-overview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/text-style-props.html b/docs/0.70/text-style-props.html index cc4ebcd7ff7..fa787821b13 100644 --- a/docs/0.70/text-style-props.html +++ b/docs/0.70/text-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/text.html b/docs/0.70/text.html index bf87fb30430..4c1700f9359 100644 --- a/docs/0.70/text.html +++ b/docs/0.70/text.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/textinput.html b/docs/0.70/textinput.html index d30e5e7049e..058585e31db 100644 --- a/docs/0.70/textinput.html +++ b/docs/0.70/textinput.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/the-new-architecture/backward-compatibility-fabric-components.html b/docs/0.70/the-new-architecture/backward-compatibility-fabric-components.html index e0fc3e4b6e9..d63c02f2ce7 100644 --- a/docs/0.70/the-new-architecture/backward-compatibility-fabric-components.html +++ b/docs/0.70/the-new-architecture/backward-compatibility-fabric-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/the-new-architecture/backward-compatibility-turbomodules.html b/docs/0.70/the-new-architecture/backward-compatibility-turbomodules.html index 8b81f5570ca..3b338c6b947 100644 --- a/docs/0.70/the-new-architecture/backward-compatibility-turbomodules.html +++ b/docs/0.70/the-new-architecture/backward-compatibility-turbomodules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/the-new-architecture/backward-compatibility.html b/docs/0.70/the-new-architecture/backward-compatibility.html index cfe7e080186..add1c8d52ed 100644 --- a/docs/0.70/the-new-architecture/backward-compatibility.html +++ b/docs/0.70/the-new-architecture/backward-compatibility.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/the-new-architecture/landing-page.html b/docs/0.70/the-new-architecture/landing-page.html index fa61b41d5a3..3248b8ea014 100644 Binary files a/docs/0.70/the-new-architecture/landing-page.html and b/docs/0.70/the-new-architecture/landing-page.html differ diff --git a/docs/0.70/the-new-architecture/pillars-codegen.html b/docs/0.70/the-new-architecture/pillars-codegen.html index 3d0d56cb405..c64ed8e8948 100644 --- a/docs/0.70/the-new-architecture/pillars-codegen.html +++ b/docs/0.70/the-new-architecture/pillars-codegen.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/the-new-architecture/pillars-fabric-components.html b/docs/0.70/the-new-architecture/pillars-fabric-components.html index a723f14757d..e258015b037 100644 --- a/docs/0.70/the-new-architecture/pillars-fabric-components.html +++ b/docs/0.70/the-new-architecture/pillars-fabric-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/the-new-architecture/pillars-turbomodules.html b/docs/0.70/the-new-architecture/pillars-turbomodules.html index 6f91a4a1d12..f7f3738c40c 100644 --- a/docs/0.70/the-new-architecture/pillars-turbomodules.html +++ b/docs/0.70/the-new-architecture/pillars-turbomodules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/the-new-architecture/pillars.html b/docs/0.70/the-new-architecture/pillars.html index d73f9ac9ddd..7fd04433820 100644 --- a/docs/0.70/the-new-architecture/pillars.html +++ b/docs/0.70/the-new-architecture/pillars.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/the-new-architecture/use-app-template.html b/docs/0.70/the-new-architecture/use-app-template.html index ce250855310..8aa7bef53ab 100644 --- a/docs/0.70/the-new-architecture/use-app-template.html +++ b/docs/0.70/the-new-architecture/use-app-template.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/the-new-architecture/why.html b/docs/0.70/the-new-architecture/why.html index e401bd53acd..d2d3bde5c5b 100644 --- a/docs/0.70/the-new-architecture/why.html +++ b/docs/0.70/the-new-architecture/why.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/threading-model.html b/docs/0.70/threading-model.html index 5c8c769dbcb..5dc079cfad4 100644 --- a/docs/0.70/threading-model.html +++ b/docs/0.70/threading-model.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/timepickerandroid.html b/docs/0.70/timepickerandroid.html index 5f9b2be0cb0..5c4a14ca86b 100644 --- a/docs/0.70/timepickerandroid.html +++ b/docs/0.70/timepickerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/timers.html b/docs/0.70/timers.html index 2fe501de86f..a4aa3bec0d4 100644 Binary files a/docs/0.70/timers.html and b/docs/0.70/timers.html differ diff --git a/docs/0.70/toastandroid.html b/docs/0.70/toastandroid.html index b48388e294c..6aaeac06e43 100644 --- a/docs/0.70/toastandroid.html +++ b/docs/0.70/toastandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/touchablehighlight.html b/docs/0.70/touchablehighlight.html index c0ef6a13ae1..7662d367df9 100644 --- a/docs/0.70/touchablehighlight.html +++ b/docs/0.70/touchablehighlight.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/touchablenativefeedback.html b/docs/0.70/touchablenativefeedback.html index fb9464b4bda..aed781f7365 100644 --- a/docs/0.70/touchablenativefeedback.html +++ b/docs/0.70/touchablenativefeedback.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/touchableopacity.html b/docs/0.70/touchableopacity.html index 68df5ee21e0..97a96f632a0 100644 --- a/docs/0.70/touchableopacity.html +++ b/docs/0.70/touchableopacity.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/touchablewithoutfeedback.html b/docs/0.70/touchablewithoutfeedback.html index 3649b407f23..e486cc5ef2e 100644 --- a/docs/0.70/touchablewithoutfeedback.html +++ b/docs/0.70/touchablewithoutfeedback.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/transforms.html b/docs/0.70/transforms.html index ac6a6d2ef11..768fc2ed7a8 100644 --- a/docs/0.70/transforms.html +++ b/docs/0.70/transforms.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/troubleshooting.html b/docs/0.70/troubleshooting.html index 9e7ed0f249d..50528477868 100644 --- a/docs/0.70/troubleshooting.html +++ b/docs/0.70/troubleshooting.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/tutorial.html b/docs/0.70/tutorial.html index 4887d232bcc..54cc5553b19 100644 --- a/docs/0.70/tutorial.html +++ b/docs/0.70/tutorial.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/typescript.html b/docs/0.70/typescript.html index 72b77fbad08..ccccede7f24 100644 --- a/docs/0.70/typescript.html +++ b/docs/0.70/typescript.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/upgrading.html b/docs/0.70/upgrading.html index f3e303924ba..ac6f2d82b9a 100644 --- a/docs/0.70/upgrading.html +++ b/docs/0.70/upgrading.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/usecolorscheme.html b/docs/0.70/usecolorscheme.html index d01a8891c76..c76f0e70948 100644 --- a/docs/0.70/usecolorscheme.html +++ b/docs/0.70/usecolorscheme.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/usewindowdimensions.html b/docs/0.70/usewindowdimensions.html index 7e27902cd62..344ffad532d 100644 --- a/docs/0.70/usewindowdimensions.html +++ b/docs/0.70/usewindowdimensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/using-a-listview.html b/docs/0.70/using-a-listview.html index 8813f5d2619..6649f4ac323 100644 --- a/docs/0.70/using-a-listview.html +++ b/docs/0.70/using-a-listview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/using-a-scrollview.html b/docs/0.70/using-a-scrollview.html index a7a90016181..cee3e7d8b63 100644 --- a/docs/0.70/using-a-scrollview.html +++ b/docs/0.70/using-a-scrollview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/vibration.html b/docs/0.70/vibration.html index fa35daf5745..d30006f692d 100644 --- a/docs/0.70/vibration.html +++ b/docs/0.70/vibration.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/view-flattening.html b/docs/0.70/view-flattening.html index e13aacf72b6..59b94801bc5 100644 --- a/docs/0.70/view-flattening.html +++ b/docs/0.70/view-flattening.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/view-style-props.html b/docs/0.70/view-style-props.html index 08619e918a1..8b317d043e8 100644 --- a/docs/0.70/view-style-props.html +++ b/docs/0.70/view-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/view.html b/docs/0.70/view.html index 6f0dd46ae8a..1ed1d7d92e7 100644 --- a/docs/0.70/view.html +++ b/docs/0.70/view.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/viewpagerandroid.html b/docs/0.70/viewpagerandroid.html index a4e01d1723e..be897f4b615 100644 --- a/docs/0.70/viewpagerandroid.html +++ b/docs/0.70/viewpagerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/viewtoken.html b/docs/0.70/viewtoken.html index 0d0ae0b08c8..53968eaab23 100644 --- a/docs/0.70/viewtoken.html +++ b/docs/0.70/viewtoken.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/virtualizedlist.html b/docs/0.70/virtualizedlist.html index 4ed8224054d..1fa34adb68e 100644 --- a/docs/0.70/virtualizedlist.html +++ b/docs/0.70/virtualizedlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/webview.html b/docs/0.70/webview.html index db59c05581c..73ff79e901e 100644 --- a/docs/0.70/webview.html +++ b/docs/0.70/webview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/xplat-implementation.html b/docs/0.70/xplat-implementation.html index 5d088b81364..04e3a97bd5f 100644 --- a/docs/0.70/xplat-implementation.html +++ b/docs/0.70/xplat-implementation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/accessibility.html b/docs/0.71/accessibility.html index f29a68c92c2..5e8607ff4c6 100644 --- a/docs/0.71/accessibility.html +++ b/docs/0.71/accessibility.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/accessibilityinfo.html b/docs/0.71/accessibilityinfo.html index f52e2a625fd..b8439b5014e 100644 --- a/docs/0.71/accessibilityinfo.html +++ b/docs/0.71/accessibilityinfo.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/actionsheetios.html b/docs/0.71/actionsheetios.html index 1ed21f8cb9d..b76385c0cda 100644 --- a/docs/0.71/actionsheetios.html +++ b/docs/0.71/actionsheetios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/activityindicator.html b/docs/0.71/activityindicator.html index d92f3aac1c1..c91715f8bc6 100644 --- a/docs/0.71/activityindicator.html +++ b/docs/0.71/activityindicator.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/alert.html b/docs/0.71/alert.html index 064d4e65a4e..0425a3ce7f5 100644 --- a/docs/0.71/alert.html +++ b/docs/0.71/alert.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/alertios.html b/docs/0.71/alertios.html index dc2c79da7cb..b04f52ac34d 100644 --- a/docs/0.71/alertios.html +++ b/docs/0.71/alertios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/animated.html b/docs/0.71/animated.html index 4b87a595d99..40703797302 100644 --- a/docs/0.71/animated.html +++ b/docs/0.71/animated.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/animatedvalue.html b/docs/0.71/animatedvalue.html index 70355924a08..192164c7e7c 100644 --- a/docs/0.71/animatedvalue.html +++ b/docs/0.71/animatedvalue.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/animatedvaluexy.html b/docs/0.71/animatedvaluexy.html index dabdf841e44..69b1e84c121 100644 --- a/docs/0.71/animatedvaluexy.html +++ b/docs/0.71/animatedvaluexy.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/animations.html b/docs/0.71/animations.html index 12897468beb..d36c95e2c9a 100644 --- a/docs/0.71/animations.html +++ b/docs/0.71/animations.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/app-extensions.html b/docs/0.71/app-extensions.html index 4c64d499274..073bdf0d5b0 100644 --- a/docs/0.71/app-extensions.html +++ b/docs/0.71/app-extensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/appearance.html b/docs/0.71/appearance.html index d895ba71134..62eaf0bdc0d 100644 --- a/docs/0.71/appearance.html +++ b/docs/0.71/appearance.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/appregistry.html b/docs/0.71/appregistry.html index 42bc4f62635..606a36acc5c 100644 --- a/docs/0.71/appregistry.html +++ b/docs/0.71/appregistry.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/appstate.html b/docs/0.71/appstate.html index e31f788a493..c18085024f8 100644 --- a/docs/0.71/appstate.html +++ b/docs/0.71/appstate.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/architecture-glossary.html b/docs/0.71/architecture-glossary.html index ca1812c8557..fe6dea517f6 100644 --- a/docs/0.71/architecture-glossary.html +++ b/docs/0.71/architecture-glossary.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/architecture-overview.html b/docs/0.71/architecture-overview.html index e6eafe7d4b3..21687c3aeff 100644 --- a/docs/0.71/architecture-overview.html +++ b/docs/0.71/architecture-overview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/asyncstorage.html b/docs/0.71/asyncstorage.html index d486be27bf6..dc3b41e72ba 100644 --- a/docs/0.71/asyncstorage.html +++ b/docs/0.71/asyncstorage.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/backhandler.html b/docs/0.71/backhandler.html index fd69bf2d186..608a9f0538a 100644 --- a/docs/0.71/backhandler.html +++ b/docs/0.71/backhandler.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/build-speed.html b/docs/0.71/build-speed.html index 3ee5f67587b..b00aa2505d9 100644 --- a/docs/0.71/build-speed.html +++ b/docs/0.71/build-speed.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/building-for-tv.html b/docs/0.71/building-for-tv.html index 4d66df54acb..aaef9a560fe 100644 --- a/docs/0.71/building-for-tv.html +++ b/docs/0.71/building-for-tv.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/building-from-source.html b/docs/0.71/building-from-source.html index 9ae8800b035..423d0440f4d 100644 --- a/docs/0.71/building-from-source.html +++ b/docs/0.71/building-from-source.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/button.html b/docs/0.71/button.html index 0e78953356a..3bd2b0d8b0f 100644 Binary files a/docs/0.71/button.html and b/docs/0.71/button.html differ diff --git a/docs/0.71/checkbox.html b/docs/0.71/checkbox.html index f9eadd0d9f0..4f408a34227 100644 --- a/docs/0.71/checkbox.html +++ b/docs/0.71/checkbox.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/clipboard.html b/docs/0.71/clipboard.html index 011e34009dc..2d77e41e0af 100644 --- a/docs/0.71/clipboard.html +++ b/docs/0.71/clipboard.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/colors.html b/docs/0.71/colors.html index e256809d6c3..8100c533700 100644 Binary files a/docs/0.71/colors.html and b/docs/0.71/colors.html differ diff --git a/docs/0.71/communication-android.html b/docs/0.71/communication-android.html index 2cde63bbee2..891b1c8ec0c 100644 --- a/docs/0.71/communication-android.html +++ b/docs/0.71/communication-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/communication-ios.html b/docs/0.71/communication-ios.html index 7f2960d9c71..8c0a1870aee 100644 --- a/docs/0.71/communication-ios.html +++ b/docs/0.71/communication-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/components-and-apis.html b/docs/0.71/components-and-apis.html index 262cc282c1d..c1631516462 100644 --- a/docs/0.71/components-and-apis.html +++ b/docs/0.71/components-and-apis.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/custom-webview-android.html b/docs/0.71/custom-webview-android.html index c3bb5027cf9..0871df279ba 100644 --- a/docs/0.71/custom-webview-android.html +++ b/docs/0.71/custom-webview-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/custom-webview-ios.html b/docs/0.71/custom-webview-ios.html index 16728bf3625..086897bd3af 100644 --- a/docs/0.71/custom-webview-ios.html +++ b/docs/0.71/custom-webview-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/datepickerandroid.html b/docs/0.71/datepickerandroid.html index 3e28769418f..4ee01d28dff 100644 --- a/docs/0.71/datepickerandroid.html +++ b/docs/0.71/datepickerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/datepickerios.html b/docs/0.71/datepickerios.html index 2f3ecdd9577..69f9c4bf66a 100644 --- a/docs/0.71/datepickerios.html +++ b/docs/0.71/datepickerios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/debugging.html b/docs/0.71/debugging.html index 476f1f1cd0f..6b6d87aee01 100644 --- a/docs/0.71/debugging.html +++ b/docs/0.71/debugging.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/devsettings.html b/docs/0.71/devsettings.html index 4e0521772a9..df849e4821c 100644 --- a/docs/0.71/devsettings.html +++ b/docs/0.71/devsettings.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/dimensions.html b/docs/0.71/dimensions.html index 86c22a6a7cf..66f42702e50 100644 --- a/docs/0.71/dimensions.html +++ b/docs/0.71/dimensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/direct-manipulation.html b/docs/0.71/direct-manipulation.html index 7da9befd677..c0cbace4a57 100644 --- a/docs/0.71/direct-manipulation.html +++ b/docs/0.71/direct-manipulation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/drawerlayoutandroid.html b/docs/0.71/drawerlayoutandroid.html index 4fc0347e188..28d0604ae82 100644 --- a/docs/0.71/drawerlayoutandroid.html +++ b/docs/0.71/drawerlayoutandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/dynamiccolorios.html b/docs/0.71/dynamiccolorios.html index cb963e567c6..c292dc3d6c1 100644 --- a/docs/0.71/dynamiccolorios.html +++ b/docs/0.71/dynamiccolorios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/easing.html b/docs/0.71/easing.html index 674b951bcc0..f679e7ab940 100644 Binary files a/docs/0.71/easing.html and b/docs/0.71/easing.html differ diff --git a/docs/0.71/environment-setup.html b/docs/0.71/environment-setup.html index b91632d2882..69d79eda6c8 100644 --- a/docs/0.71/environment-setup.html +++ b/docs/0.71/environment-setup.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/fabric-renderer.html b/docs/0.71/fabric-renderer.html index 2488f62ddb2..f71c3be253d 100644 --- a/docs/0.71/fabric-renderer.html +++ b/docs/0.71/fabric-renderer.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/fast-refresh.html b/docs/0.71/fast-refresh.html index 89b92bc3dca..a5e1d1c9bc3 100644 --- a/docs/0.71/fast-refresh.html +++ b/docs/0.71/fast-refresh.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/flatlist.html b/docs/0.71/flatlist.html index 84c48006945..6bfe0620c97 100644 --- a/docs/0.71/flatlist.html +++ b/docs/0.71/flatlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/flexbox.html b/docs/0.71/flexbox.html index 5620cb829ea..b9ac96ae237 100644 --- a/docs/0.71/flexbox.html +++ b/docs/0.71/flexbox.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/gesture-responder-system.html b/docs/0.71/gesture-responder-system.html index 10391e160c0..43146d54506 100644 --- a/docs/0.71/gesture-responder-system.html +++ b/docs/0.71/gesture-responder-system.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/getting-started.html b/docs/0.71/getting-started.html index 083e0a9a7fd..9dc3fdd9947 100644 --- a/docs/0.71/getting-started.html +++ b/docs/0.71/getting-started.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/handling-text-input.html b/docs/0.71/handling-text-input.html index e5ff0e0bfd4..ef5c5374d86 100644 --- a/docs/0.71/handling-text-input.html +++ b/docs/0.71/handling-text-input.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/handling-touches.html b/docs/0.71/handling-touches.html index 1db6cc3a80d..b9595b14ba5 100644 --- a/docs/0.71/handling-touches.html +++ b/docs/0.71/handling-touches.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/headless-js-android.html b/docs/0.71/headless-js-android.html index 02faeecb9de..ee5c5a5ce3c 100644 --- a/docs/0.71/headless-js-android.html +++ b/docs/0.71/headless-js-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/height-and-width.html b/docs/0.71/height-and-width.html index 731e067b51f..45e0ae77e40 100644 --- a/docs/0.71/height-and-width.html +++ b/docs/0.71/height-and-width.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/hermes.html b/docs/0.71/hermes.html index 7c2cd6c665e..5abdee05ef0 100644 Binary files a/docs/0.71/hermes.html and b/docs/0.71/hermes.html differ diff --git a/docs/0.71/image-style-props.html b/docs/0.71/image-style-props.html index 08d767941d6..77ce492ef31 100644 --- a/docs/0.71/image-style-props.html +++ b/docs/0.71/image-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/image.html b/docs/0.71/image.html index e5c79bed64b..eefb9456726 100644 --- a/docs/0.71/image.html +++ b/docs/0.71/image.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/imagebackground.html b/docs/0.71/imagebackground.html index bfe69585f74..4ca293de79d 100644 --- a/docs/0.71/imagebackground.html +++ b/docs/0.71/imagebackground.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/imagepickerios.html b/docs/0.71/imagepickerios.html index de923c718bc..f23aa11f68d 100644 --- a/docs/0.71/imagepickerios.html +++ b/docs/0.71/imagepickerios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/images.html b/docs/0.71/images.html index 85eceb95cd2..40d178ae8ee 100644 Binary files a/docs/0.71/images.html and b/docs/0.71/images.html differ diff --git a/docs/0.71/improvingux.html b/docs/0.71/improvingux.html index 0806f061a49..a5d0479bdd6 100644 --- a/docs/0.71/improvingux.html +++ b/docs/0.71/improvingux.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/inputaccessoryview.html b/docs/0.71/inputaccessoryview.html index 5abbc9bed5b..42e706b220e 100644 --- a/docs/0.71/inputaccessoryview.html +++ b/docs/0.71/inputaccessoryview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/integration-with-android-fragment.html b/docs/0.71/integration-with-android-fragment.html index eaea4f98f6d..d68efca632f 100644 Binary files a/docs/0.71/integration-with-android-fragment.html and b/docs/0.71/integration-with-android-fragment.html differ diff --git a/docs/0.71/integration-with-existing-apps.html b/docs/0.71/integration-with-existing-apps.html index ba254fb795c..2d9d3896c3b 100644 --- a/docs/0.71/integration-with-existing-apps.html +++ b/docs/0.71/integration-with-existing-apps.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/interactionmanager.html b/docs/0.71/interactionmanager.html index 92c78edf8c7..accb73fc333 100644 --- a/docs/0.71/interactionmanager.html +++ b/docs/0.71/interactionmanager.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/intro-react-native-components.html b/docs/0.71/intro-react-native-components.html index efb2138af1f..60746c93818 100644 --- a/docs/0.71/intro-react-native-components.html +++ b/docs/0.71/intro-react-native-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/intro-react.html b/docs/0.71/intro-react.html index 604d8ec6325..e86a7c6579c 100644 --- a/docs/0.71/intro-react.html +++ b/docs/0.71/intro-react.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/javascript-environment.html b/docs/0.71/javascript-environment.html index 82893f21477..bd1743bac8d 100644 --- a/docs/0.71/javascript-environment.html +++ b/docs/0.71/javascript-environment.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/keyboard.html b/docs/0.71/keyboard.html index 24c23d249f7..37930850f60 100644 --- a/docs/0.71/keyboard.html +++ b/docs/0.71/keyboard.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/keyboardavoidingview.html b/docs/0.71/keyboardavoidingview.html index ac8cbf5214e..b03e4f8d4d7 100644 --- a/docs/0.71/keyboardavoidingview.html +++ b/docs/0.71/keyboardavoidingview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/layout-props.html b/docs/0.71/layout-props.html index 5302f461b50..1c9831582d2 100644 --- a/docs/0.71/layout-props.html +++ b/docs/0.71/layout-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/layoutanimation.html b/docs/0.71/layoutanimation.html index 2766835c054..5415b0415d8 100644 --- a/docs/0.71/layoutanimation.html +++ b/docs/0.71/layoutanimation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/layoutevent.html b/docs/0.71/layoutevent.html index 3493eac186b..fd0f2805822 100644 --- a/docs/0.71/layoutevent.html +++ b/docs/0.71/layoutevent.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/libraries.html b/docs/0.71/libraries.html index 79cc1c301aa..04929b58439 100644 --- a/docs/0.71/libraries.html +++ b/docs/0.71/libraries.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/linking-libraries-ios.html b/docs/0.71/linking-libraries-ios.html index 8fbf35877d9..176eba65dd6 100644 --- a/docs/0.71/linking-libraries-ios.html +++ b/docs/0.71/linking-libraries-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/linking.html b/docs/0.71/linking.html index 4af1e11a2f9..9cd20e94d13 100644 --- a/docs/0.71/linking.html +++ b/docs/0.71/linking.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/modal.html b/docs/0.71/modal.html index bb311983ef3..2ce9237a396 100644 --- a/docs/0.71/modal.html +++ b/docs/0.71/modal.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/more-resources.html b/docs/0.71/more-resources.html index b72d601241f..d8319f37568 100644 --- a/docs/0.71/more-resources.html +++ b/docs/0.71/more-resources.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/native-components-android.html b/docs/0.71/native-components-android.html index 8dd5061be40..33d7c0eb3f7 100644 --- a/docs/0.71/native-components-android.html +++ b/docs/0.71/native-components-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/native-components-ios.html b/docs/0.71/native-components-ios.html index 387c3339ff4..5b3e3d1df30 100644 --- a/docs/0.71/native-components-ios.html +++ b/docs/0.71/native-components-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/native-modules-android.html b/docs/0.71/native-modules-android.html index 942c91abf2d..77f6d9ae0da 100644 --- a/docs/0.71/native-modules-android.html +++ b/docs/0.71/native-modules-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/native-modules-intro.html b/docs/0.71/native-modules-intro.html index d15648f4e70..8fc069d9fcb 100644 --- a/docs/0.71/native-modules-intro.html +++ b/docs/0.71/native-modules-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/native-modules-ios.html b/docs/0.71/native-modules-ios.html index d217d562011..d442fd47a03 100644 --- a/docs/0.71/native-modules-ios.html +++ b/docs/0.71/native-modules-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/native-modules-setup.html b/docs/0.71/native-modules-setup.html index 6f603335ecc..0106f4586c3 100644 --- a/docs/0.71/native-modules-setup.html +++ b/docs/0.71/native-modules-setup.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/navigation.html b/docs/0.71/navigation.html index 1cadd6c368b..adbf16d9e54 100644 --- a/docs/0.71/navigation.html +++ b/docs/0.71/navigation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/netinfo.html b/docs/0.71/netinfo.html index 2934b85f307..f21b0fc324f 100644 --- a/docs/0.71/netinfo.html +++ b/docs/0.71/netinfo.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/network.html b/docs/0.71/network.html index d40df5124c3..7a48ebda461 100644 --- a/docs/0.71/network.html +++ b/docs/0.71/network.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/new-architecture-app-intro.html b/docs/0.71/new-architecture-app-intro.html index 8b34b237352..d0ec443a0a7 100644 --- a/docs/0.71/new-architecture-app-intro.html +++ b/docs/0.71/new-architecture-app-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/new-architecture-app-modules-android.html b/docs/0.71/new-architecture-app-modules-android.html index b0cb74a7402..c60a32b8504 100644 --- a/docs/0.71/new-architecture-app-modules-android.html +++ b/docs/0.71/new-architecture-app-modules-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/new-architecture-app-modules-ios.html b/docs/0.71/new-architecture-app-modules-ios.html index d93f00bb1b4..50bfbfab5b6 100644 --- a/docs/0.71/new-architecture-app-modules-ios.html +++ b/docs/0.71/new-architecture-app-modules-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/new-architecture-app-renderer-android.html b/docs/0.71/new-architecture-app-renderer-android.html index b3cd5bc6631..1e289e02bd8 100644 --- a/docs/0.71/new-architecture-app-renderer-android.html +++ b/docs/0.71/new-architecture-app-renderer-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/new-architecture-app-renderer-ios.html b/docs/0.71/new-architecture-app-renderer-ios.html index 84defef9f27..c0d3a780450 100644 Binary files a/docs/0.71/new-architecture-app-renderer-ios.html and b/docs/0.71/new-architecture-app-renderer-ios.html differ diff --git a/docs/0.71/new-architecture-appendix.html b/docs/0.71/new-architecture-appendix.html index 3f09f00e450..9b2275d5f1e 100644 --- a/docs/0.71/new-architecture-appendix.html +++ b/docs/0.71/new-architecture-appendix.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/new-architecture-intro.html b/docs/0.71/new-architecture-intro.html index 1ed84aab37a..1bc376dee07 100644 --- a/docs/0.71/new-architecture-intro.html +++ b/docs/0.71/new-architecture-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/new-architecture-library-android.html b/docs/0.71/new-architecture-library-android.html index d8fdc93d9a8..cc6320b153c 100644 --- a/docs/0.71/new-architecture-library-android.html +++ b/docs/0.71/new-architecture-library-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/new-architecture-library-intro.html b/docs/0.71/new-architecture-library-intro.html index 6fd0f56b3ff..9bd35620b62 100644 --- a/docs/0.71/new-architecture-library-intro.html +++ b/docs/0.71/new-architecture-library-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/new-architecture-library-ios.html b/docs/0.71/new-architecture-library-ios.html index bffa32b212a..4681198c1b3 100644 --- a/docs/0.71/new-architecture-library-ios.html +++ b/docs/0.71/new-architecture-library-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/new-architecture-troubleshooting.html b/docs/0.71/new-architecture-troubleshooting.html index e18980a5356..3c974508e7e 100644 --- a/docs/0.71/new-architecture-troubleshooting.html +++ b/docs/0.71/new-architecture-troubleshooting.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/optimizing-flatlist-configuration.html b/docs/0.71/optimizing-flatlist-configuration.html index 984ee10466a..d67c9b469f3 100644 Binary files a/docs/0.71/optimizing-flatlist-configuration.html and b/docs/0.71/optimizing-flatlist-configuration.html differ diff --git a/docs/0.71/out-of-tree-platforms.html b/docs/0.71/out-of-tree-platforms.html index aceed2c8c6f..11673978911 100644 --- a/docs/0.71/out-of-tree-platforms.html +++ b/docs/0.71/out-of-tree-platforms.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/panresponder.html b/docs/0.71/panresponder.html index 92946e32a6d..2b7255ceb80 100644 --- a/docs/0.71/panresponder.html +++ b/docs/0.71/panresponder.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/performance.html b/docs/0.71/performance.html index 1c66c72a350..f871327d99a 100644 --- a/docs/0.71/performance.html +++ b/docs/0.71/performance.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/permissionsandroid.html b/docs/0.71/permissionsandroid.html index ed022289600..0f7ed4b1041 100644 --- a/docs/0.71/permissionsandroid.html +++ b/docs/0.71/permissionsandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/pixelratio.html b/docs/0.71/pixelratio.html index 8c1b48aa915..d14aa891489 100644 --- a/docs/0.71/pixelratio.html +++ b/docs/0.71/pixelratio.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/platform-specific-code.html b/docs/0.71/platform-specific-code.html index f89322795c0..24e06158ad3 100644 --- a/docs/0.71/platform-specific-code.html +++ b/docs/0.71/platform-specific-code.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/platform.html b/docs/0.71/platform.html index ef70eff326d..32d949f5785 100644 --- a/docs/0.71/platform.html +++ b/docs/0.71/platform.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/platformcolor.html b/docs/0.71/platformcolor.html index 1069b5bf032..9465ead91a4 100644 --- a/docs/0.71/platformcolor.html +++ b/docs/0.71/platformcolor.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/pressable.html b/docs/0.71/pressable.html index f3f9bdaafc7..e2444ec1d00 100644 --- a/docs/0.71/pressable.html +++ b/docs/0.71/pressable.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/pressevent.html b/docs/0.71/pressevent.html index 04e6bdebeda..dd445a1a1dc 100644 --- a/docs/0.71/pressevent.html +++ b/docs/0.71/pressevent.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/profile-hermes.html b/docs/0.71/profile-hermes.html index dfaec697b75..79fbf289d25 100644 --- a/docs/0.71/profile-hermes.html +++ b/docs/0.71/profile-hermes.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/profiling.html b/docs/0.71/profiling.html index e11211cd473..12b39f917f5 100644 --- a/docs/0.71/profiling.html +++ b/docs/0.71/profiling.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/progressbarandroid.html b/docs/0.71/progressbarandroid.html index 2fb99390912..f6cf4013b68 100644 --- a/docs/0.71/progressbarandroid.html +++ b/docs/0.71/progressbarandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/progressviewios.html b/docs/0.71/progressviewios.html index 36b9c13a340..34eb12a8ef6 100644 --- a/docs/0.71/progressviewios.html +++ b/docs/0.71/progressviewios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/props.html b/docs/0.71/props.html index 9a14850c41d..a7f51356841 100644 --- a/docs/0.71/props.html +++ b/docs/0.71/props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/publishing-forks.html b/docs/0.71/publishing-forks.html index cafd117ce4b..de2f5c18370 100644 --- a/docs/0.71/publishing-forks.html +++ b/docs/0.71/publishing-forks.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/publishing-to-app-store.html b/docs/0.71/publishing-to-app-store.html index dc50ddfea2c..3e09c0d2688 100644 --- a/docs/0.71/publishing-to-app-store.html +++ b/docs/0.71/publishing-to-app-store.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/pushnotificationios.html b/docs/0.71/pushnotificationios.html index 8d8443679b7..70e3d42c0e3 100644 --- a/docs/0.71/pushnotificationios.html +++ b/docs/0.71/pushnotificationios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/ram-bundles-inline-requires.html b/docs/0.71/ram-bundles-inline-requires.html index 11d66dc46f3..193ebdb0cd3 100644 --- a/docs/0.71/ram-bundles-inline-requires.html +++ b/docs/0.71/ram-bundles-inline-requires.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/react-18-and-react-native.html b/docs/0.71/react-18-and-react-native.html index ef77e48bade..aee180ed817 100644 --- a/docs/0.71/react-18-and-react-native.html +++ b/docs/0.71/react-18-and-react-native.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/react-node.html b/docs/0.71/react-node.html index 890782a12c4..77a07be90f4 100644 --- a/docs/0.71/react-node.html +++ b/docs/0.71/react-node.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/rect.html b/docs/0.71/rect.html index 0eeb1af99c8..3318d86d084 100644 --- a/docs/0.71/rect.html +++ b/docs/0.71/rect.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/rectorsize.html b/docs/0.71/rectorsize.html index faaa857c805..71be72e1dc4 100644 --- a/docs/0.71/rectorsize.html +++ b/docs/0.71/rectorsize.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/refreshcontrol.html b/docs/0.71/refreshcontrol.html index cc7941defca..c8772bbe267 100644 --- a/docs/0.71/refreshcontrol.html +++ b/docs/0.71/refreshcontrol.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/removing-default-permissions.html b/docs/0.71/removing-default-permissions.html index 0e869c5d332..052c8118294 100644 --- a/docs/0.71/removing-default-permissions.html +++ b/docs/0.71/removing-default-permissions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/render-pipeline.html b/docs/0.71/render-pipeline.html index 2d24aeeda56..3ce44c8602e 100644 --- a/docs/0.71/render-pipeline.html +++ b/docs/0.71/render-pipeline.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/roottag.html b/docs/0.71/roottag.html index bfbf5a3e92d..57872876d70 100644 --- a/docs/0.71/roottag.html +++ b/docs/0.71/roottag.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/running-on-device.html b/docs/0.71/running-on-device.html index 72bbb742cb3..4c214ac40bb 100644 --- a/docs/0.71/running-on-device.html +++ b/docs/0.71/running-on-device.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/running-on-simulator-ios.html b/docs/0.71/running-on-simulator-ios.html index 8fc93c81d1a..a46c231c9eb 100644 --- a/docs/0.71/running-on-simulator-ios.html +++ b/docs/0.71/running-on-simulator-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/safeareaview.html b/docs/0.71/safeareaview.html index ffffa7a33b0..357dbb65d44 100644 --- a/docs/0.71/safeareaview.html +++ b/docs/0.71/safeareaview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/sample-application-movies.html b/docs/0.71/sample-application-movies.html index b9e3a72de1f..4946aa1a7a5 100644 --- a/docs/0.71/sample-application-movies.html +++ b/docs/0.71/sample-application-movies.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/scrollview.html b/docs/0.71/scrollview.html index eecbb5619c0..61f16a382f6 100644 --- a/docs/0.71/scrollview.html +++ b/docs/0.71/scrollview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/sectionlist.html b/docs/0.71/sectionlist.html index 283fc4c292c..2573e031832 100644 --- a/docs/0.71/sectionlist.html +++ b/docs/0.71/sectionlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/security.html b/docs/0.71/security.html index 56f69b22045..8622f069027 100644 --- a/docs/0.71/security.html +++ b/docs/0.71/security.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/segmentedcontrolios.html b/docs/0.71/segmentedcontrolios.html index 6e052ba5b3d..7e493fa0088 100644 --- a/docs/0.71/segmentedcontrolios.html +++ b/docs/0.71/segmentedcontrolios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/settings.html b/docs/0.71/settings.html index fdf6fbb8c89..af659dd5942 100644 --- a/docs/0.71/settings.html +++ b/docs/0.71/settings.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/shadow-props.html b/docs/0.71/shadow-props.html index 0a6a30bb854..74ff866fcde 100644 --- a/docs/0.71/shadow-props.html +++ b/docs/0.71/shadow-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/share.html b/docs/0.71/share.html index e9da37f5165..31799796c33 100644 --- a/docs/0.71/share.html +++ b/docs/0.71/share.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/signed-apk-android.html b/docs/0.71/signed-apk-android.html index 1201436d71d..7325b4babc4 100644 --- a/docs/0.71/signed-apk-android.html +++ b/docs/0.71/signed-apk-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/slider.html b/docs/0.71/slider.html index 18f634eae90..ce141382791 100644 Binary files a/docs/0.71/slider.html and b/docs/0.71/slider.html differ diff --git a/docs/0.71/state.html b/docs/0.71/state.html index 70e5b3ba7e4..77f2740b9e8 100644 --- a/docs/0.71/state.html +++ b/docs/0.71/state.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/statusbar.html b/docs/0.71/statusbar.html index fbc2e03baf4..4ae7cfd6e00 100644 --- a/docs/0.71/statusbar.html +++ b/docs/0.71/statusbar.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/style.html b/docs/0.71/style.html index 2d534518013..37cf18819a3 100644 --- a/docs/0.71/style.html +++ b/docs/0.71/style.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/stylesheet.html b/docs/0.71/stylesheet.html index f632d8af2bf..8407ca1da0a 100644 --- a/docs/0.71/stylesheet.html +++ b/docs/0.71/stylesheet.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/switch.html b/docs/0.71/switch.html index e56977de672..8a14e18dd18 100644 Binary files a/docs/0.71/switch.html and b/docs/0.71/switch.html differ diff --git a/docs/0.71/symbolication.html b/docs/0.71/symbolication.html index e81435676e1..bead686ab9f 100644 --- a/docs/0.71/symbolication.html +++ b/docs/0.71/symbolication.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/systrace.html b/docs/0.71/systrace.html index 21a41669128..f5d2624098c 100644 --- a/docs/0.71/systrace.html +++ b/docs/0.71/systrace.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/testing-overview.html b/docs/0.71/testing-overview.html index 969372489a8..6721d7a1af8 100644 --- a/docs/0.71/testing-overview.html +++ b/docs/0.71/testing-overview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/text-style-props.html b/docs/0.71/text-style-props.html index 1bab30564c7..c2365dec15f 100644 --- a/docs/0.71/text-style-props.html +++ b/docs/0.71/text-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/text.html b/docs/0.71/text.html index ba076139044..116f2ff0b00 100644 --- a/docs/0.71/text.html +++ b/docs/0.71/text.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/textinput.html b/docs/0.71/textinput.html index 8582ee9895d..24dc5ec324c 100644 --- a/docs/0.71/textinput.html +++ b/docs/0.71/textinput.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/the-new-architecture/backward-compatibility-fabric-components.html b/docs/0.71/the-new-architecture/backward-compatibility-fabric-components.html index 5f8a857e513..14b9e5e790c 100644 --- a/docs/0.71/the-new-architecture/backward-compatibility-fabric-components.html +++ b/docs/0.71/the-new-architecture/backward-compatibility-fabric-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/the-new-architecture/backward-compatibility-turbomodules.html b/docs/0.71/the-new-architecture/backward-compatibility-turbomodules.html index 9f578bdff96..ec953169402 100644 --- a/docs/0.71/the-new-architecture/backward-compatibility-turbomodules.html +++ b/docs/0.71/the-new-architecture/backward-compatibility-turbomodules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/the-new-architecture/backward-compatibility.html b/docs/0.71/the-new-architecture/backward-compatibility.html index 48ff092d606..0eb29d32fa0 100644 --- a/docs/0.71/the-new-architecture/backward-compatibility.html +++ b/docs/0.71/the-new-architecture/backward-compatibility.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/the-new-architecture/cxx-custom-types.html b/docs/0.71/the-new-architecture/cxx-custom-types.html index 9d6fed29764..25000a97fb8 100644 --- a/docs/0.71/the-new-architecture/cxx-custom-types.html +++ b/docs/0.71/the-new-architecture/cxx-custom-types.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/the-new-architecture/cxx-cxxturbomodules.html b/docs/0.71/the-new-architecture/cxx-cxxturbomodules.html index 28a42800e78..846d10d49a8 100644 --- a/docs/0.71/the-new-architecture/cxx-cxxturbomodules.html +++ b/docs/0.71/the-new-architecture/cxx-cxxturbomodules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/the-new-architecture/landing-page.html b/docs/0.71/the-new-architecture/landing-page.html index eaef49699d0..2961643cddc 100644 Binary files a/docs/0.71/the-new-architecture/landing-page.html and b/docs/0.71/the-new-architecture/landing-page.html differ diff --git a/docs/0.71/the-new-architecture/pillars-codegen.html b/docs/0.71/the-new-architecture/pillars-codegen.html index 88d0712e526..bd806b32d92 100644 --- a/docs/0.71/the-new-architecture/pillars-codegen.html +++ b/docs/0.71/the-new-architecture/pillars-codegen.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/the-new-architecture/pillars-fabric-components.html b/docs/0.71/the-new-architecture/pillars-fabric-components.html index ef67da8f1a9..5e72379c679 100644 --- a/docs/0.71/the-new-architecture/pillars-fabric-components.html +++ b/docs/0.71/the-new-architecture/pillars-fabric-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/the-new-architecture/pillars-turbomodules.html b/docs/0.71/the-new-architecture/pillars-turbomodules.html index e6611c72135..b30a6f068dd 100644 --- a/docs/0.71/the-new-architecture/pillars-turbomodules.html +++ b/docs/0.71/the-new-architecture/pillars-turbomodules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/the-new-architecture/pillars.html b/docs/0.71/the-new-architecture/pillars.html index c5b75d7a285..8ee3896cbfb 100644 --- a/docs/0.71/the-new-architecture/pillars.html +++ b/docs/0.71/the-new-architecture/pillars.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/the-new-architecture/use-app-template.html b/docs/0.71/the-new-architecture/use-app-template.html index 23ead8c83b8..273e69dd2f4 100644 --- a/docs/0.71/the-new-architecture/use-app-template.html +++ b/docs/0.71/the-new-architecture/use-app-template.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/the-new-architecture/why.html b/docs/0.71/the-new-architecture/why.html index fd01e47506d..7303b0c2e30 100644 --- a/docs/0.71/the-new-architecture/why.html +++ b/docs/0.71/the-new-architecture/why.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/threading-model.html b/docs/0.71/threading-model.html index 96cf79204dc..d457f392ff6 100644 --- a/docs/0.71/threading-model.html +++ b/docs/0.71/threading-model.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/timepickerandroid.html b/docs/0.71/timepickerandroid.html index 567b8cb6330..544fb6cd1ff 100644 --- a/docs/0.71/timepickerandroid.html +++ b/docs/0.71/timepickerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/timers.html b/docs/0.71/timers.html index f37757529d6..1b8e1b348f7 100644 Binary files a/docs/0.71/timers.html and b/docs/0.71/timers.html differ diff --git a/docs/0.71/toastandroid.html b/docs/0.71/toastandroid.html index ef919a94388..9ee2a55f559 100644 --- a/docs/0.71/toastandroid.html +++ b/docs/0.71/toastandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/touchablehighlight.html b/docs/0.71/touchablehighlight.html index 47634770cbe..fadeb87084e 100644 --- a/docs/0.71/touchablehighlight.html +++ b/docs/0.71/touchablehighlight.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/touchablenativefeedback.html b/docs/0.71/touchablenativefeedback.html index 4538d92c324..66f7edf37f2 100644 --- a/docs/0.71/touchablenativefeedback.html +++ b/docs/0.71/touchablenativefeedback.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/touchableopacity.html b/docs/0.71/touchableopacity.html index d82e8abe56f..7d346528463 100644 --- a/docs/0.71/touchableopacity.html +++ b/docs/0.71/touchableopacity.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/touchablewithoutfeedback.html b/docs/0.71/touchablewithoutfeedback.html index 1d0846ae7d4..ccabf3d255e 100644 --- a/docs/0.71/touchablewithoutfeedback.html +++ b/docs/0.71/touchablewithoutfeedback.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/transforms.html b/docs/0.71/transforms.html index c34ff3f2568..bed0833bf45 100644 --- a/docs/0.71/transforms.html +++ b/docs/0.71/transforms.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/troubleshooting.html b/docs/0.71/troubleshooting.html index 6391d6860e1..83bfc5ff339 100644 --- a/docs/0.71/troubleshooting.html +++ b/docs/0.71/troubleshooting.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/tutorial.html b/docs/0.71/tutorial.html index 1624a93f907..7393964c18a 100644 --- a/docs/0.71/tutorial.html +++ b/docs/0.71/tutorial.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/typescript.html b/docs/0.71/typescript.html index 06b2bb78b6b..99534214380 100644 --- a/docs/0.71/typescript.html +++ b/docs/0.71/typescript.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/upgrading.html b/docs/0.71/upgrading.html index 2e951cba0a9..7e05fedfa79 100644 --- a/docs/0.71/upgrading.html +++ b/docs/0.71/upgrading.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/usecolorscheme.html b/docs/0.71/usecolorscheme.html index 6f007eb1c75..f70ce651b64 100644 --- a/docs/0.71/usecolorscheme.html +++ b/docs/0.71/usecolorscheme.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/usewindowdimensions.html b/docs/0.71/usewindowdimensions.html index 6d8d0409216..d5063c95094 100644 --- a/docs/0.71/usewindowdimensions.html +++ b/docs/0.71/usewindowdimensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/using-a-listview.html b/docs/0.71/using-a-listview.html index 329ff9affdd..c2c5fdc9c97 100644 --- a/docs/0.71/using-a-listview.html +++ b/docs/0.71/using-a-listview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/using-a-scrollview.html b/docs/0.71/using-a-scrollview.html index 19804be42e3..1489b512226 100644 --- a/docs/0.71/using-a-scrollview.html +++ b/docs/0.71/using-a-scrollview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/vibration.html b/docs/0.71/vibration.html index 9f7c4c36f3e..4343eef028a 100644 --- a/docs/0.71/vibration.html +++ b/docs/0.71/vibration.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/view-flattening.html b/docs/0.71/view-flattening.html index 319b40b7d70..3f07c1d7d2b 100644 --- a/docs/0.71/view-flattening.html +++ b/docs/0.71/view-flattening.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/view-style-props.html b/docs/0.71/view-style-props.html index d38492fa3b8..3af0a2f8045 100644 --- a/docs/0.71/view-style-props.html +++ b/docs/0.71/view-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/view.html b/docs/0.71/view.html index 94fa6c98966..a0865f6e8c5 100644 --- a/docs/0.71/view.html +++ b/docs/0.71/view.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/viewpagerandroid.html b/docs/0.71/viewpagerandroid.html index 7171f1cb4ac..460c193b4a2 100644 --- a/docs/0.71/viewpagerandroid.html +++ b/docs/0.71/viewpagerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/viewtoken.html b/docs/0.71/viewtoken.html index 31af4c5ce7c..4d86f2071d9 100644 --- a/docs/0.71/viewtoken.html +++ b/docs/0.71/viewtoken.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/virtualizedlist.html b/docs/0.71/virtualizedlist.html index f300817c454..c005237acb9 100644 --- a/docs/0.71/virtualizedlist.html +++ b/docs/0.71/virtualizedlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/xplat-implementation.html b/docs/0.71/xplat-implementation.html index 796f9003e64..d34aaafe4df 100644 --- a/docs/0.71/xplat-implementation.html +++ b/docs/0.71/xplat-implementation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/accessibility.html b/docs/0.72/accessibility.html index 2035a95fc15..bdf0ef9a7a0 100644 --- a/docs/0.72/accessibility.html +++ b/docs/0.72/accessibility.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/accessibilityinfo.html b/docs/0.72/accessibilityinfo.html index 2d6c55e3291..a83969fee2d 100644 --- a/docs/0.72/accessibilityinfo.html +++ b/docs/0.72/accessibilityinfo.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/actionsheetios.html b/docs/0.72/actionsheetios.html index aef8cc453ce..6ef81036532 100644 --- a/docs/0.72/actionsheetios.html +++ b/docs/0.72/actionsheetios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/activityindicator.html b/docs/0.72/activityindicator.html index abfd9394209..8b632178566 100644 --- a/docs/0.72/activityindicator.html +++ b/docs/0.72/activityindicator.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/alert.html b/docs/0.72/alert.html index 13a0d3d2dd5..90540e85f63 100644 --- a/docs/0.72/alert.html +++ b/docs/0.72/alert.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/alertios.html b/docs/0.72/alertios.html index 30d61289843..bf6e65bf244 100644 --- a/docs/0.72/alertios.html +++ b/docs/0.72/alertios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/animated.html b/docs/0.72/animated.html index 25ba4d39034..6e09c26eab4 100644 --- a/docs/0.72/animated.html +++ b/docs/0.72/animated.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/animatedvalue.html b/docs/0.72/animatedvalue.html index 875ff8870d8..c063fc75738 100644 --- a/docs/0.72/animatedvalue.html +++ b/docs/0.72/animatedvalue.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/animatedvaluexy.html b/docs/0.72/animatedvaluexy.html index 39b84748b45..dda699f58b2 100644 --- a/docs/0.72/animatedvaluexy.html +++ b/docs/0.72/animatedvaluexy.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/animations.html b/docs/0.72/animations.html index 038eb9f08af..c3710433504 100644 --- a/docs/0.72/animations.html +++ b/docs/0.72/animations.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/app-extensions.html b/docs/0.72/app-extensions.html index 0e103825d8b..259b01954ff 100644 --- a/docs/0.72/app-extensions.html +++ b/docs/0.72/app-extensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/appearance.html b/docs/0.72/appearance.html index 34848f2e629..1096c7b40fd 100644 --- a/docs/0.72/appearance.html +++ b/docs/0.72/appearance.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/appregistry.html b/docs/0.72/appregistry.html index 3856fbaf3ab..70d9cd7fcbd 100644 --- a/docs/0.72/appregistry.html +++ b/docs/0.72/appregistry.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/appstate.html b/docs/0.72/appstate.html index 9b5a2aeccfc..6fac8d27f25 100644 --- a/docs/0.72/appstate.html +++ b/docs/0.72/appstate.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/architecture-glossary.html b/docs/0.72/architecture-glossary.html index 6da2a276abd..a2340b8e1d8 100644 --- a/docs/0.72/architecture-glossary.html +++ b/docs/0.72/architecture-glossary.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/architecture-overview.html b/docs/0.72/architecture-overview.html index 2c0ac4c04c4..3f7063eac1d 100644 --- a/docs/0.72/architecture-overview.html +++ b/docs/0.72/architecture-overview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/asyncstorage.html b/docs/0.72/asyncstorage.html index 008a74c5044..0ccfa904c05 100644 --- a/docs/0.72/asyncstorage.html +++ b/docs/0.72/asyncstorage.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/backhandler.html b/docs/0.72/backhandler.html index 555ba8b6428..75334983b45 100644 --- a/docs/0.72/backhandler.html +++ b/docs/0.72/backhandler.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/build-speed.html b/docs/0.72/build-speed.html index 806a3705786..124ab2ac113 100644 --- a/docs/0.72/build-speed.html +++ b/docs/0.72/build-speed.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/building-for-tv.html b/docs/0.72/building-for-tv.html index 3b60b46c1c9..911dbaa21e3 100644 --- a/docs/0.72/building-for-tv.html +++ b/docs/0.72/building-for-tv.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/button.html b/docs/0.72/button.html index 71c4031f2f7..9a1b467516d 100644 Binary files a/docs/0.72/button.html and b/docs/0.72/button.html differ diff --git a/docs/0.72/checkbox.html b/docs/0.72/checkbox.html index 56976c10ac3..48c460e0631 100644 --- a/docs/0.72/checkbox.html +++ b/docs/0.72/checkbox.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/clipboard.html b/docs/0.72/clipboard.html index a0579bff8c7..59f1b57aaa2 100644 --- a/docs/0.72/clipboard.html +++ b/docs/0.72/clipboard.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/colors.html b/docs/0.72/colors.html index 5f5ea099315..0eab4b94a90 100644 Binary files a/docs/0.72/colors.html and b/docs/0.72/colors.html differ diff --git a/docs/0.72/communication-android.html b/docs/0.72/communication-android.html index 7ea9aee5795..6d409cb0112 100644 --- a/docs/0.72/communication-android.html +++ b/docs/0.72/communication-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/communication-ios.html b/docs/0.72/communication-ios.html index 73f8daec4c3..5e06a28468c 100644 --- a/docs/0.72/communication-ios.html +++ b/docs/0.72/communication-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/components-and-apis.html b/docs/0.72/components-and-apis.html index f3ec7b9aad8..3c4f9a6308f 100644 --- a/docs/0.72/components-and-apis.html +++ b/docs/0.72/components-and-apis.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/custom-webview-android.html b/docs/0.72/custom-webview-android.html index fbb4b3c46b1..ac517d5e834 100644 --- a/docs/0.72/custom-webview-android.html +++ b/docs/0.72/custom-webview-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/custom-webview-ios.html b/docs/0.72/custom-webview-ios.html index 94d953810af..8f3e6754430 100644 --- a/docs/0.72/custom-webview-ios.html +++ b/docs/0.72/custom-webview-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/datepickerandroid.html b/docs/0.72/datepickerandroid.html index e2685f78c53..b3635a4486d 100644 --- a/docs/0.72/datepickerandroid.html +++ b/docs/0.72/datepickerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/datepickerios.html b/docs/0.72/datepickerios.html index 33707f19653..919eb5a9db9 100644 --- a/docs/0.72/datepickerios.html +++ b/docs/0.72/datepickerios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/debugging.html b/docs/0.72/debugging.html index 06568ba9d6b..e7fb03085c4 100644 --- a/docs/0.72/debugging.html +++ b/docs/0.72/debugging.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/devsettings.html b/docs/0.72/devsettings.html index d8fc52656e5..a1c992e95e9 100644 --- a/docs/0.72/devsettings.html +++ b/docs/0.72/devsettings.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/dimensions.html b/docs/0.72/dimensions.html index ab785bfe8c7..5f82fffed21 100644 --- a/docs/0.72/dimensions.html +++ b/docs/0.72/dimensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/direct-manipulation.html b/docs/0.72/direct-manipulation.html index a1aa11eaf7c..46948b5cf5e 100644 --- a/docs/0.72/direct-manipulation.html +++ b/docs/0.72/direct-manipulation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/drawerlayoutandroid.html b/docs/0.72/drawerlayoutandroid.html index 924dfc4cc88..84a26337052 100644 --- a/docs/0.72/drawerlayoutandroid.html +++ b/docs/0.72/drawerlayoutandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/dynamiccolorios.html b/docs/0.72/dynamiccolorios.html index 5c746efba10..9dc392defbe 100644 --- a/docs/0.72/dynamiccolorios.html +++ b/docs/0.72/dynamiccolorios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/easing.html b/docs/0.72/easing.html index f76a176b7c2..e3adc06f82f 100644 Binary files a/docs/0.72/easing.html and b/docs/0.72/easing.html differ diff --git a/docs/0.72/environment-setup.html b/docs/0.72/environment-setup.html index b5fda54af9e..157e7f186ab 100644 --- a/docs/0.72/environment-setup.html +++ b/docs/0.72/environment-setup.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/fabric-renderer.html b/docs/0.72/fabric-renderer.html index 5f9a674ca4d..2bddeba538a 100644 --- a/docs/0.72/fabric-renderer.html +++ b/docs/0.72/fabric-renderer.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/fast-refresh.html b/docs/0.72/fast-refresh.html index fc46712bc4c..3c0092d2b52 100644 --- a/docs/0.72/fast-refresh.html +++ b/docs/0.72/fast-refresh.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/flatlist.html b/docs/0.72/flatlist.html index ef708e4d7d7..d6e9f733ed2 100644 --- a/docs/0.72/flatlist.html +++ b/docs/0.72/flatlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/flexbox.html b/docs/0.72/flexbox.html index 7a0fa67d6d7..5e07b064c07 100644 --- a/docs/0.72/flexbox.html +++ b/docs/0.72/flexbox.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/gesture-responder-system.html b/docs/0.72/gesture-responder-system.html index 430b3b80efd..661ce787ce4 100644 --- a/docs/0.72/gesture-responder-system.html +++ b/docs/0.72/gesture-responder-system.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/getting-started.html b/docs/0.72/getting-started.html index fddc4f6315c..2adf38e8136 100644 --- a/docs/0.72/getting-started.html +++ b/docs/0.72/getting-started.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/handling-text-input.html b/docs/0.72/handling-text-input.html index 86d2373c96c..7c17af5e6b1 100644 --- a/docs/0.72/handling-text-input.html +++ b/docs/0.72/handling-text-input.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/handling-touches.html b/docs/0.72/handling-touches.html index 74b6866dc28..114eca5c4b2 100644 --- a/docs/0.72/handling-touches.html +++ b/docs/0.72/handling-touches.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/headless-js-android.html b/docs/0.72/headless-js-android.html index ed36dd2fad2..3a2352b52e4 100644 --- a/docs/0.72/headless-js-android.html +++ b/docs/0.72/headless-js-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/height-and-width.html b/docs/0.72/height-and-width.html index 3948592596e..ed8f1b2af43 100644 --- a/docs/0.72/height-and-width.html +++ b/docs/0.72/height-and-width.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/hermes.html b/docs/0.72/hermes.html index f74f7b8f008..b81bfe8b477 100644 Binary files a/docs/0.72/hermes.html and b/docs/0.72/hermes.html differ diff --git a/docs/0.72/image-style-props.html b/docs/0.72/image-style-props.html index db2bbfd4fa5..098b5a793ac 100644 --- a/docs/0.72/image-style-props.html +++ b/docs/0.72/image-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/image.html b/docs/0.72/image.html index 6fce6647bb3..111dce187ed 100644 --- a/docs/0.72/image.html +++ b/docs/0.72/image.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/imagebackground.html b/docs/0.72/imagebackground.html index 824704cd853..07a5d26a9e4 100644 --- a/docs/0.72/imagebackground.html +++ b/docs/0.72/imagebackground.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/imagepickerios.html b/docs/0.72/imagepickerios.html index c08f6ed4f97..fc609245f9d 100644 --- a/docs/0.72/imagepickerios.html +++ b/docs/0.72/imagepickerios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/images.html b/docs/0.72/images.html index 64aeae14a37..96ea8d8e1b6 100644 Binary files a/docs/0.72/images.html and b/docs/0.72/images.html differ diff --git a/docs/0.72/improvingux.html b/docs/0.72/improvingux.html index 0ee282f2737..c768cb51fcf 100644 --- a/docs/0.72/improvingux.html +++ b/docs/0.72/improvingux.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/inputaccessoryview.html b/docs/0.72/inputaccessoryview.html index 804930dfa1c..748d6a933fd 100644 --- a/docs/0.72/inputaccessoryview.html +++ b/docs/0.72/inputaccessoryview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/integration-with-android-fragment.html b/docs/0.72/integration-with-android-fragment.html index d8b969368f4..3570c5c52cf 100644 Binary files a/docs/0.72/integration-with-android-fragment.html and b/docs/0.72/integration-with-android-fragment.html differ diff --git a/docs/0.72/integration-with-existing-apps.html b/docs/0.72/integration-with-existing-apps.html index 1960788e9f7..c5ad12a3072 100644 --- a/docs/0.72/integration-with-existing-apps.html +++ b/docs/0.72/integration-with-existing-apps.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/interactionmanager.html b/docs/0.72/interactionmanager.html index 4d3f90b13b8..76704be339f 100644 --- a/docs/0.72/interactionmanager.html +++ b/docs/0.72/interactionmanager.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/intro-react-native-components.html b/docs/0.72/intro-react-native-components.html index 6b09c46c1f2..5fc01c19cbb 100644 --- a/docs/0.72/intro-react-native-components.html +++ b/docs/0.72/intro-react-native-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/intro-react.html b/docs/0.72/intro-react.html index 884c22814ad..2d4f86c588e 100644 --- a/docs/0.72/intro-react.html +++ b/docs/0.72/intro-react.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/javascript-environment.html b/docs/0.72/javascript-environment.html index 8ada9196f60..ed9d2c3f210 100644 --- a/docs/0.72/javascript-environment.html +++ b/docs/0.72/javascript-environment.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/keyboard.html b/docs/0.72/keyboard.html index 9bc3f44bcb2..860b4fec06e 100644 --- a/docs/0.72/keyboard.html +++ b/docs/0.72/keyboard.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/keyboardavoidingview.html b/docs/0.72/keyboardavoidingview.html index 5914f0cc1ea..5e9ba557ac4 100644 --- a/docs/0.72/keyboardavoidingview.html +++ b/docs/0.72/keyboardavoidingview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/layout-props.html b/docs/0.72/layout-props.html index 2b63c8e3df1..6785be69ce7 100644 --- a/docs/0.72/layout-props.html +++ b/docs/0.72/layout-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/layoutanimation.html b/docs/0.72/layoutanimation.html index 79bc2b92244..b7b27d2bc41 100644 --- a/docs/0.72/layoutanimation.html +++ b/docs/0.72/layoutanimation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/layoutevent.html b/docs/0.72/layoutevent.html index 854cba7a47a..8daf6987045 100644 --- a/docs/0.72/layoutevent.html +++ b/docs/0.72/layoutevent.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/libraries.html b/docs/0.72/libraries.html index 83d62ed7e04..aee25c09965 100644 --- a/docs/0.72/libraries.html +++ b/docs/0.72/libraries.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/linking-libraries-ios.html b/docs/0.72/linking-libraries-ios.html index 9ccc7ec5a33..dc204687ad0 100644 --- a/docs/0.72/linking-libraries-ios.html +++ b/docs/0.72/linking-libraries-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/linking.html b/docs/0.72/linking.html index 6600c2c0c3a..346448ae9ba 100644 --- a/docs/0.72/linking.html +++ b/docs/0.72/linking.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/modal.html b/docs/0.72/modal.html index 750ad5d2af5..79bc0446393 100644 --- a/docs/0.72/modal.html +++ b/docs/0.72/modal.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/more-resources.html b/docs/0.72/more-resources.html index f046a320383..8e4be7e11b4 100644 --- a/docs/0.72/more-resources.html +++ b/docs/0.72/more-resources.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/native-components-android.html b/docs/0.72/native-components-android.html index 84b3faa25b7..b43384c3d28 100644 --- a/docs/0.72/native-components-android.html +++ b/docs/0.72/native-components-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/native-components-ios.html b/docs/0.72/native-components-ios.html index aad959c8096..692dfdca708 100644 --- a/docs/0.72/native-components-ios.html +++ b/docs/0.72/native-components-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/native-debugging.html b/docs/0.72/native-debugging.html index 142e6175bc1..b415b433945 100644 --- a/docs/0.72/native-debugging.html +++ b/docs/0.72/native-debugging.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/native-modules-android.html b/docs/0.72/native-modules-android.html index 6b29f695736..1b4367e8f90 100644 --- a/docs/0.72/native-modules-android.html +++ b/docs/0.72/native-modules-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/native-modules-intro.html b/docs/0.72/native-modules-intro.html index 30acf5b8444..7844f0c6f15 100644 --- a/docs/0.72/native-modules-intro.html +++ b/docs/0.72/native-modules-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/native-modules-ios.html b/docs/0.72/native-modules-ios.html index 7de7655cde1..bbc30d2fae8 100644 --- a/docs/0.72/native-modules-ios.html +++ b/docs/0.72/native-modules-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/native-modules-setup.html b/docs/0.72/native-modules-setup.html index 1e39f90ff9c..21c7555ec11 100644 --- a/docs/0.72/native-modules-setup.html +++ b/docs/0.72/native-modules-setup.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/navigation.html b/docs/0.72/navigation.html index b2aa701ecb3..2cecbc3bca4 100644 --- a/docs/0.72/navigation.html +++ b/docs/0.72/navigation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/netinfo.html b/docs/0.72/netinfo.html index adde2e867c1..a24a64d6a82 100644 --- a/docs/0.72/netinfo.html +++ b/docs/0.72/netinfo.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/network.html b/docs/0.72/network.html index d1d73e2b566..08d2b607231 100644 --- a/docs/0.72/network.html +++ b/docs/0.72/network.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/new-architecture-app-intro.html b/docs/0.72/new-architecture-app-intro.html index 9e8e0f11e2f..0678efb54f6 100644 --- a/docs/0.72/new-architecture-app-intro.html +++ b/docs/0.72/new-architecture-app-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/new-architecture-app-modules-android.html b/docs/0.72/new-architecture-app-modules-android.html index 3d48b41a772..a26ca597e8e 100644 --- a/docs/0.72/new-architecture-app-modules-android.html +++ b/docs/0.72/new-architecture-app-modules-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/new-architecture-app-modules-ios.html b/docs/0.72/new-architecture-app-modules-ios.html index db17276a0dc..32628900394 100644 --- a/docs/0.72/new-architecture-app-modules-ios.html +++ b/docs/0.72/new-architecture-app-modules-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/new-architecture-app-renderer-android.html b/docs/0.72/new-architecture-app-renderer-android.html index 3875515f137..b9feba90eeb 100644 --- a/docs/0.72/new-architecture-app-renderer-android.html +++ b/docs/0.72/new-architecture-app-renderer-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/new-architecture-app-renderer-ios.html b/docs/0.72/new-architecture-app-renderer-ios.html index 47e7151e41c..6626fd5f66a 100644 Binary files a/docs/0.72/new-architecture-app-renderer-ios.html and b/docs/0.72/new-architecture-app-renderer-ios.html differ diff --git a/docs/0.72/new-architecture-appendix.html b/docs/0.72/new-architecture-appendix.html index 9bc37c93e1a..f4c7f32091b 100644 --- a/docs/0.72/new-architecture-appendix.html +++ b/docs/0.72/new-architecture-appendix.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/new-architecture-intro.html b/docs/0.72/new-architecture-intro.html index 66ad2a94dfe..4af93e98acd 100644 --- a/docs/0.72/new-architecture-intro.html +++ b/docs/0.72/new-architecture-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/new-architecture-library-android.html b/docs/0.72/new-architecture-library-android.html index 2cd90950967..d98ce91ef44 100644 --- a/docs/0.72/new-architecture-library-android.html +++ b/docs/0.72/new-architecture-library-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/new-architecture-library-intro.html b/docs/0.72/new-architecture-library-intro.html index 0368a44bbf8..6fcf2ad606d 100644 --- a/docs/0.72/new-architecture-library-intro.html +++ b/docs/0.72/new-architecture-library-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/new-architecture-library-ios.html b/docs/0.72/new-architecture-library-ios.html index 6a1574a9b3f..846c35ae9ed 100644 --- a/docs/0.72/new-architecture-library-ios.html +++ b/docs/0.72/new-architecture-library-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/new-architecture-troubleshooting.html b/docs/0.72/new-architecture-troubleshooting.html index 7fe673ab4bf..c6ba0e30a40 100644 --- a/docs/0.72/new-architecture-troubleshooting.html +++ b/docs/0.72/new-architecture-troubleshooting.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/optimizing-flatlist-configuration.html b/docs/0.72/optimizing-flatlist-configuration.html index c486a267955..5a101e81b3e 100644 Binary files a/docs/0.72/optimizing-flatlist-configuration.html and b/docs/0.72/optimizing-flatlist-configuration.html differ diff --git a/docs/0.72/out-of-tree-platforms.html b/docs/0.72/out-of-tree-platforms.html index 788b0a3c866..e96e74790a8 100644 --- a/docs/0.72/out-of-tree-platforms.html +++ b/docs/0.72/out-of-tree-platforms.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/panresponder.html b/docs/0.72/panresponder.html index 4f101089fbe..cbd92ad38d2 100644 --- a/docs/0.72/panresponder.html +++ b/docs/0.72/panresponder.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/performance.html b/docs/0.72/performance.html index c9a3f9bae88..e3637984f0a 100644 --- a/docs/0.72/performance.html +++ b/docs/0.72/performance.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/permissionsandroid.html b/docs/0.72/permissionsandroid.html index ac814b86e73..b16aea5920c 100644 --- a/docs/0.72/permissionsandroid.html +++ b/docs/0.72/permissionsandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/pixelratio.html b/docs/0.72/pixelratio.html index 095f224e813..8b8fbe8f763 100644 --- a/docs/0.72/pixelratio.html +++ b/docs/0.72/pixelratio.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/platform-specific-code.html b/docs/0.72/platform-specific-code.html index d65a0cfd7cc..2e0a58df6fb 100644 --- a/docs/0.72/platform-specific-code.html +++ b/docs/0.72/platform-specific-code.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/platform.html b/docs/0.72/platform.html index d952b80c16b..063cebe1b79 100644 --- a/docs/0.72/platform.html +++ b/docs/0.72/platform.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/platformcolor.html b/docs/0.72/platformcolor.html index 8d553dd6afd..a94d5d944a5 100644 --- a/docs/0.72/platformcolor.html +++ b/docs/0.72/platformcolor.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/pressable.html b/docs/0.72/pressable.html index 60aafb42261..b399fe8f401 100644 --- a/docs/0.72/pressable.html +++ b/docs/0.72/pressable.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/pressevent.html b/docs/0.72/pressevent.html index c8aba9fe89f..013ec5d7b62 100644 --- a/docs/0.72/pressevent.html +++ b/docs/0.72/pressevent.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/profile-hermes.html b/docs/0.72/profile-hermes.html index af35ce72a76..6ad8bf238b3 100644 --- a/docs/0.72/profile-hermes.html +++ b/docs/0.72/profile-hermes.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/profiling.html b/docs/0.72/profiling.html index ebbfba95723..818c54ea259 100644 --- a/docs/0.72/profiling.html +++ b/docs/0.72/profiling.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/progressbarandroid.html b/docs/0.72/progressbarandroid.html index 3f5b5233dd4..e4f3d450f3a 100644 --- a/docs/0.72/progressbarandroid.html +++ b/docs/0.72/progressbarandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/progressviewios.html b/docs/0.72/progressviewios.html index a6228cc9d5e..e182b1cc516 100644 --- a/docs/0.72/progressviewios.html +++ b/docs/0.72/progressviewios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/props.html b/docs/0.72/props.html index 1f7389bd4fd..19e934e92d9 100644 --- a/docs/0.72/props.html +++ b/docs/0.72/props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/publishing-to-app-store.html b/docs/0.72/publishing-to-app-store.html index 423861f5446..4dcf1398929 100644 --- a/docs/0.72/publishing-to-app-store.html +++ b/docs/0.72/publishing-to-app-store.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/pushnotificationios.html b/docs/0.72/pushnotificationios.html index 01faf1e0937..6e575fa7c75 100644 --- a/docs/0.72/pushnotificationios.html +++ b/docs/0.72/pushnotificationios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/ram-bundles-inline-requires.html b/docs/0.72/ram-bundles-inline-requires.html index 3783f5bf38c..679ee2a7d5a 100644 --- a/docs/0.72/ram-bundles-inline-requires.html +++ b/docs/0.72/ram-bundles-inline-requires.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/react-18-and-react-native.html b/docs/0.72/react-18-and-react-native.html index 434898746f5..e91e741af45 100644 --- a/docs/0.72/react-18-and-react-native.html +++ b/docs/0.72/react-18-and-react-native.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/react-devtools.html b/docs/0.72/react-devtools.html index b73ee73f955..95dc6c096ef 100644 --- a/docs/0.72/react-devtools.html +++ b/docs/0.72/react-devtools.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/react-native-gradle-plugin.html b/docs/0.72/react-native-gradle-plugin.html index eedbb51e067..211c1c08683 100644 --- a/docs/0.72/react-native-gradle-plugin.html +++ b/docs/0.72/react-native-gradle-plugin.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/react-node.html b/docs/0.72/react-node.html index 0f21ea3db21..ef8ce75ffc3 100644 --- a/docs/0.72/react-node.html +++ b/docs/0.72/react-node.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/rect.html b/docs/0.72/rect.html index 15ffea9649c..5a1c23d7db9 100644 --- a/docs/0.72/rect.html +++ b/docs/0.72/rect.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/rectorsize.html b/docs/0.72/rectorsize.html index 49bbe2951a6..11bddedaf99 100644 --- a/docs/0.72/rectorsize.html +++ b/docs/0.72/rectorsize.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/refreshcontrol.html b/docs/0.72/refreshcontrol.html index 1e6b325f79a..186da33c81f 100644 --- a/docs/0.72/refreshcontrol.html +++ b/docs/0.72/refreshcontrol.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/removing-default-permissions.html b/docs/0.72/removing-default-permissions.html index 2cca59768ec..28597b8dbc9 100644 --- a/docs/0.72/removing-default-permissions.html +++ b/docs/0.72/removing-default-permissions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/render-pipeline.html b/docs/0.72/render-pipeline.html index a6a73daf6a9..cb3139d2949 100644 --- a/docs/0.72/render-pipeline.html +++ b/docs/0.72/render-pipeline.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/roottag.html b/docs/0.72/roottag.html index 216323ae802..eef9f5056ba 100644 --- a/docs/0.72/roottag.html +++ b/docs/0.72/roottag.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/running-on-device.html b/docs/0.72/running-on-device.html index 617a61d2a64..1add2b29f1e 100644 --- a/docs/0.72/running-on-device.html +++ b/docs/0.72/running-on-device.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/running-on-simulator-ios.html b/docs/0.72/running-on-simulator-ios.html index acff5cd97f2..e65fc49184b 100644 --- a/docs/0.72/running-on-simulator-ios.html +++ b/docs/0.72/running-on-simulator-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/safeareaview.html b/docs/0.72/safeareaview.html index 1bb8eb92744..3ad8941835e 100644 --- a/docs/0.72/safeareaview.html +++ b/docs/0.72/safeareaview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/sample-application-movies.html b/docs/0.72/sample-application-movies.html index 8f1d77fa934..3f2ca96f45d 100644 --- a/docs/0.72/sample-application-movies.html +++ b/docs/0.72/sample-application-movies.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/scrollview.html b/docs/0.72/scrollview.html index c789f57c509..c992568051c 100644 --- a/docs/0.72/scrollview.html +++ b/docs/0.72/scrollview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/sectionlist.html b/docs/0.72/sectionlist.html index 36202824b0a..e1277ed711e 100644 --- a/docs/0.72/sectionlist.html +++ b/docs/0.72/sectionlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/security.html b/docs/0.72/security.html index caf8a2a04c9..35c107417d0 100644 --- a/docs/0.72/security.html +++ b/docs/0.72/security.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/segmentedcontrolios.html b/docs/0.72/segmentedcontrolios.html index 1564b8b899e..953c4007ec5 100644 --- a/docs/0.72/segmentedcontrolios.html +++ b/docs/0.72/segmentedcontrolios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/settings.html b/docs/0.72/settings.html index 1617ba41cd6..16dbaf76b8d 100644 --- a/docs/0.72/settings.html +++ b/docs/0.72/settings.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/shadow-props.html b/docs/0.72/shadow-props.html index 53b14f157ef..6921ee2aca5 100644 --- a/docs/0.72/shadow-props.html +++ b/docs/0.72/shadow-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/share.html b/docs/0.72/share.html index ded457009bf..85e83900c2f 100644 --- a/docs/0.72/share.html +++ b/docs/0.72/share.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/signed-apk-android.html b/docs/0.72/signed-apk-android.html index 6780581959b..c1893dcc45f 100644 --- a/docs/0.72/signed-apk-android.html +++ b/docs/0.72/signed-apk-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/slider.html b/docs/0.72/slider.html index 65123bafe22..bdc61875c0a 100644 Binary files a/docs/0.72/slider.html and b/docs/0.72/slider.html differ diff --git a/docs/0.72/speeding-ci-builds.html b/docs/0.72/speeding-ci-builds.html index 5e3cd460ac7..8d35b636fd7 100644 --- a/docs/0.72/speeding-ci-builds.html +++ b/docs/0.72/speeding-ci-builds.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/state.html b/docs/0.72/state.html index a03cf1a91d2..f2a50d1b47d 100644 --- a/docs/0.72/state.html +++ b/docs/0.72/state.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/statusbar.html b/docs/0.72/statusbar.html index 11082b5788b..112d0312cd6 100644 --- a/docs/0.72/statusbar.html +++ b/docs/0.72/statusbar.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/style.html b/docs/0.72/style.html index 924771e2aba..5fc258a5267 100644 --- a/docs/0.72/style.html +++ b/docs/0.72/style.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/stylesheet.html b/docs/0.72/stylesheet.html index f6563b56bb1..6775392f99e 100644 --- a/docs/0.72/stylesheet.html +++ b/docs/0.72/stylesheet.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/switch.html b/docs/0.72/switch.html index 84567a0c58a..50844b26dfd 100644 Binary files a/docs/0.72/switch.html and b/docs/0.72/switch.html differ diff --git a/docs/0.72/symbolication.html b/docs/0.72/symbolication.html index 878fb5457de..009eea7d5ea 100644 --- a/docs/0.72/symbolication.html +++ b/docs/0.72/symbolication.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/systrace.html b/docs/0.72/systrace.html index b93c143c60c..c56b07e289a 100644 --- a/docs/0.72/systrace.html +++ b/docs/0.72/systrace.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/testing-overview.html b/docs/0.72/testing-overview.html index e5e86bffe7a..07f53464064 100644 --- a/docs/0.72/testing-overview.html +++ b/docs/0.72/testing-overview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/text-style-props.html b/docs/0.72/text-style-props.html index cf8f2f04651..2e055e34bb7 100644 --- a/docs/0.72/text-style-props.html +++ b/docs/0.72/text-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/text.html b/docs/0.72/text.html index 11c72143e28..e63bf66edfe 100644 --- a/docs/0.72/text.html +++ b/docs/0.72/text.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/textinput.html b/docs/0.72/textinput.html index 56958e57548..34f679b13b8 100644 --- a/docs/0.72/textinput.html +++ b/docs/0.72/textinput.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/the-new-architecture/backward-compatibility-fabric-components.html b/docs/0.72/the-new-architecture/backward-compatibility-fabric-components.html index 80b4cb30d60..a780da7e843 100644 --- a/docs/0.72/the-new-architecture/backward-compatibility-fabric-components.html +++ b/docs/0.72/the-new-architecture/backward-compatibility-fabric-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/the-new-architecture/backward-compatibility-turbomodules.html b/docs/0.72/the-new-architecture/backward-compatibility-turbomodules.html index 5eec64079a4..8f8ea53e37a 100644 --- a/docs/0.72/the-new-architecture/backward-compatibility-turbomodules.html +++ b/docs/0.72/the-new-architecture/backward-compatibility-turbomodules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/the-new-architecture/backward-compatibility.html b/docs/0.72/the-new-architecture/backward-compatibility.html index fa93617bad9..51226bd6cfe 100644 --- a/docs/0.72/the-new-architecture/backward-compatibility.html +++ b/docs/0.72/the-new-architecture/backward-compatibility.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/the-new-architecture/cxx-custom-types.html b/docs/0.72/the-new-architecture/cxx-custom-types.html index 093b5dc6e83..5378bc6254d 100644 --- a/docs/0.72/the-new-architecture/cxx-custom-types.html +++ b/docs/0.72/the-new-architecture/cxx-custom-types.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/the-new-architecture/cxx-cxxturbomodules.html b/docs/0.72/the-new-architecture/cxx-cxxturbomodules.html index 035f3c49e28..e2330b827a5 100644 --- a/docs/0.72/the-new-architecture/cxx-cxxturbomodules.html +++ b/docs/0.72/the-new-architecture/cxx-cxxturbomodules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/the-new-architecture/landing-page.html b/docs/0.72/the-new-architecture/landing-page.html index dcdbeec45a7..60e38ee2876 100644 Binary files a/docs/0.72/the-new-architecture/landing-page.html and b/docs/0.72/the-new-architecture/landing-page.html differ diff --git a/docs/0.72/the-new-architecture/pillars-codegen.html b/docs/0.72/the-new-architecture/pillars-codegen.html index d8fefed4b39..8281e517a62 100644 --- a/docs/0.72/the-new-architecture/pillars-codegen.html +++ b/docs/0.72/the-new-architecture/pillars-codegen.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/the-new-architecture/pillars-fabric-components.html b/docs/0.72/the-new-architecture/pillars-fabric-components.html index 9b3cee9e37d..eed5f2c9a21 100644 --- a/docs/0.72/the-new-architecture/pillars-fabric-components.html +++ b/docs/0.72/the-new-architecture/pillars-fabric-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/the-new-architecture/pillars-turbomodules.html b/docs/0.72/the-new-architecture/pillars-turbomodules.html index e064a0cc1fe..e3bb4696504 100644 --- a/docs/0.72/the-new-architecture/pillars-turbomodules.html +++ b/docs/0.72/the-new-architecture/pillars-turbomodules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/the-new-architecture/pillars.html b/docs/0.72/the-new-architecture/pillars.html index b8fa3077be2..bf88e1c5ab3 100644 --- a/docs/0.72/the-new-architecture/pillars.html +++ b/docs/0.72/the-new-architecture/pillars.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/the-new-architecture/use-app-template.html b/docs/0.72/the-new-architecture/use-app-template.html index 63393673a00..10b4aa95557 100644 --- a/docs/0.72/the-new-architecture/use-app-template.html +++ b/docs/0.72/the-new-architecture/use-app-template.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/the-new-architecture/why.html b/docs/0.72/the-new-architecture/why.html index f6ff8be9651..e01ec5c1d9f 100644 --- a/docs/0.72/the-new-architecture/why.html +++ b/docs/0.72/the-new-architecture/why.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/threading-model.html b/docs/0.72/threading-model.html index 717f2c62905..48398c1d74b 100644 --- a/docs/0.72/threading-model.html +++ b/docs/0.72/threading-model.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/timepickerandroid.html b/docs/0.72/timepickerandroid.html index b57458c20ac..c24c79cbbe4 100644 --- a/docs/0.72/timepickerandroid.html +++ b/docs/0.72/timepickerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/timers.html b/docs/0.72/timers.html index d8d56c9bf66..edd0a1ae52f 100644 Binary files a/docs/0.72/timers.html and b/docs/0.72/timers.html differ diff --git a/docs/0.72/toastandroid.html b/docs/0.72/toastandroid.html index 0780a7ce7f2..0805f51547f 100644 --- a/docs/0.72/toastandroid.html +++ b/docs/0.72/toastandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/touchablehighlight.html b/docs/0.72/touchablehighlight.html index 8d838c5ddf3..8929e9c156a 100644 --- a/docs/0.72/touchablehighlight.html +++ b/docs/0.72/touchablehighlight.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/touchablenativefeedback.html b/docs/0.72/touchablenativefeedback.html index 3e118ff519a..fe4d30b7099 100644 --- a/docs/0.72/touchablenativefeedback.html +++ b/docs/0.72/touchablenativefeedback.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/touchableopacity.html b/docs/0.72/touchableopacity.html index ad5a63ad46b..520bbc431e7 100644 --- a/docs/0.72/touchableopacity.html +++ b/docs/0.72/touchableopacity.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/touchablewithoutfeedback.html b/docs/0.72/touchablewithoutfeedback.html index 1d52dc6795a..13062d7e2de 100644 --- a/docs/0.72/touchablewithoutfeedback.html +++ b/docs/0.72/touchablewithoutfeedback.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/transforms.html b/docs/0.72/transforms.html index dc65db23e74..70a6037f227 100644 --- a/docs/0.72/transforms.html +++ b/docs/0.72/transforms.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/troubleshooting.html b/docs/0.72/troubleshooting.html index 639525d2c8d..9349efc6dbd 100644 --- a/docs/0.72/troubleshooting.html +++ b/docs/0.72/troubleshooting.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/tutorial.html b/docs/0.72/tutorial.html index 6a3b57e2ac9..1d32af1e45d 100644 --- a/docs/0.72/tutorial.html +++ b/docs/0.72/tutorial.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/typescript.html b/docs/0.72/typescript.html index 2daff4f8abf..98994e082c3 100644 --- a/docs/0.72/typescript.html +++ b/docs/0.72/typescript.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/upgrading.html b/docs/0.72/upgrading.html index 5f88c459dfc..4f8d7a88558 100644 --- a/docs/0.72/upgrading.html +++ b/docs/0.72/upgrading.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/usecolorscheme.html b/docs/0.72/usecolorscheme.html index 11299835dc3..963bf41c90a 100644 --- a/docs/0.72/usecolorscheme.html +++ b/docs/0.72/usecolorscheme.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/usewindowdimensions.html b/docs/0.72/usewindowdimensions.html index ca850b01c1a..ce04e7dab5a 100644 --- a/docs/0.72/usewindowdimensions.html +++ b/docs/0.72/usewindowdimensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/using-a-listview.html b/docs/0.72/using-a-listview.html index dc2225f8031..62e380e7907 100644 --- a/docs/0.72/using-a-listview.html +++ b/docs/0.72/using-a-listview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/using-a-scrollview.html b/docs/0.72/using-a-scrollview.html index 5b583d65754..bd3936c5e22 100644 --- a/docs/0.72/using-a-scrollview.html +++ b/docs/0.72/using-a-scrollview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/vibration.html b/docs/0.72/vibration.html index b6d7cbb2126..cbed57f4c08 100644 --- a/docs/0.72/vibration.html +++ b/docs/0.72/vibration.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/view-flattening.html b/docs/0.72/view-flattening.html index dde2456d00e..e1aba35e576 100644 --- a/docs/0.72/view-flattening.html +++ b/docs/0.72/view-flattening.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/view-style-props.html b/docs/0.72/view-style-props.html index 934d98a6e59..e98b70917ce 100644 --- a/docs/0.72/view-style-props.html +++ b/docs/0.72/view-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/view.html b/docs/0.72/view.html index a90aff3e449..2e424cda3db 100644 --- a/docs/0.72/view.html +++ b/docs/0.72/view.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/viewpagerandroid.html b/docs/0.72/viewpagerandroid.html index a6c9e8ab34d..4b47b708654 100644 --- a/docs/0.72/viewpagerandroid.html +++ b/docs/0.72/viewpagerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/viewtoken.html b/docs/0.72/viewtoken.html index 32ca51e75c5..07dada5eedd 100644 --- a/docs/0.72/viewtoken.html +++ b/docs/0.72/viewtoken.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/virtualizedlist.html b/docs/0.72/virtualizedlist.html index 17937f8a088..72bcb0ebb5c 100644 --- a/docs/0.72/virtualizedlist.html +++ b/docs/0.72/virtualizedlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/xplat-implementation.html b/docs/0.72/xplat-implementation.html index d2f3a0a89a5..0b31600765d 100644 --- a/docs/0.72/xplat-implementation.html +++ b/docs/0.72/xplat-implementation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/accessibility.html b/docs/0.73/accessibility.html index 656f94aaeb4..8cd7bd5d789 100644 --- a/docs/0.73/accessibility.html +++ b/docs/0.73/accessibility.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/accessibilityinfo.html b/docs/0.73/accessibilityinfo.html index 1c07fa5b8e5..954e17bef3e 100644 --- a/docs/0.73/accessibilityinfo.html +++ b/docs/0.73/accessibilityinfo.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/actionsheetios.html b/docs/0.73/actionsheetios.html index b6fb74a1fef..a3d97eeed49 100644 --- a/docs/0.73/actionsheetios.html +++ b/docs/0.73/actionsheetios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/activityindicator.html b/docs/0.73/activityindicator.html index 861c0acff33..eac8d19acbf 100644 --- a/docs/0.73/activityindicator.html +++ b/docs/0.73/activityindicator.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/alert.html b/docs/0.73/alert.html index b9ee7e32365..f14c2ac95e8 100644 --- a/docs/0.73/alert.html +++ b/docs/0.73/alert.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/alertios.html b/docs/0.73/alertios.html index 688af08ef28..2aab9135213 100644 --- a/docs/0.73/alertios.html +++ b/docs/0.73/alertios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/animated.html b/docs/0.73/animated.html index 2c7f32c639c..f4c48866c9d 100644 --- a/docs/0.73/animated.html +++ b/docs/0.73/animated.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/animatedvalue.html b/docs/0.73/animatedvalue.html index 90325b12cba..dbc3d72e904 100644 --- a/docs/0.73/animatedvalue.html +++ b/docs/0.73/animatedvalue.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/animatedvaluexy.html b/docs/0.73/animatedvaluexy.html index 7d47610a445..c15527e7cd9 100644 --- a/docs/0.73/animatedvaluexy.html +++ b/docs/0.73/animatedvaluexy.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/animations.html b/docs/0.73/animations.html index 888275f68f9..814cd0751fc 100644 --- a/docs/0.73/animations.html +++ b/docs/0.73/animations.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/app-extensions.html b/docs/0.73/app-extensions.html index 413eab982ac..1b953280be0 100644 --- a/docs/0.73/app-extensions.html +++ b/docs/0.73/app-extensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/appearance.html b/docs/0.73/appearance.html index 9a99c60e0a3..f1b797b51b1 100644 --- a/docs/0.73/appearance.html +++ b/docs/0.73/appearance.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/appregistry.html b/docs/0.73/appregistry.html index dbc4e2ce5a6..08105f756c8 100644 --- a/docs/0.73/appregistry.html +++ b/docs/0.73/appregistry.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/appstate.html b/docs/0.73/appstate.html index 58f5c10e527..bea9178f1ed 100644 --- a/docs/0.73/appstate.html +++ b/docs/0.73/appstate.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/architecture-glossary.html b/docs/0.73/architecture-glossary.html index 5a1ed228428..a333071d2f6 100644 --- a/docs/0.73/architecture-glossary.html +++ b/docs/0.73/architecture-glossary.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/architecture-overview.html b/docs/0.73/architecture-overview.html index d88b05c3fe2..a425ac9d2cf 100644 --- a/docs/0.73/architecture-overview.html +++ b/docs/0.73/architecture-overview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/asyncstorage.html b/docs/0.73/asyncstorage.html index baaf36b1172..0832b137aaf 100644 --- a/docs/0.73/asyncstorage.html +++ b/docs/0.73/asyncstorage.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/backhandler.html b/docs/0.73/backhandler.html index fd14687bd78..1cae774e696 100644 --- a/docs/0.73/backhandler.html +++ b/docs/0.73/backhandler.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/build-speed.html b/docs/0.73/build-speed.html index 0e1c40cebe2..11ded5d080f 100644 --- a/docs/0.73/build-speed.html +++ b/docs/0.73/build-speed.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/building-for-tv.html b/docs/0.73/building-for-tv.html index 0e21a7749d6..55f8f4d9072 100644 --- a/docs/0.73/building-for-tv.html +++ b/docs/0.73/building-for-tv.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/button.html b/docs/0.73/button.html index e5b19df02cb..f27404902aa 100644 Binary files a/docs/0.73/button.html and b/docs/0.73/button.html differ diff --git a/docs/0.73/checkbox.html b/docs/0.73/checkbox.html index 0a3354a06fa..315a1a5bddc 100644 --- a/docs/0.73/checkbox.html +++ b/docs/0.73/checkbox.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/clipboard.html b/docs/0.73/clipboard.html index a326db94eb9..b7bb3c9d4ae 100644 --- a/docs/0.73/clipboard.html +++ b/docs/0.73/clipboard.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/colors.html b/docs/0.73/colors.html index 4669cb0020b..7e55a410090 100644 Binary files a/docs/0.73/colors.html and b/docs/0.73/colors.html differ diff --git a/docs/0.73/communication-android.html b/docs/0.73/communication-android.html index d4513476642..12df852477d 100644 --- a/docs/0.73/communication-android.html +++ b/docs/0.73/communication-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/communication-ios.html b/docs/0.73/communication-ios.html index 7e56e2adfdc..91552d0cb70 100644 --- a/docs/0.73/communication-ios.html +++ b/docs/0.73/communication-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/components-and-apis.html b/docs/0.73/components-and-apis.html index ea97dd34a9d..122cdc733e2 100644 --- a/docs/0.73/components-and-apis.html +++ b/docs/0.73/components-and-apis.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/custom-webview-android.html b/docs/0.73/custom-webview-android.html index 7cf6b0e6663..aa50c299647 100644 --- a/docs/0.73/custom-webview-android.html +++ b/docs/0.73/custom-webview-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/custom-webview-ios.html b/docs/0.73/custom-webview-ios.html index 76fe4648fb0..62fece6677d 100644 --- a/docs/0.73/custom-webview-ios.html +++ b/docs/0.73/custom-webview-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/datepickerandroid.html b/docs/0.73/datepickerandroid.html index 165301547ad..7820d641c9d 100644 --- a/docs/0.73/datepickerandroid.html +++ b/docs/0.73/datepickerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/datepickerios.html b/docs/0.73/datepickerios.html index 04abe2c276e..e991cc24023 100644 --- a/docs/0.73/datepickerios.html +++ b/docs/0.73/datepickerios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/debugging-release-builds.html b/docs/0.73/debugging-release-builds.html index 83d909d9465..144d992bfa8 100644 --- a/docs/0.73/debugging-release-builds.html +++ b/docs/0.73/debugging-release-builds.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/debugging.html b/docs/0.73/debugging.html index 52447937a08..2b4b663a5ab 100644 --- a/docs/0.73/debugging.html +++ b/docs/0.73/debugging.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/devsettings.html b/docs/0.73/devsettings.html index a0f73672103..5c2c06f00fc 100644 --- a/docs/0.73/devsettings.html +++ b/docs/0.73/devsettings.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/dimensions.html b/docs/0.73/dimensions.html index e40d5cda4ea..08af369b51c 100644 --- a/docs/0.73/dimensions.html +++ b/docs/0.73/dimensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/direct-manipulation.html b/docs/0.73/direct-manipulation.html index a5e5b3edbdf..0b8a5a0aea6 100644 --- a/docs/0.73/direct-manipulation.html +++ b/docs/0.73/direct-manipulation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/drawerlayoutandroid.html b/docs/0.73/drawerlayoutandroid.html index 572c65353ba..8244e504fef 100644 --- a/docs/0.73/drawerlayoutandroid.html +++ b/docs/0.73/drawerlayoutandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/dynamiccolorios.html b/docs/0.73/dynamiccolorios.html index ed4cc102057..e96cf460149 100644 --- a/docs/0.73/dynamiccolorios.html +++ b/docs/0.73/dynamiccolorios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/easing.html b/docs/0.73/easing.html index 767d87372a3..89c8a139bcf 100644 Binary files a/docs/0.73/easing.html and b/docs/0.73/easing.html differ diff --git a/docs/0.73/environment-setup.html b/docs/0.73/environment-setup.html index 193bea0d777..4102c595754 100644 --- a/docs/0.73/environment-setup.html +++ b/docs/0.73/environment-setup.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/fabric-renderer.html b/docs/0.73/fabric-renderer.html index 23797a8d2b2..d4621f8d6e2 100644 --- a/docs/0.73/fabric-renderer.html +++ b/docs/0.73/fabric-renderer.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/fast-refresh.html b/docs/0.73/fast-refresh.html index 85b49035851..191797c56a6 100644 --- a/docs/0.73/fast-refresh.html +++ b/docs/0.73/fast-refresh.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/flatlist.html b/docs/0.73/flatlist.html index 17e99c1c43c..123ed501254 100644 --- a/docs/0.73/flatlist.html +++ b/docs/0.73/flatlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/flexbox.html b/docs/0.73/flexbox.html index 4b54d251b62..20506398860 100644 --- a/docs/0.73/flexbox.html +++ b/docs/0.73/flexbox.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/gesture-responder-system.html b/docs/0.73/gesture-responder-system.html index 27c6bf43b09..81796153729 100644 --- a/docs/0.73/gesture-responder-system.html +++ b/docs/0.73/gesture-responder-system.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/getting-started.html b/docs/0.73/getting-started.html index 8596e9e7308..45e8788de3a 100644 --- a/docs/0.73/getting-started.html +++ b/docs/0.73/getting-started.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/handling-text-input.html b/docs/0.73/handling-text-input.html index bf3df851ef6..eceb429e6f1 100644 --- a/docs/0.73/handling-text-input.html +++ b/docs/0.73/handling-text-input.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/handling-touches.html b/docs/0.73/handling-touches.html index 5cb852a561a..1c8abd0f413 100644 --- a/docs/0.73/handling-touches.html +++ b/docs/0.73/handling-touches.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/headless-js-android.html b/docs/0.73/headless-js-android.html index 25e5708cd29..712bb06543c 100644 --- a/docs/0.73/headless-js-android.html +++ b/docs/0.73/headless-js-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/height-and-width.html b/docs/0.73/height-and-width.html index e867d393a4e..69e76179843 100644 --- a/docs/0.73/height-and-width.html +++ b/docs/0.73/height-and-width.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/hermes.html b/docs/0.73/hermes.html index 3b50941c6c1..9342ad61e28 100644 Binary files a/docs/0.73/hermes.html and b/docs/0.73/hermes.html differ diff --git a/docs/0.73/image-style-props.html b/docs/0.73/image-style-props.html index 135e508a2a7..0f6e46964b1 100644 --- a/docs/0.73/image-style-props.html +++ b/docs/0.73/image-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/image.html b/docs/0.73/image.html index 0d72c47b233..da9bf6e24e1 100644 --- a/docs/0.73/image.html +++ b/docs/0.73/image.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/imagebackground.html b/docs/0.73/imagebackground.html index bf4e01e869a..543fd0f604d 100644 --- a/docs/0.73/imagebackground.html +++ b/docs/0.73/imagebackground.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/imagepickerios.html b/docs/0.73/imagepickerios.html index 8d5d8420eb1..ff79f0981da 100644 --- a/docs/0.73/imagepickerios.html +++ b/docs/0.73/imagepickerios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/images.html b/docs/0.73/images.html index 2f278f14c7f..6ce3f947e04 100644 Binary files a/docs/0.73/images.html and b/docs/0.73/images.html differ diff --git a/docs/0.73/improvingux.html b/docs/0.73/improvingux.html index 53bc91586b9..8036a51f564 100644 --- a/docs/0.73/improvingux.html +++ b/docs/0.73/improvingux.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/inputaccessoryview.html b/docs/0.73/inputaccessoryview.html index 57e1f5d83e7..c235c7ee623 100644 --- a/docs/0.73/inputaccessoryview.html +++ b/docs/0.73/inputaccessoryview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/integration-with-android-fragment.html b/docs/0.73/integration-with-android-fragment.html index bfc89c3abc8..36d5464db4b 100644 Binary files a/docs/0.73/integration-with-android-fragment.html and b/docs/0.73/integration-with-android-fragment.html differ diff --git a/docs/0.73/integration-with-existing-apps.html b/docs/0.73/integration-with-existing-apps.html index bfc7741de27..6236d50e581 100644 --- a/docs/0.73/integration-with-existing-apps.html +++ b/docs/0.73/integration-with-existing-apps.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/interactionmanager.html b/docs/0.73/interactionmanager.html index 93354dd65a1..93f263b9a9a 100644 --- a/docs/0.73/interactionmanager.html +++ b/docs/0.73/interactionmanager.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/intro-react-native-components.html b/docs/0.73/intro-react-native-components.html index 6b904a27d00..6f27921c444 100644 --- a/docs/0.73/intro-react-native-components.html +++ b/docs/0.73/intro-react-native-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/intro-react.html b/docs/0.73/intro-react.html index 7d895503248..cbad8765314 100644 --- a/docs/0.73/intro-react.html +++ b/docs/0.73/intro-react.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/javascript-environment.html b/docs/0.73/javascript-environment.html index 7c9f4156623..5f8c2e10d73 100644 --- a/docs/0.73/javascript-environment.html +++ b/docs/0.73/javascript-environment.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/keyboard.html b/docs/0.73/keyboard.html index cc869d35e1e..d2a2784384c 100644 --- a/docs/0.73/keyboard.html +++ b/docs/0.73/keyboard.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/keyboardavoidingview.html b/docs/0.73/keyboardavoidingview.html index 70021b4387b..765298e748b 100644 --- a/docs/0.73/keyboardavoidingview.html +++ b/docs/0.73/keyboardavoidingview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/layout-props.html b/docs/0.73/layout-props.html index e2ba0880961..f287c9f484b 100644 --- a/docs/0.73/layout-props.html +++ b/docs/0.73/layout-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/layoutanimation.html b/docs/0.73/layoutanimation.html index 268871ebe4f..8cf4c80281b 100644 --- a/docs/0.73/layoutanimation.html +++ b/docs/0.73/layoutanimation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/layoutevent.html b/docs/0.73/layoutevent.html index 812233f07bc..587f6ee4377 100644 --- a/docs/0.73/layoutevent.html +++ b/docs/0.73/layoutevent.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/libraries.html b/docs/0.73/libraries.html index 2b09ac12658..8aeddf57727 100644 --- a/docs/0.73/libraries.html +++ b/docs/0.73/libraries.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/linking-libraries-ios.html b/docs/0.73/linking-libraries-ios.html index 3f7faf79da5..62bb78bcd5f 100644 --- a/docs/0.73/linking-libraries-ios.html +++ b/docs/0.73/linking-libraries-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/linking.html b/docs/0.73/linking.html index a008177bf07..680788f5af4 100644 --- a/docs/0.73/linking.html +++ b/docs/0.73/linking.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/metro.html b/docs/0.73/metro.html index 14cc074eb57..59d89a22456 100644 --- a/docs/0.73/metro.html +++ b/docs/0.73/metro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/modal.html b/docs/0.73/modal.html index c9d7e8af4bf..90cbf8c3e59 100644 --- a/docs/0.73/modal.html +++ b/docs/0.73/modal.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/more-resources.html b/docs/0.73/more-resources.html index fe8b12b293b..9b2735932c8 100644 --- a/docs/0.73/more-resources.html +++ b/docs/0.73/more-resources.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/native-components-android.html b/docs/0.73/native-components-android.html index 13f637bc39a..13b1df02acf 100644 --- a/docs/0.73/native-components-android.html +++ b/docs/0.73/native-components-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/native-components-ios.html b/docs/0.73/native-components-ios.html index 4dbd3c99314..a0687ca87b4 100644 --- a/docs/0.73/native-components-ios.html +++ b/docs/0.73/native-components-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/native-debugging.html b/docs/0.73/native-debugging.html index 928ec9ef651..29a9e250214 100644 --- a/docs/0.73/native-debugging.html +++ b/docs/0.73/native-debugging.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/native-modules-android.html b/docs/0.73/native-modules-android.html index c97c8e07e8f..aead0999801 100644 --- a/docs/0.73/native-modules-android.html +++ b/docs/0.73/native-modules-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/native-modules-intro.html b/docs/0.73/native-modules-intro.html index d3c63352479..e21b76a9d2f 100644 --- a/docs/0.73/native-modules-intro.html +++ b/docs/0.73/native-modules-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/native-modules-ios.html b/docs/0.73/native-modules-ios.html index 4819eb4653b..259e00a22d7 100644 --- a/docs/0.73/native-modules-ios.html +++ b/docs/0.73/native-modules-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/native-modules-setup.html b/docs/0.73/native-modules-setup.html index 2f374c5d51c..9ff4a104600 100644 --- a/docs/0.73/native-modules-setup.html +++ b/docs/0.73/native-modules-setup.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/navigation.html b/docs/0.73/navigation.html index 60dc41fc331..e6a87e8253b 100644 --- a/docs/0.73/navigation.html +++ b/docs/0.73/navigation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/netinfo.html b/docs/0.73/netinfo.html index c4951f7cead..9fef824e5fe 100644 --- a/docs/0.73/netinfo.html +++ b/docs/0.73/netinfo.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/network.html b/docs/0.73/network.html index c811182c637..758cd7affb3 100644 --- a/docs/0.73/network.html +++ b/docs/0.73/network.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/new-architecture-app-intro.html b/docs/0.73/new-architecture-app-intro.html index c954ccaeba1..7c9f8015043 100644 --- a/docs/0.73/new-architecture-app-intro.html +++ b/docs/0.73/new-architecture-app-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/new-architecture-app-modules-android.html b/docs/0.73/new-architecture-app-modules-android.html index 9ecd16db4cc..af61b050b8a 100644 --- a/docs/0.73/new-architecture-app-modules-android.html +++ b/docs/0.73/new-architecture-app-modules-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/new-architecture-app-modules-ios.html b/docs/0.73/new-architecture-app-modules-ios.html index 473d9f5f200..1028612096a 100644 --- a/docs/0.73/new-architecture-app-modules-ios.html +++ b/docs/0.73/new-architecture-app-modules-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/new-architecture-app-renderer-android.html b/docs/0.73/new-architecture-app-renderer-android.html index 68df2046d55..5bc8af5e05b 100644 --- a/docs/0.73/new-architecture-app-renderer-android.html +++ b/docs/0.73/new-architecture-app-renderer-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/new-architecture-app-renderer-ios.html b/docs/0.73/new-architecture-app-renderer-ios.html index bbd01a20cac..6eb386f8605 100644 Binary files a/docs/0.73/new-architecture-app-renderer-ios.html and b/docs/0.73/new-architecture-app-renderer-ios.html differ diff --git a/docs/0.73/new-architecture-appendix.html b/docs/0.73/new-architecture-appendix.html index b8c77cd2a75..033c66fb900 100644 --- a/docs/0.73/new-architecture-appendix.html +++ b/docs/0.73/new-architecture-appendix.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/new-architecture-intro.html b/docs/0.73/new-architecture-intro.html index 35771b1138a..e42261bbd70 100644 --- a/docs/0.73/new-architecture-intro.html +++ b/docs/0.73/new-architecture-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/new-architecture-library-android.html b/docs/0.73/new-architecture-library-android.html index ca24c135d7e..3a26299fdd0 100644 --- a/docs/0.73/new-architecture-library-android.html +++ b/docs/0.73/new-architecture-library-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/new-architecture-library-intro.html b/docs/0.73/new-architecture-library-intro.html index ad9fa882a61..ef9546047f3 100644 --- a/docs/0.73/new-architecture-library-intro.html +++ b/docs/0.73/new-architecture-library-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/new-architecture-library-ios.html b/docs/0.73/new-architecture-library-ios.html index 0cf3da2443a..122f2b32d1c 100644 --- a/docs/0.73/new-architecture-library-ios.html +++ b/docs/0.73/new-architecture-library-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/new-architecture-troubleshooting.html b/docs/0.73/new-architecture-troubleshooting.html index 96751af3852..f3886288b8f 100644 --- a/docs/0.73/new-architecture-troubleshooting.html +++ b/docs/0.73/new-architecture-troubleshooting.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/optimizing-flatlist-configuration.html b/docs/0.73/optimizing-flatlist-configuration.html index 3b195c0bf68..7028635a910 100644 Binary files a/docs/0.73/optimizing-flatlist-configuration.html and b/docs/0.73/optimizing-flatlist-configuration.html differ diff --git a/docs/0.73/other-debugging-methods.html b/docs/0.73/other-debugging-methods.html index 1df15c29cb1..11558414ddf 100644 --- a/docs/0.73/other-debugging-methods.html +++ b/docs/0.73/other-debugging-methods.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/out-of-tree-platforms.html b/docs/0.73/out-of-tree-platforms.html index 1341c7498d6..f4220f8385f 100644 --- a/docs/0.73/out-of-tree-platforms.html +++ b/docs/0.73/out-of-tree-platforms.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/panresponder.html b/docs/0.73/panresponder.html index 22e741ca573..bc0f7164b96 100644 --- a/docs/0.73/panresponder.html +++ b/docs/0.73/panresponder.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/performance.html b/docs/0.73/performance.html index 0edf1cc63ac..729e56df8cf 100644 --- a/docs/0.73/performance.html +++ b/docs/0.73/performance.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/permissionsandroid.html b/docs/0.73/permissionsandroid.html index 5a150519fe9..89f2432e388 100644 --- a/docs/0.73/permissionsandroid.html +++ b/docs/0.73/permissionsandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/pixelratio.html b/docs/0.73/pixelratio.html index 98c6d1c44cd..72b29581fa1 100644 --- a/docs/0.73/pixelratio.html +++ b/docs/0.73/pixelratio.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/platform-specific-code.html b/docs/0.73/platform-specific-code.html index 4bd4c4123d7..6261ab02da9 100644 --- a/docs/0.73/platform-specific-code.html +++ b/docs/0.73/platform-specific-code.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/platform.html b/docs/0.73/platform.html index b6c0c3f7808..bbd79e8b0a7 100644 --- a/docs/0.73/platform.html +++ b/docs/0.73/platform.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/platformcolor.html b/docs/0.73/platformcolor.html index 4b9cfff1704..2252162ff8d 100644 --- a/docs/0.73/platformcolor.html +++ b/docs/0.73/platformcolor.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/pressable.html b/docs/0.73/pressable.html index 0a8b4d9cd7f..922d9e2d791 100644 --- a/docs/0.73/pressable.html +++ b/docs/0.73/pressable.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/pressevent.html b/docs/0.73/pressevent.html index ad96647b720..2deb858058f 100644 --- a/docs/0.73/pressevent.html +++ b/docs/0.73/pressevent.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/profile-hermes.html b/docs/0.73/profile-hermes.html index eb2bec0f668..cbd72659e1a 100644 --- a/docs/0.73/profile-hermes.html +++ b/docs/0.73/profile-hermes.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/profiling.html b/docs/0.73/profiling.html index b919232147f..05fb847d036 100644 --- a/docs/0.73/profiling.html +++ b/docs/0.73/profiling.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/progressbarandroid.html b/docs/0.73/progressbarandroid.html index 1518913ce7f..233e364f9d2 100644 --- a/docs/0.73/progressbarandroid.html +++ b/docs/0.73/progressbarandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/progressviewios.html b/docs/0.73/progressviewios.html index 85c32fec57e..75e9791eee4 100644 --- a/docs/0.73/progressviewios.html +++ b/docs/0.73/progressviewios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/props.html b/docs/0.73/props.html index 0031669d298..d0a62e934da 100644 --- a/docs/0.73/props.html +++ b/docs/0.73/props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/publishing-to-app-store.html b/docs/0.73/publishing-to-app-store.html index 641696244a8..ea18b98db8b 100644 --- a/docs/0.73/publishing-to-app-store.html +++ b/docs/0.73/publishing-to-app-store.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/pushnotificationios.html b/docs/0.73/pushnotificationios.html index 351dccf90eb..0060c451bf0 100644 --- a/docs/0.73/pushnotificationios.html +++ b/docs/0.73/pushnotificationios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/ram-bundles-inline-requires.html b/docs/0.73/ram-bundles-inline-requires.html index 4d97fe40cd9..64be1843f5b 100644 --- a/docs/0.73/ram-bundles-inline-requires.html +++ b/docs/0.73/ram-bundles-inline-requires.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/react-18-and-react-native.html b/docs/0.73/react-18-and-react-native.html index 98dfde262e6..7b8ef66531b 100644 --- a/docs/0.73/react-18-and-react-native.html +++ b/docs/0.73/react-18-and-react-native.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/react-devtools.html b/docs/0.73/react-devtools.html index 69affb6f4c2..8444d6edefa 100644 --- a/docs/0.73/react-devtools.html +++ b/docs/0.73/react-devtools.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/react-native-gradle-plugin.html b/docs/0.73/react-native-gradle-plugin.html index 36f934adb92..52e7f793a33 100644 --- a/docs/0.73/react-native-gradle-plugin.html +++ b/docs/0.73/react-native-gradle-plugin.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/react-node.html b/docs/0.73/react-node.html index 7fec8d527ca..5dd7cf06b19 100644 --- a/docs/0.73/react-node.html +++ b/docs/0.73/react-node.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/rect.html b/docs/0.73/rect.html index 1c7dbf5fc9b..e034a520f56 100644 --- a/docs/0.73/rect.html +++ b/docs/0.73/rect.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/rectorsize.html b/docs/0.73/rectorsize.html index dbc22ff6980..baa00aa667c 100644 --- a/docs/0.73/rectorsize.html +++ b/docs/0.73/rectorsize.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/refreshcontrol.html b/docs/0.73/refreshcontrol.html index c84df5a6e76..31f83617edb 100644 --- a/docs/0.73/refreshcontrol.html +++ b/docs/0.73/refreshcontrol.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/removing-default-permissions.html b/docs/0.73/removing-default-permissions.html index 50f31104d2c..7847d9340e8 100644 --- a/docs/0.73/removing-default-permissions.html +++ b/docs/0.73/removing-default-permissions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/render-pipeline.html b/docs/0.73/render-pipeline.html index 12a94daff6b..510e35aeb7f 100644 --- a/docs/0.73/render-pipeline.html +++ b/docs/0.73/render-pipeline.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/roottag.html b/docs/0.73/roottag.html index a0edd7c361e..01a17c6e762 100644 --- a/docs/0.73/roottag.html +++ b/docs/0.73/roottag.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/running-on-device.html b/docs/0.73/running-on-device.html index 8b6dcf7dc21..6cc8946fecd 100644 --- a/docs/0.73/running-on-device.html +++ b/docs/0.73/running-on-device.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/running-on-simulator-ios.html b/docs/0.73/running-on-simulator-ios.html index 2069cff34e7..60137423e55 100644 --- a/docs/0.73/running-on-simulator-ios.html +++ b/docs/0.73/running-on-simulator-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/safeareaview.html b/docs/0.73/safeareaview.html index 2c107b97b3a..324d08dee96 100644 --- a/docs/0.73/safeareaview.html +++ b/docs/0.73/safeareaview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/sample-application-movies.html b/docs/0.73/sample-application-movies.html index 404fd20fde0..412779d442d 100644 --- a/docs/0.73/sample-application-movies.html +++ b/docs/0.73/sample-application-movies.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/scrollview.html b/docs/0.73/scrollview.html index e91508a4ead..3f1de180f77 100644 --- a/docs/0.73/scrollview.html +++ b/docs/0.73/scrollview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/sectionlist.html b/docs/0.73/sectionlist.html index 9df64436036..a766d597576 100644 --- a/docs/0.73/sectionlist.html +++ b/docs/0.73/sectionlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/security.html b/docs/0.73/security.html index 0c7c08c5b9e..c5b570b0656 100644 --- a/docs/0.73/security.html +++ b/docs/0.73/security.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/segmentedcontrolios.html b/docs/0.73/segmentedcontrolios.html index 4cf48e1c376..4ae909e1ca5 100644 --- a/docs/0.73/segmentedcontrolios.html +++ b/docs/0.73/segmentedcontrolios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/settings.html b/docs/0.73/settings.html index ca32038aa96..b197f4edcdb 100644 --- a/docs/0.73/settings.html +++ b/docs/0.73/settings.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/shadow-props.html b/docs/0.73/shadow-props.html index d988376f3e0..1dce4bc1180 100644 --- a/docs/0.73/shadow-props.html +++ b/docs/0.73/shadow-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/share.html b/docs/0.73/share.html index ac92e4c2190..7e4b76c3207 100644 --- a/docs/0.73/share.html +++ b/docs/0.73/share.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/signed-apk-android.html b/docs/0.73/signed-apk-android.html index bdffb10460a..048256b334a 100644 --- a/docs/0.73/signed-apk-android.html +++ b/docs/0.73/signed-apk-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/slider.html b/docs/0.73/slider.html index 6d6a5af3aff..6c9760af3df 100644 Binary files a/docs/0.73/slider.html and b/docs/0.73/slider.html differ diff --git a/docs/0.73/speeding-ci-builds.html b/docs/0.73/speeding-ci-builds.html index bbc4a2b5496..fabf7334169 100644 --- a/docs/0.73/speeding-ci-builds.html +++ b/docs/0.73/speeding-ci-builds.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/state.html b/docs/0.73/state.html index 6cf4445fadf..224358b1fa8 100644 --- a/docs/0.73/state.html +++ b/docs/0.73/state.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/statusbar.html b/docs/0.73/statusbar.html index 4a38a183520..5e8194e5724 100644 --- a/docs/0.73/statusbar.html +++ b/docs/0.73/statusbar.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/style.html b/docs/0.73/style.html index 00f1616a2b3..318d02f338d 100644 --- a/docs/0.73/style.html +++ b/docs/0.73/style.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/stylesheet.html b/docs/0.73/stylesheet.html index f8668c64543..39739f6eff6 100644 --- a/docs/0.73/stylesheet.html +++ b/docs/0.73/stylesheet.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/switch.html b/docs/0.73/switch.html index 71216571f1c..5324e58452f 100644 Binary files a/docs/0.73/switch.html and b/docs/0.73/switch.html differ diff --git a/docs/0.73/symbolication.html b/docs/0.73/symbolication.html index ceabad0fa79..db7aa8f9bbd 100644 --- a/docs/0.73/symbolication.html +++ b/docs/0.73/symbolication.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/systrace.html b/docs/0.73/systrace.html index 4fc0f15d9c7..5a9fb70e25a 100644 --- a/docs/0.73/systrace.html +++ b/docs/0.73/systrace.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/testing-overview.html b/docs/0.73/testing-overview.html index e0f1972a6f6..722d011c5c5 100644 --- a/docs/0.73/testing-overview.html +++ b/docs/0.73/testing-overview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/text-style-props.html b/docs/0.73/text-style-props.html index 5d8854b510e..a5ed36ae44f 100644 --- a/docs/0.73/text-style-props.html +++ b/docs/0.73/text-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/text.html b/docs/0.73/text.html index 4c0c032b91f..d2724cbcb43 100644 --- a/docs/0.73/text.html +++ b/docs/0.73/text.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/textinput.html b/docs/0.73/textinput.html index e2f5063509d..04eff6b9088 100644 --- a/docs/0.73/textinput.html +++ b/docs/0.73/textinput.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/the-new-architecture/backward-compatibility-fabric-components.html b/docs/0.73/the-new-architecture/backward-compatibility-fabric-components.html index d0ae1ada50f..6b1b62be29d 100644 --- a/docs/0.73/the-new-architecture/backward-compatibility-fabric-components.html +++ b/docs/0.73/the-new-architecture/backward-compatibility-fabric-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/the-new-architecture/backward-compatibility-turbomodules.html b/docs/0.73/the-new-architecture/backward-compatibility-turbomodules.html index 42fbf7fd485..01b89e6f41c 100644 --- a/docs/0.73/the-new-architecture/backward-compatibility-turbomodules.html +++ b/docs/0.73/the-new-architecture/backward-compatibility-turbomodules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/the-new-architecture/backward-compatibility.html b/docs/0.73/the-new-architecture/backward-compatibility.html index b34bbf6a864..d6855231c1b 100644 --- a/docs/0.73/the-new-architecture/backward-compatibility.html +++ b/docs/0.73/the-new-architecture/backward-compatibility.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/the-new-architecture/cxx-custom-types.html b/docs/0.73/the-new-architecture/cxx-custom-types.html index a7143a0ca1c..7121d80bb57 100644 --- a/docs/0.73/the-new-architecture/cxx-custom-types.html +++ b/docs/0.73/the-new-architecture/cxx-custom-types.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/the-new-architecture/cxx-cxxturbomodules.html b/docs/0.73/the-new-architecture/cxx-cxxturbomodules.html index 817ac4dea6a..81422d5b929 100644 --- a/docs/0.73/the-new-architecture/cxx-cxxturbomodules.html +++ b/docs/0.73/the-new-architecture/cxx-cxxturbomodules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/the-new-architecture/landing-page.html b/docs/0.73/the-new-architecture/landing-page.html index 7681ceaf8ea..8f41b7268de 100644 Binary files a/docs/0.73/the-new-architecture/landing-page.html and b/docs/0.73/the-new-architecture/landing-page.html differ diff --git a/docs/0.73/the-new-architecture/pillars-codegen.html b/docs/0.73/the-new-architecture/pillars-codegen.html index 222326b2fce..72e8adc7ac5 100644 --- a/docs/0.73/the-new-architecture/pillars-codegen.html +++ b/docs/0.73/the-new-architecture/pillars-codegen.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/the-new-architecture/pillars-fabric-components.html b/docs/0.73/the-new-architecture/pillars-fabric-components.html index ed044b9f1fa..cbeb5053491 100644 --- a/docs/0.73/the-new-architecture/pillars-fabric-components.html +++ b/docs/0.73/the-new-architecture/pillars-fabric-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/the-new-architecture/pillars-turbomodules.html b/docs/0.73/the-new-architecture/pillars-turbomodules.html index 696ab71114d..b86131bd948 100644 --- a/docs/0.73/the-new-architecture/pillars-turbomodules.html +++ b/docs/0.73/the-new-architecture/pillars-turbomodules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/the-new-architecture/pillars.html b/docs/0.73/the-new-architecture/pillars.html index 2ce82aba3a5..87dbd2389d9 100644 --- a/docs/0.73/the-new-architecture/pillars.html +++ b/docs/0.73/the-new-architecture/pillars.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/the-new-architecture/use-app-template.html b/docs/0.73/the-new-architecture/use-app-template.html index c83b39f5f1f..bca54409148 100644 --- a/docs/0.73/the-new-architecture/use-app-template.html +++ b/docs/0.73/the-new-architecture/use-app-template.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/the-new-architecture/why.html b/docs/0.73/the-new-architecture/why.html index c15944ec77a..33001a8d66d 100644 --- a/docs/0.73/the-new-architecture/why.html +++ b/docs/0.73/the-new-architecture/why.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/threading-model.html b/docs/0.73/threading-model.html index 2eba9f73c47..d2c9cdd32d8 100644 --- a/docs/0.73/threading-model.html +++ b/docs/0.73/threading-model.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/timepickerandroid.html b/docs/0.73/timepickerandroid.html index d6c3e4ab825..589840b7c11 100644 --- a/docs/0.73/timepickerandroid.html +++ b/docs/0.73/timepickerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/timers.html b/docs/0.73/timers.html index eca9b9d8f14..b531290e19a 100644 Binary files a/docs/0.73/timers.html and b/docs/0.73/timers.html differ diff --git a/docs/0.73/toastandroid.html b/docs/0.73/toastandroid.html index 6f20e5d971c..7951ba49397 100644 --- a/docs/0.73/toastandroid.html +++ b/docs/0.73/toastandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/touchablehighlight.html b/docs/0.73/touchablehighlight.html index a59cd1acaaa..539b466e64e 100644 --- a/docs/0.73/touchablehighlight.html +++ b/docs/0.73/touchablehighlight.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/touchablenativefeedback.html b/docs/0.73/touchablenativefeedback.html index 28710af20b2..4fc97f01d10 100644 --- a/docs/0.73/touchablenativefeedback.html +++ b/docs/0.73/touchablenativefeedback.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/touchableopacity.html b/docs/0.73/touchableopacity.html index 26e8178f6b7..f0b6fbb339b 100644 --- a/docs/0.73/touchableopacity.html +++ b/docs/0.73/touchableopacity.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/touchablewithoutfeedback.html b/docs/0.73/touchablewithoutfeedback.html index c06dcc9d746..81359e5b858 100644 --- a/docs/0.73/touchablewithoutfeedback.html +++ b/docs/0.73/touchablewithoutfeedback.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/transforms.html b/docs/0.73/transforms.html index 8970956d793..a53b3b64a37 100644 --- a/docs/0.73/transforms.html +++ b/docs/0.73/transforms.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/troubleshooting.html b/docs/0.73/troubleshooting.html index f0e17637b32..471dfb6cc27 100644 --- a/docs/0.73/troubleshooting.html +++ b/docs/0.73/troubleshooting.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/tutorial.html b/docs/0.73/tutorial.html index 7429aa030fc..37c4a2428b2 100644 --- a/docs/0.73/tutorial.html +++ b/docs/0.73/tutorial.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/typescript.html b/docs/0.73/typescript.html index 43d07f2e2b2..669cf823f0c 100644 --- a/docs/0.73/typescript.html +++ b/docs/0.73/typescript.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/upgrading.html b/docs/0.73/upgrading.html index e0a79935a7c..9514756e2d8 100644 --- a/docs/0.73/upgrading.html +++ b/docs/0.73/upgrading.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/usecolorscheme.html b/docs/0.73/usecolorscheme.html index f8c20144246..5f395a3280e 100644 --- a/docs/0.73/usecolorscheme.html +++ b/docs/0.73/usecolorscheme.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/usewindowdimensions.html b/docs/0.73/usewindowdimensions.html index df38949b53e..9c2c228a614 100644 --- a/docs/0.73/usewindowdimensions.html +++ b/docs/0.73/usewindowdimensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/using-a-listview.html b/docs/0.73/using-a-listview.html index c904e6835a1..b0d91be73c8 100644 --- a/docs/0.73/using-a-listview.html +++ b/docs/0.73/using-a-listview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/using-a-scrollview.html b/docs/0.73/using-a-scrollview.html index 538b7e46528..21ecb26521c 100644 --- a/docs/0.73/using-a-scrollview.html +++ b/docs/0.73/using-a-scrollview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/vibration.html b/docs/0.73/vibration.html index cc68491ca5d..a0c5eb0f4d5 100644 --- a/docs/0.73/vibration.html +++ b/docs/0.73/vibration.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/view-flattening.html b/docs/0.73/view-flattening.html index 12a49d8ccc3..d7e60a3bace 100644 --- a/docs/0.73/view-flattening.html +++ b/docs/0.73/view-flattening.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/view-style-props.html b/docs/0.73/view-style-props.html index 09f005ac5f6..34b03396446 100644 --- a/docs/0.73/view-style-props.html +++ b/docs/0.73/view-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/view.html b/docs/0.73/view.html index 6a7b6d25554..29b78b750aa 100644 --- a/docs/0.73/view.html +++ b/docs/0.73/view.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/viewpagerandroid.html b/docs/0.73/viewpagerandroid.html index 5cba01b97c7..64af79745ac 100644 --- a/docs/0.73/viewpagerandroid.html +++ b/docs/0.73/viewpagerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/viewtoken.html b/docs/0.73/viewtoken.html index ea3f406f6a9..7a0950d7569 100644 --- a/docs/0.73/viewtoken.html +++ b/docs/0.73/viewtoken.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/virtualizedlist.html b/docs/0.73/virtualizedlist.html index 4776d55262c..df065650428 100644 --- a/docs/0.73/virtualizedlist.html +++ b/docs/0.73/virtualizedlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/xplat-implementation.html b/docs/0.73/xplat-implementation.html index 9250ec41b37..89896c98115 100644 --- a/docs/0.73/xplat-implementation.html +++ b/docs/0.73/xplat-implementation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/accessibility.html b/docs/0.74/accessibility.html index 5186d0b5035..cc6781410e2 100644 --- a/docs/0.74/accessibility.html +++ b/docs/0.74/accessibility.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/accessibilityinfo.html b/docs/0.74/accessibilityinfo.html index 870c5916f0b..e79964a17be 100644 --- a/docs/0.74/accessibilityinfo.html +++ b/docs/0.74/accessibilityinfo.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/actionsheetios.html b/docs/0.74/actionsheetios.html index d925fd59e94..ea36433c92c 100644 --- a/docs/0.74/actionsheetios.html +++ b/docs/0.74/actionsheetios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/activityindicator.html b/docs/0.74/activityindicator.html index 33c27703182..fded7181f05 100644 --- a/docs/0.74/activityindicator.html +++ b/docs/0.74/activityindicator.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/alert.html b/docs/0.74/alert.html index 09a7b8d2062..11c67d8b111 100644 --- a/docs/0.74/alert.html +++ b/docs/0.74/alert.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/alertios.html b/docs/0.74/alertios.html index a104f5cb89d..df6e9a7b5ac 100644 --- a/docs/0.74/alertios.html +++ b/docs/0.74/alertios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/animated.html b/docs/0.74/animated.html index 286f6c51c0d..558d46eaf56 100644 --- a/docs/0.74/animated.html +++ b/docs/0.74/animated.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/animatedvalue.html b/docs/0.74/animatedvalue.html index ad75e2d6c8c..2eac2fcedcb 100644 --- a/docs/0.74/animatedvalue.html +++ b/docs/0.74/animatedvalue.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/animatedvaluexy.html b/docs/0.74/animatedvaluexy.html index a34284def69..76ac657609a 100644 --- a/docs/0.74/animatedvaluexy.html +++ b/docs/0.74/animatedvaluexy.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/animations.html b/docs/0.74/animations.html index 81207a0c71e..3360fb585aa 100644 --- a/docs/0.74/animations.html +++ b/docs/0.74/animations.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/app-extensions.html b/docs/0.74/app-extensions.html index 3f9321ae706..a135ccbde6c 100644 --- a/docs/0.74/app-extensions.html +++ b/docs/0.74/app-extensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/appearance.html b/docs/0.74/appearance.html index 6ed57708771..5d0a0811ba5 100644 --- a/docs/0.74/appearance.html +++ b/docs/0.74/appearance.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/appregistry.html b/docs/0.74/appregistry.html index 248f727d236..8c6bea05095 100644 --- a/docs/0.74/appregistry.html +++ b/docs/0.74/appregistry.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/appstate.html b/docs/0.74/appstate.html index f6ae56d2aa8..afe7826a215 100644 --- a/docs/0.74/appstate.html +++ b/docs/0.74/appstate.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/architecture-glossary.html b/docs/0.74/architecture-glossary.html index f86db12457d..04db59042c9 100644 --- a/docs/0.74/architecture-glossary.html +++ b/docs/0.74/architecture-glossary.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/architecture-overview.html b/docs/0.74/architecture-overview.html index 416244b6c6a..9f2f8c62b14 100644 --- a/docs/0.74/architecture-overview.html +++ b/docs/0.74/architecture-overview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/asyncstorage.html b/docs/0.74/asyncstorage.html index 39bb503424f..e101db9e6b2 100644 --- a/docs/0.74/asyncstorage.html +++ b/docs/0.74/asyncstorage.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/backhandler.html b/docs/0.74/backhandler.html index 93ebc4766ab..ebfa08b0e45 100644 --- a/docs/0.74/backhandler.html +++ b/docs/0.74/backhandler.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/build-speed.html b/docs/0.74/build-speed.html index 7f54ad90a2b..a58fe059fa3 100644 --- a/docs/0.74/build-speed.html +++ b/docs/0.74/build-speed.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/building-for-tv.html b/docs/0.74/building-for-tv.html index fd97b8dcbf3..88fe9bee692 100644 --- a/docs/0.74/building-for-tv.html +++ b/docs/0.74/building-for-tv.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/button.html b/docs/0.74/button.html index 3974943e4cb..478360a4ccb 100644 Binary files a/docs/0.74/button.html and b/docs/0.74/button.html differ diff --git a/docs/0.74/checkbox.html b/docs/0.74/checkbox.html index 2bc880ad52f..388e4ba0f22 100644 --- a/docs/0.74/checkbox.html +++ b/docs/0.74/checkbox.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/clipboard.html b/docs/0.74/clipboard.html index 165bdf576e6..70ef917bdbe 100644 --- a/docs/0.74/clipboard.html +++ b/docs/0.74/clipboard.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/colors.html b/docs/0.74/colors.html index 513c0e55a1b..626aff9b9f7 100644 Binary files a/docs/0.74/colors.html and b/docs/0.74/colors.html differ diff --git a/docs/0.74/communication-android.html b/docs/0.74/communication-android.html index 0870ee5f13d..b1de19e43e2 100644 --- a/docs/0.74/communication-android.html +++ b/docs/0.74/communication-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/communication-ios.html b/docs/0.74/communication-ios.html index eb9e83cb3f9..c9b84d15414 100644 --- a/docs/0.74/communication-ios.html +++ b/docs/0.74/communication-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/components-and-apis.html b/docs/0.74/components-and-apis.html index 059370eb0e8..4292c1aa575 100644 --- a/docs/0.74/components-and-apis.html +++ b/docs/0.74/components-and-apis.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/custom-webview-android.html b/docs/0.74/custom-webview-android.html index 1346f6e3520..92403a7a254 100644 --- a/docs/0.74/custom-webview-android.html +++ b/docs/0.74/custom-webview-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/custom-webview-ios.html b/docs/0.74/custom-webview-ios.html index c588624f74e..3f4f877afa5 100644 --- a/docs/0.74/custom-webview-ios.html +++ b/docs/0.74/custom-webview-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/datepickerandroid.html b/docs/0.74/datepickerandroid.html index 8838296d3f9..bb5b805466c 100644 --- a/docs/0.74/datepickerandroid.html +++ b/docs/0.74/datepickerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/datepickerios.html b/docs/0.74/datepickerios.html index 710afd48ad3..b20a360a96b 100644 --- a/docs/0.74/datepickerios.html +++ b/docs/0.74/datepickerios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/debugging-release-builds.html b/docs/0.74/debugging-release-builds.html index 6c746f58a00..e73eb4e76dc 100644 --- a/docs/0.74/debugging-release-builds.html +++ b/docs/0.74/debugging-release-builds.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/debugging.html b/docs/0.74/debugging.html index 445ce10af52..7f5cb7d5d78 100644 --- a/docs/0.74/debugging.html +++ b/docs/0.74/debugging.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/devsettings.html b/docs/0.74/devsettings.html index e2e62a896e1..2532d224895 100644 --- a/docs/0.74/devsettings.html +++ b/docs/0.74/devsettings.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/dimensions.html b/docs/0.74/dimensions.html index 49039c8a61c..0fc8ce35f23 100644 --- a/docs/0.74/dimensions.html +++ b/docs/0.74/dimensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/direct-manipulation.html b/docs/0.74/direct-manipulation.html index 15ffe98a231..ab0399c86a9 100644 --- a/docs/0.74/direct-manipulation.html +++ b/docs/0.74/direct-manipulation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/drawerlayoutandroid.html b/docs/0.74/drawerlayoutandroid.html index c6fc4816ea2..d98b5ff48c5 100644 --- a/docs/0.74/drawerlayoutandroid.html +++ b/docs/0.74/drawerlayoutandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/dynamiccolorios.html b/docs/0.74/dynamiccolorios.html index 07d6a4b0ba6..ce50bfa9882 100644 --- a/docs/0.74/dynamiccolorios.html +++ b/docs/0.74/dynamiccolorios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/easing.html b/docs/0.74/easing.html index 32098f70b47..f00e2ef5203 100644 Binary files a/docs/0.74/easing.html and b/docs/0.74/easing.html differ diff --git a/docs/0.74/environment-setup.html b/docs/0.74/environment-setup.html index 0e067b49098..8ffa5c99b70 100644 --- a/docs/0.74/environment-setup.html +++ b/docs/0.74/environment-setup.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/fabric-renderer.html b/docs/0.74/fabric-renderer.html index 0507506b218..05896776e61 100644 --- a/docs/0.74/fabric-renderer.html +++ b/docs/0.74/fabric-renderer.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/fast-refresh.html b/docs/0.74/fast-refresh.html index 90f83bb14f8..804e214b654 100644 --- a/docs/0.74/fast-refresh.html +++ b/docs/0.74/fast-refresh.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/flatlist.html b/docs/0.74/flatlist.html index b9ee8b69dfc..b22618900f6 100644 --- a/docs/0.74/flatlist.html +++ b/docs/0.74/flatlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/flexbox.html b/docs/0.74/flexbox.html index 79c3c48f2e7..b7429e1b136 100644 --- a/docs/0.74/flexbox.html +++ b/docs/0.74/flexbox.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/gesture-responder-system.html b/docs/0.74/gesture-responder-system.html index cefb0c60a8a..e9e68410531 100644 --- a/docs/0.74/gesture-responder-system.html +++ b/docs/0.74/gesture-responder-system.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/getting-started.html b/docs/0.74/getting-started.html index 631c1dc39b7..9adc801de9a 100644 --- a/docs/0.74/getting-started.html +++ b/docs/0.74/getting-started.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/handling-text-input.html b/docs/0.74/handling-text-input.html index 9aef7674d9b..3ee64b66192 100644 --- a/docs/0.74/handling-text-input.html +++ b/docs/0.74/handling-text-input.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/handling-touches.html b/docs/0.74/handling-touches.html index bfb1c291d16..21756799c4b 100644 --- a/docs/0.74/handling-touches.html +++ b/docs/0.74/handling-touches.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/headless-js-android.html b/docs/0.74/headless-js-android.html index 1548c25ac53..7d5b1b783b0 100644 --- a/docs/0.74/headless-js-android.html +++ b/docs/0.74/headless-js-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/height-and-width.html b/docs/0.74/height-and-width.html index c77c75272ae..12d6a00271b 100644 --- a/docs/0.74/height-and-width.html +++ b/docs/0.74/height-and-width.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/hermes.html b/docs/0.74/hermes.html index b8b8355e775..a5417f84206 100644 Binary files a/docs/0.74/hermes.html and b/docs/0.74/hermes.html differ diff --git a/docs/0.74/image-style-props.html b/docs/0.74/image-style-props.html index 25959cc72ed..ff0d36c1d5b 100644 --- a/docs/0.74/image-style-props.html +++ b/docs/0.74/image-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/image.html b/docs/0.74/image.html index e39bb7464ab..87c2115e937 100644 --- a/docs/0.74/image.html +++ b/docs/0.74/image.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/imagebackground.html b/docs/0.74/imagebackground.html index eb955431c09..3f9b82dbac5 100644 --- a/docs/0.74/imagebackground.html +++ b/docs/0.74/imagebackground.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/imagepickerios.html b/docs/0.74/imagepickerios.html index ea3139562a4..a81225ca5a6 100644 --- a/docs/0.74/imagepickerios.html +++ b/docs/0.74/imagepickerios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/images.html b/docs/0.74/images.html index 2374784704a..cdf3422db07 100644 Binary files a/docs/0.74/images.html and b/docs/0.74/images.html differ diff --git a/docs/0.74/improvingux.html b/docs/0.74/improvingux.html index 3915f46cec9..1878481a464 100644 --- a/docs/0.74/improvingux.html +++ b/docs/0.74/improvingux.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/inputaccessoryview.html b/docs/0.74/inputaccessoryview.html index 62ad2eede46..c1532ca57bd 100644 --- a/docs/0.74/inputaccessoryview.html +++ b/docs/0.74/inputaccessoryview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/integration-with-android-fragment.html b/docs/0.74/integration-with-android-fragment.html index d34c8e79fd6..460a239adaf 100644 Binary files a/docs/0.74/integration-with-android-fragment.html and b/docs/0.74/integration-with-android-fragment.html differ diff --git a/docs/0.74/integration-with-existing-apps.html b/docs/0.74/integration-with-existing-apps.html index 9acdd8b7ecf..9da9da5dc9d 100644 --- a/docs/0.74/integration-with-existing-apps.html +++ b/docs/0.74/integration-with-existing-apps.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/interactionmanager.html b/docs/0.74/interactionmanager.html index 956698cff2f..d2ec65ca015 100644 --- a/docs/0.74/interactionmanager.html +++ b/docs/0.74/interactionmanager.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/intro-react-native-components.html b/docs/0.74/intro-react-native-components.html index 38e79d1e007..2570b3b6c52 100644 --- a/docs/0.74/intro-react-native-components.html +++ b/docs/0.74/intro-react-native-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/intro-react.html b/docs/0.74/intro-react.html index d0b84813caa..32e74392569 100644 --- a/docs/0.74/intro-react.html +++ b/docs/0.74/intro-react.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/javascript-environment.html b/docs/0.74/javascript-environment.html index 1aaf51e1b05..b7e6ab4e9ad 100644 --- a/docs/0.74/javascript-environment.html +++ b/docs/0.74/javascript-environment.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/keyboard.html b/docs/0.74/keyboard.html index 28096583849..a6b518afb06 100644 --- a/docs/0.74/keyboard.html +++ b/docs/0.74/keyboard.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/keyboardavoidingview.html b/docs/0.74/keyboardavoidingview.html index f2f4df88afe..3f651ffe4da 100644 --- a/docs/0.74/keyboardavoidingview.html +++ b/docs/0.74/keyboardavoidingview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/layout-props.html b/docs/0.74/layout-props.html index adf51572130..d59dbe45ff5 100644 --- a/docs/0.74/layout-props.html +++ b/docs/0.74/layout-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/layoutanimation.html b/docs/0.74/layoutanimation.html index ac065dcc680..aee94c87df4 100644 --- a/docs/0.74/layoutanimation.html +++ b/docs/0.74/layoutanimation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/layoutevent.html b/docs/0.74/layoutevent.html index d706ed5a586..891f11b1d89 100644 --- a/docs/0.74/layoutevent.html +++ b/docs/0.74/layoutevent.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/libraries.html b/docs/0.74/libraries.html index 6ab2d5019cd..54d3af3889d 100644 --- a/docs/0.74/libraries.html +++ b/docs/0.74/libraries.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/linking-libraries-ios.html b/docs/0.74/linking-libraries-ios.html index c157aef56e7..3bcc25f1ab9 100644 --- a/docs/0.74/linking-libraries-ios.html +++ b/docs/0.74/linking-libraries-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/linking.html b/docs/0.74/linking.html index 035b529298c..7ea09f06cfd 100644 --- a/docs/0.74/linking.html +++ b/docs/0.74/linking.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/metro.html b/docs/0.74/metro.html index 7464157e308..7e99c02c567 100644 --- a/docs/0.74/metro.html +++ b/docs/0.74/metro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/modal.html b/docs/0.74/modal.html index 5f88660e74f..7db27f3871f 100644 --- a/docs/0.74/modal.html +++ b/docs/0.74/modal.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/more-resources.html b/docs/0.74/more-resources.html index aa00f756cb6..25725c0d92f 100644 --- a/docs/0.74/more-resources.html +++ b/docs/0.74/more-resources.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/native-components-android.html b/docs/0.74/native-components-android.html index 8a1907679c0..07bb452c230 100644 --- a/docs/0.74/native-components-android.html +++ b/docs/0.74/native-components-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/native-components-ios.html b/docs/0.74/native-components-ios.html index fb08a3ab96d..30f265d2076 100644 --- a/docs/0.74/native-components-ios.html +++ b/docs/0.74/native-components-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/native-debugging.html b/docs/0.74/native-debugging.html index 721f615851a..1e5dff53286 100644 --- a/docs/0.74/native-debugging.html +++ b/docs/0.74/native-debugging.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/native-modules-android.html b/docs/0.74/native-modules-android.html index 711cd5be823..79a51988f3e 100644 --- a/docs/0.74/native-modules-android.html +++ b/docs/0.74/native-modules-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/native-modules-intro.html b/docs/0.74/native-modules-intro.html index aebbf78932d..e5b890dc927 100644 --- a/docs/0.74/native-modules-intro.html +++ b/docs/0.74/native-modules-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/native-modules-ios.html b/docs/0.74/native-modules-ios.html index a00114c0dff..a23e4028050 100644 --- a/docs/0.74/native-modules-ios.html +++ b/docs/0.74/native-modules-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/native-modules-setup.html b/docs/0.74/native-modules-setup.html index f69e781c48c..8521240e4f6 100644 --- a/docs/0.74/native-modules-setup.html +++ b/docs/0.74/native-modules-setup.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/navigation.html b/docs/0.74/navigation.html index 08bbb7b4d3a..1c211a08045 100644 --- a/docs/0.74/navigation.html +++ b/docs/0.74/navigation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/netinfo.html b/docs/0.74/netinfo.html index 21cb8660914..c0d8a63888d 100644 --- a/docs/0.74/netinfo.html +++ b/docs/0.74/netinfo.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/network.html b/docs/0.74/network.html index 3319f2b2021..edd103e8e3d 100644 --- a/docs/0.74/network.html +++ b/docs/0.74/network.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/new-architecture-app-intro.html b/docs/0.74/new-architecture-app-intro.html index 5abe68efd2e..013e93c608e 100644 --- a/docs/0.74/new-architecture-app-intro.html +++ b/docs/0.74/new-architecture-app-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/new-architecture-app-modules-ios.html b/docs/0.74/new-architecture-app-modules-ios.html index f4bdbd2699e..cff84007b1e 100644 --- a/docs/0.74/new-architecture-app-modules-ios.html +++ b/docs/0.74/new-architecture-app-modules-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/new-architecture-app-renderer-android.html b/docs/0.74/new-architecture-app-renderer-android.html index fcb464d444f..91bfe093a67 100644 --- a/docs/0.74/new-architecture-app-renderer-android.html +++ b/docs/0.74/new-architecture-app-renderer-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/new-architecture-app-renderer-ios.html b/docs/0.74/new-architecture-app-renderer-ios.html index e64e3d6bcd8..0bb2f38be70 100644 Binary files a/docs/0.74/new-architecture-app-renderer-ios.html and b/docs/0.74/new-architecture-app-renderer-ios.html differ diff --git a/docs/0.74/new-architecture-appendix.html b/docs/0.74/new-architecture-appendix.html index a5e9c4df6dc..c9ff6aa0453 100644 --- a/docs/0.74/new-architecture-appendix.html +++ b/docs/0.74/new-architecture-appendix.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/new-architecture-intro.html b/docs/0.74/new-architecture-intro.html index 8962a0ca798..f53ff8ee52e 100644 --- a/docs/0.74/new-architecture-intro.html +++ b/docs/0.74/new-architecture-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/new-architecture-library-android.html b/docs/0.74/new-architecture-library-android.html index fde1c64ff60..a5ade952e6d 100644 --- a/docs/0.74/new-architecture-library-android.html +++ b/docs/0.74/new-architecture-library-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/new-architecture-library-intro.html b/docs/0.74/new-architecture-library-intro.html index 40da6754aa6..6a94e27f5fb 100644 --- a/docs/0.74/new-architecture-library-intro.html +++ b/docs/0.74/new-architecture-library-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/new-architecture-library-ios.html b/docs/0.74/new-architecture-library-ios.html index bdfd9977bc1..8429d056116 100644 --- a/docs/0.74/new-architecture-library-ios.html +++ b/docs/0.74/new-architecture-library-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/new-architecture-troubleshooting.html b/docs/0.74/new-architecture-troubleshooting.html index 5b0c39c14ae..b1793db182f 100644 --- a/docs/0.74/new-architecture-troubleshooting.html +++ b/docs/0.74/new-architecture-troubleshooting.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/new-architecture-turbo-modules.html b/docs/0.74/new-architecture-turbo-modules.html index 0b940b370d1..0db85716e5f 100644 --- a/docs/0.74/new-architecture-turbo-modules.html +++ b/docs/0.74/new-architecture-turbo-modules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/optimizing-flatlist-configuration.html b/docs/0.74/optimizing-flatlist-configuration.html index f9eb382a82e..727a50e0746 100644 Binary files a/docs/0.74/optimizing-flatlist-configuration.html and b/docs/0.74/optimizing-flatlist-configuration.html differ diff --git a/docs/0.74/optimizing-javascript-loading.html b/docs/0.74/optimizing-javascript-loading.html index f7a82f03bc7..f939479f5a0 100644 --- a/docs/0.74/optimizing-javascript-loading.html +++ b/docs/0.74/optimizing-javascript-loading.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/other-debugging-methods.html b/docs/0.74/other-debugging-methods.html index defb8583bbc..ef3554a1cba 100644 --- a/docs/0.74/other-debugging-methods.html +++ b/docs/0.74/other-debugging-methods.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/out-of-tree-platforms.html b/docs/0.74/out-of-tree-platforms.html index 231bcacbfc5..e5b7446338d 100644 --- a/docs/0.74/out-of-tree-platforms.html +++ b/docs/0.74/out-of-tree-platforms.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/panresponder.html b/docs/0.74/panresponder.html index b61a3d154a1..46911a4eb88 100644 --- a/docs/0.74/panresponder.html +++ b/docs/0.74/panresponder.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/performance.html b/docs/0.74/performance.html index b99509ec071..d5b308af2a6 100644 --- a/docs/0.74/performance.html +++ b/docs/0.74/performance.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/permissionsandroid.html b/docs/0.74/permissionsandroid.html index 93b845c578e..19b2473f12d 100644 --- a/docs/0.74/permissionsandroid.html +++ b/docs/0.74/permissionsandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/pixelratio.html b/docs/0.74/pixelratio.html index 9aeec95140a..ee5b4274e6e 100644 --- a/docs/0.74/pixelratio.html +++ b/docs/0.74/pixelratio.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/platform-specific-code.html b/docs/0.74/platform-specific-code.html index 17868a36ffe..3c3fbc00dce 100644 --- a/docs/0.74/platform-specific-code.html +++ b/docs/0.74/platform-specific-code.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/platform.html b/docs/0.74/platform.html index 20d658785a4..b33404ffa42 100644 --- a/docs/0.74/platform.html +++ b/docs/0.74/platform.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/platformcolor.html b/docs/0.74/platformcolor.html index 95eef337851..3f42ef8ad9e 100644 --- a/docs/0.74/platformcolor.html +++ b/docs/0.74/platformcolor.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/pressable.html b/docs/0.74/pressable.html index ea5e89a7b36..4f7b5d2dad7 100644 --- a/docs/0.74/pressable.html +++ b/docs/0.74/pressable.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/pressevent.html b/docs/0.74/pressevent.html index 840b429407b..911a3416898 100644 --- a/docs/0.74/pressevent.html +++ b/docs/0.74/pressevent.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/profile-hermes.html b/docs/0.74/profile-hermes.html index a4079b3453a..f4f3770ef07 100644 --- a/docs/0.74/profile-hermes.html +++ b/docs/0.74/profile-hermes.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/profiling.html b/docs/0.74/profiling.html index 71ad5b9761f..8251be96179 100644 --- a/docs/0.74/profiling.html +++ b/docs/0.74/profiling.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/progressbarandroid.html b/docs/0.74/progressbarandroid.html index feb4153a332..fa5cf08a663 100644 --- a/docs/0.74/progressbarandroid.html +++ b/docs/0.74/progressbarandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/progressviewios.html b/docs/0.74/progressviewios.html index 60ddc0e1172..c2f388c839f 100644 --- a/docs/0.74/progressviewios.html +++ b/docs/0.74/progressviewios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/props.html b/docs/0.74/props.html index 328e61e6897..9535daa55c9 100644 --- a/docs/0.74/props.html +++ b/docs/0.74/props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/publishing-to-app-store.html b/docs/0.74/publishing-to-app-store.html index 566f9790ba7..a01fc074a04 100644 --- a/docs/0.74/publishing-to-app-store.html +++ b/docs/0.74/publishing-to-app-store.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/pushnotificationios.html b/docs/0.74/pushnotificationios.html index 7352347daaa..842ad39d6b4 100644 --- a/docs/0.74/pushnotificationios.html +++ b/docs/0.74/pushnotificationios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/ram-bundles-inline-requires.html b/docs/0.74/ram-bundles-inline-requires.html index ac8ee11f848..be0e498afa8 100644 --- a/docs/0.74/ram-bundles-inline-requires.html +++ b/docs/0.74/ram-bundles-inline-requires.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/react-18-and-react-native.html b/docs/0.74/react-18-and-react-native.html index c80dda79c6d..134b7354068 100644 --- a/docs/0.74/react-18-and-react-native.html +++ b/docs/0.74/react-18-and-react-native.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/react-devtools.html b/docs/0.74/react-devtools.html index 7215f810c4d..082a353a665 100644 --- a/docs/0.74/react-devtools.html +++ b/docs/0.74/react-devtools.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/react-native-gradle-plugin.html b/docs/0.74/react-native-gradle-plugin.html index 9f831e322ba..4feb6cc2552 100644 --- a/docs/0.74/react-native-gradle-plugin.html +++ b/docs/0.74/react-native-gradle-plugin.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/react-node.html b/docs/0.74/react-node.html index 44145387c81..118b552c7ee 100644 --- a/docs/0.74/react-node.html +++ b/docs/0.74/react-node.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/rect.html b/docs/0.74/rect.html index 13dd846868f..3e345d3e455 100644 --- a/docs/0.74/rect.html +++ b/docs/0.74/rect.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/rectorsize.html b/docs/0.74/rectorsize.html index 7c353f10e07..8d068055557 100644 --- a/docs/0.74/rectorsize.html +++ b/docs/0.74/rectorsize.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/refreshcontrol.html b/docs/0.74/refreshcontrol.html index d0eaccee427..fe4c1d2c6fb 100644 --- a/docs/0.74/refreshcontrol.html +++ b/docs/0.74/refreshcontrol.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/removing-default-permissions.html b/docs/0.74/removing-default-permissions.html index 1d48766822f..17bd2946a91 100644 --- a/docs/0.74/removing-default-permissions.html +++ b/docs/0.74/removing-default-permissions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/render-pipeline.html b/docs/0.74/render-pipeline.html index 5f218884ac9..7eb53d10f09 100644 --- a/docs/0.74/render-pipeline.html +++ b/docs/0.74/render-pipeline.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/roottag.html b/docs/0.74/roottag.html index 088f2b8d2d2..49699049ba2 100644 --- a/docs/0.74/roottag.html +++ b/docs/0.74/roottag.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/running-on-device.html b/docs/0.74/running-on-device.html index 86a4b067be5..b354277a6b1 100644 --- a/docs/0.74/running-on-device.html +++ b/docs/0.74/running-on-device.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/running-on-simulator-ios.html b/docs/0.74/running-on-simulator-ios.html index 100a2505f66..7cfdd74ff40 100644 --- a/docs/0.74/running-on-simulator-ios.html +++ b/docs/0.74/running-on-simulator-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/safeareaview.html b/docs/0.74/safeareaview.html index fbc7dfb96b2..9a27638f767 100644 --- a/docs/0.74/safeareaview.html +++ b/docs/0.74/safeareaview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/sample-application-movies.html b/docs/0.74/sample-application-movies.html index 0cdaedeb595..946c3151d72 100644 --- a/docs/0.74/sample-application-movies.html +++ b/docs/0.74/sample-application-movies.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/scrollview.html b/docs/0.74/scrollview.html index 47275856ee5..33ef82fb58c 100644 --- a/docs/0.74/scrollview.html +++ b/docs/0.74/scrollview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/sectionlist.html b/docs/0.74/sectionlist.html index ed3ede1e5b8..6c3fe7adfe4 100644 --- a/docs/0.74/sectionlist.html +++ b/docs/0.74/sectionlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/security.html b/docs/0.74/security.html index d4fdb77e14a..55739521941 100644 --- a/docs/0.74/security.html +++ b/docs/0.74/security.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/segmentedcontrolios.html b/docs/0.74/segmentedcontrolios.html index 96193b77ec3..0673ea8f242 100644 --- a/docs/0.74/segmentedcontrolios.html +++ b/docs/0.74/segmentedcontrolios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/settings.html b/docs/0.74/settings.html index 14f7a6cdafb..0684e4fe5f4 100644 --- a/docs/0.74/settings.html +++ b/docs/0.74/settings.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/shadow-props.html b/docs/0.74/shadow-props.html index 19e9a067b1d..9f610d1a23c 100644 --- a/docs/0.74/shadow-props.html +++ b/docs/0.74/shadow-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/share.html b/docs/0.74/share.html index fe9d4bd73fa..f2cce142c6e 100644 --- a/docs/0.74/share.html +++ b/docs/0.74/share.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/signed-apk-android.html b/docs/0.74/signed-apk-android.html index 31391dacdfe..65e257c9d03 100644 --- a/docs/0.74/signed-apk-android.html +++ b/docs/0.74/signed-apk-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/slider.html b/docs/0.74/slider.html index f3baa836f00..4f55f5f1e62 100644 Binary files a/docs/0.74/slider.html and b/docs/0.74/slider.html differ diff --git a/docs/0.74/speeding-ci-builds.html b/docs/0.74/speeding-ci-builds.html index a8dc95cbf9d..26068ee0311 100644 --- a/docs/0.74/speeding-ci-builds.html +++ b/docs/0.74/speeding-ci-builds.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/state.html b/docs/0.74/state.html index 15b69413a8b..e25164636b0 100644 --- a/docs/0.74/state.html +++ b/docs/0.74/state.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/statusbar.html b/docs/0.74/statusbar.html index 60d05bd37c0..384316a3463 100644 --- a/docs/0.74/statusbar.html +++ b/docs/0.74/statusbar.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/style.html b/docs/0.74/style.html index 4f4dc0d6430..3fead951de9 100644 --- a/docs/0.74/style.html +++ b/docs/0.74/style.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/stylesheet.html b/docs/0.74/stylesheet.html index 220eec1d72d..41aa477fd52 100644 --- a/docs/0.74/stylesheet.html +++ b/docs/0.74/stylesheet.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/switch.html b/docs/0.74/switch.html index 4c7e3956438..65457b4dfe2 100644 Binary files a/docs/0.74/switch.html and b/docs/0.74/switch.html differ diff --git a/docs/0.74/symbolication.html b/docs/0.74/symbolication.html index e35e5bdb0f5..fadd8ee538d 100644 --- a/docs/0.74/symbolication.html +++ b/docs/0.74/symbolication.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/systrace.html b/docs/0.74/systrace.html index a9efa794c8d..8ec5d785dd0 100644 --- a/docs/0.74/systrace.html +++ b/docs/0.74/systrace.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/testing-overview.html b/docs/0.74/testing-overview.html index 073152be96e..a52139f57df 100644 --- a/docs/0.74/testing-overview.html +++ b/docs/0.74/testing-overview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/text-style-props.html b/docs/0.74/text-style-props.html index c2810a38f0d..ec25ffd821a 100644 --- a/docs/0.74/text-style-props.html +++ b/docs/0.74/text-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/text.html b/docs/0.74/text.html index 1efb9659af1..25cfd65dccb 100644 --- a/docs/0.74/text.html +++ b/docs/0.74/text.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/textinput.html b/docs/0.74/textinput.html index 5f39c3c6a16..619aef16a4d 100644 --- a/docs/0.74/textinput.html +++ b/docs/0.74/textinput.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/the-new-architecture/backward-compatibility-fabric-components.html b/docs/0.74/the-new-architecture/backward-compatibility-fabric-components.html index 95c9eca34a3..e2ccebef861 100644 --- a/docs/0.74/the-new-architecture/backward-compatibility-fabric-components.html +++ b/docs/0.74/the-new-architecture/backward-compatibility-fabric-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/the-new-architecture/backward-compatibility-turbomodules.html b/docs/0.74/the-new-architecture/backward-compatibility-turbomodules.html index 1ba01db4436..1f19d1e80e4 100644 --- a/docs/0.74/the-new-architecture/backward-compatibility-turbomodules.html +++ b/docs/0.74/the-new-architecture/backward-compatibility-turbomodules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/the-new-architecture/backward-compatibility.html b/docs/0.74/the-new-architecture/backward-compatibility.html index eecf9523f21..998c0072511 100644 --- a/docs/0.74/the-new-architecture/backward-compatibility.html +++ b/docs/0.74/the-new-architecture/backward-compatibility.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/the-new-architecture/cxx-custom-types.html b/docs/0.74/the-new-architecture/cxx-custom-types.html index 6737b4e667b..cc6cd086cc3 100644 --- a/docs/0.74/the-new-architecture/cxx-custom-types.html +++ b/docs/0.74/the-new-architecture/cxx-custom-types.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/the-new-architecture/cxx-cxxturbomodules.html b/docs/0.74/the-new-architecture/cxx-cxxturbomodules.html index c88af044fe5..7022685a7dd 100644 --- a/docs/0.74/the-new-architecture/cxx-cxxturbomodules.html +++ b/docs/0.74/the-new-architecture/cxx-cxxturbomodules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/the-new-architecture/landing-page.html b/docs/0.74/the-new-architecture/landing-page.html index 3e25f22e031..11e5462c2f6 100644 Binary files a/docs/0.74/the-new-architecture/landing-page.html and b/docs/0.74/the-new-architecture/landing-page.html differ diff --git a/docs/0.74/the-new-architecture/pillars-codegen.html b/docs/0.74/the-new-architecture/pillars-codegen.html index a6cfb1edda0..00be7c8a40d 100644 --- a/docs/0.74/the-new-architecture/pillars-codegen.html +++ b/docs/0.74/the-new-architecture/pillars-codegen.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/the-new-architecture/pillars-fabric-components.html b/docs/0.74/the-new-architecture/pillars-fabric-components.html index 3e496cb1be3..939fbb3e51b 100644 --- a/docs/0.74/the-new-architecture/pillars-fabric-components.html +++ b/docs/0.74/the-new-architecture/pillars-fabric-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/the-new-architecture/pillars-turbomodules.html b/docs/0.74/the-new-architecture/pillars-turbomodules.html index 3b8fa5a507c..fe121a81903 100644 --- a/docs/0.74/the-new-architecture/pillars-turbomodules.html +++ b/docs/0.74/the-new-architecture/pillars-turbomodules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/the-new-architecture/pillars.html b/docs/0.74/the-new-architecture/pillars.html index de1cd61e3be..18f0c1d56c6 100644 --- a/docs/0.74/the-new-architecture/pillars.html +++ b/docs/0.74/the-new-architecture/pillars.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/the-new-architecture/use-app-template.html b/docs/0.74/the-new-architecture/use-app-template.html index 1e451333961..41378119cf3 100644 --- a/docs/0.74/the-new-architecture/use-app-template.html +++ b/docs/0.74/the-new-architecture/use-app-template.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/the-new-architecture/why.html b/docs/0.74/the-new-architecture/why.html index d423b04d865..cbe26600fd8 100644 --- a/docs/0.74/the-new-architecture/why.html +++ b/docs/0.74/the-new-architecture/why.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/threading-model.html b/docs/0.74/threading-model.html index 557c600b4d9..eb7a47493be 100644 --- a/docs/0.74/threading-model.html +++ b/docs/0.74/threading-model.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/timepickerandroid.html b/docs/0.74/timepickerandroid.html index 6adc5aea595..18d35756bd4 100644 --- a/docs/0.74/timepickerandroid.html +++ b/docs/0.74/timepickerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/timers.html b/docs/0.74/timers.html index 7cc50d226dd..a0d6ce77762 100644 Binary files a/docs/0.74/timers.html and b/docs/0.74/timers.html differ diff --git a/docs/0.74/toastandroid.html b/docs/0.74/toastandroid.html index 25539f39166..4517e29bb5e 100644 --- a/docs/0.74/toastandroid.html +++ b/docs/0.74/toastandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/touchablehighlight.html b/docs/0.74/touchablehighlight.html index f8d030a980c..dbae1991e95 100644 --- a/docs/0.74/touchablehighlight.html +++ b/docs/0.74/touchablehighlight.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/touchablenativefeedback.html b/docs/0.74/touchablenativefeedback.html index 5a2b9eda91d..9ad3953c266 100644 --- a/docs/0.74/touchablenativefeedback.html +++ b/docs/0.74/touchablenativefeedback.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/touchableopacity.html b/docs/0.74/touchableopacity.html index 904f36dd02f..c4a1576fb22 100644 --- a/docs/0.74/touchableopacity.html +++ b/docs/0.74/touchableopacity.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/touchablewithoutfeedback.html b/docs/0.74/touchablewithoutfeedback.html index 6fb4d1647be..e0ef66fcd01 100644 --- a/docs/0.74/touchablewithoutfeedback.html +++ b/docs/0.74/touchablewithoutfeedback.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/transforms.html b/docs/0.74/transforms.html index 64bec673243..230642e6777 100644 --- a/docs/0.74/transforms.html +++ b/docs/0.74/transforms.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/troubleshooting.html b/docs/0.74/troubleshooting.html index 10d26f21da1..7af34251991 100644 --- a/docs/0.74/troubleshooting.html +++ b/docs/0.74/troubleshooting.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/tutorial.html b/docs/0.74/tutorial.html index bc889f18fec..26bb6bd70d8 100644 --- a/docs/0.74/tutorial.html +++ b/docs/0.74/tutorial.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/typescript.html b/docs/0.74/typescript.html index d1d2537b064..60d36cb4054 100644 --- a/docs/0.74/typescript.html +++ b/docs/0.74/typescript.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/upgrading.html b/docs/0.74/upgrading.html index 3b2db07c9a4..421c465e9e7 100644 --- a/docs/0.74/upgrading.html +++ b/docs/0.74/upgrading.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/usecolorscheme.html b/docs/0.74/usecolorscheme.html index 931f77f0e15..c8f04818f5e 100644 --- a/docs/0.74/usecolorscheme.html +++ b/docs/0.74/usecolorscheme.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/usewindowdimensions.html b/docs/0.74/usewindowdimensions.html index 03f3f2c30b3..5fd470c4f65 100644 --- a/docs/0.74/usewindowdimensions.html +++ b/docs/0.74/usewindowdimensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/using-a-listview.html b/docs/0.74/using-a-listview.html index 67e06a75f9f..5002176a35b 100644 --- a/docs/0.74/using-a-listview.html +++ b/docs/0.74/using-a-listview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/using-a-scrollview.html b/docs/0.74/using-a-scrollview.html index d37fa3ef065..6b896c3c058 100644 --- a/docs/0.74/using-a-scrollview.html +++ b/docs/0.74/using-a-scrollview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/vibration.html b/docs/0.74/vibration.html index 4eaea25ea51..be7460bb5ae 100644 --- a/docs/0.74/vibration.html +++ b/docs/0.74/vibration.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/view-flattening.html b/docs/0.74/view-flattening.html index 874ae900730..6a8e692bcd5 100644 --- a/docs/0.74/view-flattening.html +++ b/docs/0.74/view-flattening.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/view-style-props.html b/docs/0.74/view-style-props.html index ffcd1b6e253..f8e3772037c 100644 --- a/docs/0.74/view-style-props.html +++ b/docs/0.74/view-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/view.html b/docs/0.74/view.html index cd7bcbd3c47..c7000a82856 100644 --- a/docs/0.74/view.html +++ b/docs/0.74/view.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/viewpagerandroid.html b/docs/0.74/viewpagerandroid.html index 63e2cd8f8fc..2667ed22166 100644 --- a/docs/0.74/viewpagerandroid.html +++ b/docs/0.74/viewpagerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/viewtoken.html b/docs/0.74/viewtoken.html index a36bab7c40c..a25750f81ae 100644 --- a/docs/0.74/viewtoken.html +++ b/docs/0.74/viewtoken.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/virtualizedlist.html b/docs/0.74/virtualizedlist.html index 4189f8536fd..2b60d5b678e 100644 --- a/docs/0.74/virtualizedlist.html +++ b/docs/0.74/virtualizedlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.74/xplat-implementation.html b/docs/0.74/xplat-implementation.html index 67e746a5816..68b1c92f28b 100644 --- a/docs/0.74/xplat-implementation.html +++ b/docs/0.74/xplat-implementation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/accessibility.html b/docs/0.75/accessibility.html index 9f3488af6ca..b80139af8f6 100644 --- a/docs/0.75/accessibility.html +++ b/docs/0.75/accessibility.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/accessibilityinfo.html b/docs/0.75/accessibilityinfo.html index 988d15d266f..4cf559ccca3 100644 --- a/docs/0.75/accessibilityinfo.html +++ b/docs/0.75/accessibilityinfo.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/actionsheetios.html b/docs/0.75/actionsheetios.html index 6e017d2389d..d7e48e9c20a 100644 --- a/docs/0.75/actionsheetios.html +++ b/docs/0.75/actionsheetios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/activityindicator.html b/docs/0.75/activityindicator.html index 034dacd27d9..614a27f03a4 100644 --- a/docs/0.75/activityindicator.html +++ b/docs/0.75/activityindicator.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/alert.html b/docs/0.75/alert.html index ab8f9d67a95..35211b919e3 100644 --- a/docs/0.75/alert.html +++ b/docs/0.75/alert.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/alertios.html b/docs/0.75/alertios.html index e561fcefbd4..e0d1c3a8c22 100644 --- a/docs/0.75/alertios.html +++ b/docs/0.75/alertios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/animated.html b/docs/0.75/animated.html index f1161f9bd62..c6926b9a4b2 100644 --- a/docs/0.75/animated.html +++ b/docs/0.75/animated.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/animatedvalue.html b/docs/0.75/animatedvalue.html index ca575321d8e..900c164e305 100644 --- a/docs/0.75/animatedvalue.html +++ b/docs/0.75/animatedvalue.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/animatedvaluexy.html b/docs/0.75/animatedvaluexy.html index eb9bdc244b2..04ad490c327 100644 --- a/docs/0.75/animatedvaluexy.html +++ b/docs/0.75/animatedvaluexy.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/animations.html b/docs/0.75/animations.html index 288d114058b..ab1c0444744 100644 --- a/docs/0.75/animations.html +++ b/docs/0.75/animations.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/app-extensions.html b/docs/0.75/app-extensions.html index b6b83c9a9fe..8ef59a9ed53 100644 --- a/docs/0.75/app-extensions.html +++ b/docs/0.75/app-extensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/appearance.html b/docs/0.75/appearance.html index 79fe3307c9e..2a8dcb3af7b 100644 --- a/docs/0.75/appearance.html +++ b/docs/0.75/appearance.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/appregistry.html b/docs/0.75/appregistry.html index 6705ccdcaee..9e474ecc04a 100644 --- a/docs/0.75/appregistry.html +++ b/docs/0.75/appregistry.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/appstate.html b/docs/0.75/appstate.html index b4633aebd74..f0603675f61 100644 --- a/docs/0.75/appstate.html +++ b/docs/0.75/appstate.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/architecture-glossary.html b/docs/0.75/architecture-glossary.html index d8dbe581168..fb2c058ea0c 100644 --- a/docs/0.75/architecture-glossary.html +++ b/docs/0.75/architecture-glossary.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/architecture-overview.html b/docs/0.75/architecture-overview.html index 696e227130c..735bb7b6b15 100644 --- a/docs/0.75/architecture-overview.html +++ b/docs/0.75/architecture-overview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/asyncstorage.html b/docs/0.75/asyncstorage.html index a4c1ba48a8e..5361641bc7f 100644 --- a/docs/0.75/asyncstorage.html +++ b/docs/0.75/asyncstorage.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/backhandler.html b/docs/0.75/backhandler.html index bccaca719ba..31224e69dba 100644 --- a/docs/0.75/backhandler.html +++ b/docs/0.75/backhandler.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/build-speed.html b/docs/0.75/build-speed.html index 8bf2d9d873a..8f2232eb3d3 100644 --- a/docs/0.75/build-speed.html +++ b/docs/0.75/build-speed.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/building-for-tv.html b/docs/0.75/building-for-tv.html index cf2d8520b0f..0b14907285c 100644 --- a/docs/0.75/building-for-tv.html +++ b/docs/0.75/building-for-tv.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/button.html b/docs/0.75/button.html index 134a3088002..ea5fd983139 100644 Binary files a/docs/0.75/button.html and b/docs/0.75/button.html differ diff --git a/docs/0.75/checkbox.html b/docs/0.75/checkbox.html index eb9f09ac6f4..bf73ad4e7be 100644 --- a/docs/0.75/checkbox.html +++ b/docs/0.75/checkbox.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/clipboard.html b/docs/0.75/clipboard.html index 19fb33f94c4..966ce886a7e 100644 --- a/docs/0.75/clipboard.html +++ b/docs/0.75/clipboard.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/colors.html b/docs/0.75/colors.html index f86e62acc33..e6aedb80dba 100644 Binary files a/docs/0.75/colors.html and b/docs/0.75/colors.html differ diff --git a/docs/0.75/communication-android.html b/docs/0.75/communication-android.html index dd451b35820..692511f0b84 100644 --- a/docs/0.75/communication-android.html +++ b/docs/0.75/communication-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/communication-ios.html b/docs/0.75/communication-ios.html index 0cd266af4f5..07a0b06b6cb 100644 --- a/docs/0.75/communication-ios.html +++ b/docs/0.75/communication-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/components-and-apis.html b/docs/0.75/components-and-apis.html index 3b9ebcde6a5..c2ff395a518 100644 --- a/docs/0.75/components-and-apis.html +++ b/docs/0.75/components-and-apis.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/custom-webview-android.html b/docs/0.75/custom-webview-android.html index 10c9086c16d..399e833256e 100644 --- a/docs/0.75/custom-webview-android.html +++ b/docs/0.75/custom-webview-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/custom-webview-ios.html b/docs/0.75/custom-webview-ios.html index 5e309dff2fa..cc13590fe42 100644 --- a/docs/0.75/custom-webview-ios.html +++ b/docs/0.75/custom-webview-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/datepickerandroid.html b/docs/0.75/datepickerandroid.html index 0d821838703..bfafeedcb3a 100644 --- a/docs/0.75/datepickerandroid.html +++ b/docs/0.75/datepickerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/datepickerios.html b/docs/0.75/datepickerios.html index 1c5b7cdef11..d74c3649a0b 100644 --- a/docs/0.75/datepickerios.html +++ b/docs/0.75/datepickerios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/debugging-release-builds.html b/docs/0.75/debugging-release-builds.html index 73092b67590..dd8309e556c 100644 --- a/docs/0.75/debugging-release-builds.html +++ b/docs/0.75/debugging-release-builds.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/debugging.html b/docs/0.75/debugging.html index e51e3570505..6aeba9b9d25 100644 --- a/docs/0.75/debugging.html +++ b/docs/0.75/debugging.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/devsettings.html b/docs/0.75/devsettings.html index 64d7803c0b9..5fb890a4556 100644 --- a/docs/0.75/devsettings.html +++ b/docs/0.75/devsettings.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/dimensions.html b/docs/0.75/dimensions.html index b582ee3ec17..56b472d961a 100644 --- a/docs/0.75/dimensions.html +++ b/docs/0.75/dimensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/direct-manipulation.html b/docs/0.75/direct-manipulation.html index 020da1e8e7e..c2b94b99613 100644 --- a/docs/0.75/direct-manipulation.html +++ b/docs/0.75/direct-manipulation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/drawerlayoutandroid.html b/docs/0.75/drawerlayoutandroid.html index 7ecb82f52a3..cd2fdbe4704 100644 --- a/docs/0.75/drawerlayoutandroid.html +++ b/docs/0.75/drawerlayoutandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/dynamiccolorios.html b/docs/0.75/dynamiccolorios.html index a0fa202b0b0..cff6c850dcc 100644 --- a/docs/0.75/dynamiccolorios.html +++ b/docs/0.75/dynamiccolorios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/easing.html b/docs/0.75/easing.html index 86e665de3eb..af1f098e753 100644 Binary files a/docs/0.75/easing.html and b/docs/0.75/easing.html differ diff --git a/docs/0.75/environment-setup.html b/docs/0.75/environment-setup.html index 67d6da7aa0f..50df81e513b 100644 --- a/docs/0.75/environment-setup.html +++ b/docs/0.75/environment-setup.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/fabric-renderer.html b/docs/0.75/fabric-renderer.html index 9db926abd62..e071cb2616d 100644 --- a/docs/0.75/fabric-renderer.html +++ b/docs/0.75/fabric-renderer.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/fast-refresh.html b/docs/0.75/fast-refresh.html index a6bc4fa6ce4..0505ebc7f0d 100644 --- a/docs/0.75/fast-refresh.html +++ b/docs/0.75/fast-refresh.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/flatlist.html b/docs/0.75/flatlist.html index 083da6554d3..025c7af2ddb 100644 --- a/docs/0.75/flatlist.html +++ b/docs/0.75/flatlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/flexbox.html b/docs/0.75/flexbox.html index 79f0a9f2d4d..c59954df8cb 100644 --- a/docs/0.75/flexbox.html +++ b/docs/0.75/flexbox.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/gesture-responder-system.html b/docs/0.75/gesture-responder-system.html index 79d5f9cbd22..c6281f67c8d 100644 --- a/docs/0.75/gesture-responder-system.html +++ b/docs/0.75/gesture-responder-system.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/getting-started.html b/docs/0.75/getting-started.html index 9847e8f3039..a9e29e1303c 100644 --- a/docs/0.75/getting-started.html +++ b/docs/0.75/getting-started.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/handling-text-input.html b/docs/0.75/handling-text-input.html index 9e8bfc2fd58..0fac39d1930 100644 --- a/docs/0.75/handling-text-input.html +++ b/docs/0.75/handling-text-input.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/handling-touches.html b/docs/0.75/handling-touches.html index d9d393dbbd6..cefc111ed84 100644 --- a/docs/0.75/handling-touches.html +++ b/docs/0.75/handling-touches.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/headless-js-android.html b/docs/0.75/headless-js-android.html index ceff8aad88c..46c82e37305 100644 --- a/docs/0.75/headless-js-android.html +++ b/docs/0.75/headless-js-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/height-and-width.html b/docs/0.75/height-and-width.html index 8de049aec37..50d4575889f 100644 --- a/docs/0.75/height-and-width.html +++ b/docs/0.75/height-and-width.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/hermes.html b/docs/0.75/hermes.html index bd09e6c2af2..2f331b7c475 100644 Binary files a/docs/0.75/hermes.html and b/docs/0.75/hermes.html differ diff --git a/docs/0.75/image-style-props.html b/docs/0.75/image-style-props.html index ac011eac0bb..e05d3517807 100644 --- a/docs/0.75/image-style-props.html +++ b/docs/0.75/image-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/image.html b/docs/0.75/image.html index c773f011672..657584e708f 100644 --- a/docs/0.75/image.html +++ b/docs/0.75/image.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/imagebackground.html b/docs/0.75/imagebackground.html index 260cb1a4ac5..c68be7d91e1 100644 --- a/docs/0.75/imagebackground.html +++ b/docs/0.75/imagebackground.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/imagepickerios.html b/docs/0.75/imagepickerios.html index 5daf32b91d4..c126b43e5cf 100644 --- a/docs/0.75/imagepickerios.html +++ b/docs/0.75/imagepickerios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/images.html b/docs/0.75/images.html index 31367d3cc5f..513bae22cf5 100644 Binary files a/docs/0.75/images.html and b/docs/0.75/images.html differ diff --git a/docs/0.75/improvingux.html b/docs/0.75/improvingux.html index 9f00b3086ce..04fbf2437d9 100644 --- a/docs/0.75/improvingux.html +++ b/docs/0.75/improvingux.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/inputaccessoryview.html b/docs/0.75/inputaccessoryview.html index 725b98a2ffa..319aa1c7030 100644 --- a/docs/0.75/inputaccessoryview.html +++ b/docs/0.75/inputaccessoryview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/integration-with-android-fragment.html b/docs/0.75/integration-with-android-fragment.html index cc37981ce49..ed5092c756b 100644 Binary files a/docs/0.75/integration-with-android-fragment.html and b/docs/0.75/integration-with-android-fragment.html differ diff --git a/docs/0.75/integration-with-existing-apps.html b/docs/0.75/integration-with-existing-apps.html index 6295b899638..62e7b7339d8 100644 --- a/docs/0.75/integration-with-existing-apps.html +++ b/docs/0.75/integration-with-existing-apps.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/interactionmanager.html b/docs/0.75/interactionmanager.html index 28827d46c0d..0879eaccfd9 100644 --- a/docs/0.75/interactionmanager.html +++ b/docs/0.75/interactionmanager.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/intro-react-native-components.html b/docs/0.75/intro-react-native-components.html index 2901243d989..e15cb6cdd4c 100644 --- a/docs/0.75/intro-react-native-components.html +++ b/docs/0.75/intro-react-native-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/intro-react.html b/docs/0.75/intro-react.html index 7b92a3dc559..0904415bd56 100644 --- a/docs/0.75/intro-react.html +++ b/docs/0.75/intro-react.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/javascript-environment.html b/docs/0.75/javascript-environment.html index b5108a15e9b..05112033ec8 100644 --- a/docs/0.75/javascript-environment.html +++ b/docs/0.75/javascript-environment.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/keyboard.html b/docs/0.75/keyboard.html index 28bcb17d189..f3fb8e026cb 100644 --- a/docs/0.75/keyboard.html +++ b/docs/0.75/keyboard.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/keyboardavoidingview.html b/docs/0.75/keyboardavoidingview.html index 0f8c185d240..ae8c5ea6323 100644 --- a/docs/0.75/keyboardavoidingview.html +++ b/docs/0.75/keyboardavoidingview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/layout-props.html b/docs/0.75/layout-props.html index 3a39800d039..a9d8fb0e953 100644 --- a/docs/0.75/layout-props.html +++ b/docs/0.75/layout-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/layoutanimation.html b/docs/0.75/layoutanimation.html index 368f0ce9273..24ea88badaf 100644 --- a/docs/0.75/layoutanimation.html +++ b/docs/0.75/layoutanimation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/layoutevent.html b/docs/0.75/layoutevent.html index 6c652d7a8f1..61c501625c2 100644 --- a/docs/0.75/layoutevent.html +++ b/docs/0.75/layoutevent.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/libraries.html b/docs/0.75/libraries.html index 4baa7f486d0..f2ecb23226b 100644 --- a/docs/0.75/libraries.html +++ b/docs/0.75/libraries.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/linking-libraries-ios.html b/docs/0.75/linking-libraries-ios.html index 1db123fbeee..f8696f5688f 100644 --- a/docs/0.75/linking-libraries-ios.html +++ b/docs/0.75/linking-libraries-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/linking.html b/docs/0.75/linking.html index 769db8b28a8..9ba9f802c72 100644 --- a/docs/0.75/linking.html +++ b/docs/0.75/linking.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/metro.html b/docs/0.75/metro.html index a88aff05c06..f31a7670ace 100644 --- a/docs/0.75/metro.html +++ b/docs/0.75/metro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/modal.html b/docs/0.75/modal.html index 95704bc5e8f..bf064aa71a5 100644 --- a/docs/0.75/modal.html +++ b/docs/0.75/modal.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/more-resources.html b/docs/0.75/more-resources.html index 28f2783fc02..2cc509282fd 100644 --- a/docs/0.75/more-resources.html +++ b/docs/0.75/more-resources.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/native-components-android.html b/docs/0.75/native-components-android.html index fe5f44dbfe1..2faf640fb96 100644 --- a/docs/0.75/native-components-android.html +++ b/docs/0.75/native-components-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/native-components-ios.html b/docs/0.75/native-components-ios.html index d0c976bd0dd..8d2b33c7353 100644 --- a/docs/0.75/native-components-ios.html +++ b/docs/0.75/native-components-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/native-debugging.html b/docs/0.75/native-debugging.html index 7c4d5491555..0087d932057 100644 --- a/docs/0.75/native-debugging.html +++ b/docs/0.75/native-debugging.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/native-modules-android.html b/docs/0.75/native-modules-android.html index b4fe50f7204..4e4c2284c37 100644 --- a/docs/0.75/native-modules-android.html +++ b/docs/0.75/native-modules-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/native-modules-intro.html b/docs/0.75/native-modules-intro.html index 6748929a1b8..a28d4cb889a 100644 --- a/docs/0.75/native-modules-intro.html +++ b/docs/0.75/native-modules-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/native-modules-ios.html b/docs/0.75/native-modules-ios.html index ce691f325ea..579247df89b 100644 --- a/docs/0.75/native-modules-ios.html +++ b/docs/0.75/native-modules-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/native-modules-setup.html b/docs/0.75/native-modules-setup.html index 3888e2b13a4..3712fe446d0 100644 --- a/docs/0.75/native-modules-setup.html +++ b/docs/0.75/native-modules-setup.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/navigation.html b/docs/0.75/navigation.html index 34a6af67212..0adc069f3c6 100644 --- a/docs/0.75/navigation.html +++ b/docs/0.75/navigation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/netinfo.html b/docs/0.75/netinfo.html index 1bb7360b679..d60cbdd32b6 100644 --- a/docs/0.75/netinfo.html +++ b/docs/0.75/netinfo.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/network.html b/docs/0.75/network.html index 8326dc9e531..a847976c5e2 100644 --- a/docs/0.75/network.html +++ b/docs/0.75/network.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/new-architecture-app-intro.html b/docs/0.75/new-architecture-app-intro.html index 04b4316a620..ccbc4be3416 100644 --- a/docs/0.75/new-architecture-app-intro.html +++ b/docs/0.75/new-architecture-app-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/new-architecture-app-modules-ios.html b/docs/0.75/new-architecture-app-modules-ios.html index 2acb7fa2f51..7eb88b421c2 100644 --- a/docs/0.75/new-architecture-app-modules-ios.html +++ b/docs/0.75/new-architecture-app-modules-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/new-architecture-app-renderer-android.html b/docs/0.75/new-architecture-app-renderer-android.html index b957df0b898..69e321ac019 100644 --- a/docs/0.75/new-architecture-app-renderer-android.html +++ b/docs/0.75/new-architecture-app-renderer-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/new-architecture-app-renderer-ios.html b/docs/0.75/new-architecture-app-renderer-ios.html index 73314a4240f..a0a650b67e1 100644 Binary files a/docs/0.75/new-architecture-app-renderer-ios.html and b/docs/0.75/new-architecture-app-renderer-ios.html differ diff --git a/docs/0.75/new-architecture-appendix.html b/docs/0.75/new-architecture-appendix.html index d43e88baf31..0e0d075a9bd 100644 --- a/docs/0.75/new-architecture-appendix.html +++ b/docs/0.75/new-architecture-appendix.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/new-architecture-intro.html b/docs/0.75/new-architecture-intro.html index ccd6ff54b45..9de19d28977 100644 --- a/docs/0.75/new-architecture-intro.html +++ b/docs/0.75/new-architecture-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/new-architecture-library-android.html b/docs/0.75/new-architecture-library-android.html index 3d80efd093d..757cf40360b 100644 --- a/docs/0.75/new-architecture-library-android.html +++ b/docs/0.75/new-architecture-library-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/new-architecture-library-intro.html b/docs/0.75/new-architecture-library-intro.html index 4d54b7d124e..aa5a9cf4f95 100644 --- a/docs/0.75/new-architecture-library-intro.html +++ b/docs/0.75/new-architecture-library-intro.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/new-architecture-library-ios.html b/docs/0.75/new-architecture-library-ios.html index 688b36ab915..1717a96c936 100644 --- a/docs/0.75/new-architecture-library-ios.html +++ b/docs/0.75/new-architecture-library-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/new-architecture-troubleshooting.html b/docs/0.75/new-architecture-troubleshooting.html index 04b84e23a1c..4cc4cfbb079 100644 --- a/docs/0.75/new-architecture-troubleshooting.html +++ b/docs/0.75/new-architecture-troubleshooting.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/new-architecture-turbo-modules.html b/docs/0.75/new-architecture-turbo-modules.html index f00bf9d6e80..2cfd01a5344 100644 --- a/docs/0.75/new-architecture-turbo-modules.html +++ b/docs/0.75/new-architecture-turbo-modules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/optimizing-flatlist-configuration.html b/docs/0.75/optimizing-flatlist-configuration.html index 1445ae3a5d3..75c02aa6068 100644 Binary files a/docs/0.75/optimizing-flatlist-configuration.html and b/docs/0.75/optimizing-flatlist-configuration.html differ diff --git a/docs/0.75/optimizing-javascript-loading.html b/docs/0.75/optimizing-javascript-loading.html index f7b6cf3fef9..693b62d7443 100644 --- a/docs/0.75/optimizing-javascript-loading.html +++ b/docs/0.75/optimizing-javascript-loading.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/other-debugging-methods.html b/docs/0.75/other-debugging-methods.html index 345c10c836c..9fbcd3fa5a3 100644 --- a/docs/0.75/other-debugging-methods.html +++ b/docs/0.75/other-debugging-methods.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/out-of-tree-platforms.html b/docs/0.75/out-of-tree-platforms.html index f95558fe956..cd1123593a6 100644 --- a/docs/0.75/out-of-tree-platforms.html +++ b/docs/0.75/out-of-tree-platforms.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/panresponder.html b/docs/0.75/panresponder.html index 1143d0643ba..a24c270ed26 100644 --- a/docs/0.75/panresponder.html +++ b/docs/0.75/panresponder.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/performance.html b/docs/0.75/performance.html index f1bd132cba1..c3256f4efe7 100644 --- a/docs/0.75/performance.html +++ b/docs/0.75/performance.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/permissionsandroid.html b/docs/0.75/permissionsandroid.html index e0fd61491d1..62468a4d77d 100644 --- a/docs/0.75/permissionsandroid.html +++ b/docs/0.75/permissionsandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/pixelratio.html b/docs/0.75/pixelratio.html index eeb09ba799e..8f40b7797cd 100644 --- a/docs/0.75/pixelratio.html +++ b/docs/0.75/pixelratio.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/platform-specific-code.html b/docs/0.75/platform-specific-code.html index 02cf3d6da9f..1d8869b5d92 100644 --- a/docs/0.75/platform-specific-code.html +++ b/docs/0.75/platform-specific-code.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/platform.html b/docs/0.75/platform.html index b72926b8672..9d4d02a5b63 100644 --- a/docs/0.75/platform.html +++ b/docs/0.75/platform.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/platformcolor.html b/docs/0.75/platformcolor.html index 11e8cb8ea96..1a35ce51bf9 100644 --- a/docs/0.75/platformcolor.html +++ b/docs/0.75/platformcolor.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/pressable.html b/docs/0.75/pressable.html index 06b8948bac5..2a6591513d3 100644 --- a/docs/0.75/pressable.html +++ b/docs/0.75/pressable.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/pressevent.html b/docs/0.75/pressevent.html index 8b09e8a3e54..975eb41bdc1 100644 --- a/docs/0.75/pressevent.html +++ b/docs/0.75/pressevent.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/profile-hermes.html b/docs/0.75/profile-hermes.html index d263abdcaad..340b1962af1 100644 --- a/docs/0.75/profile-hermes.html +++ b/docs/0.75/profile-hermes.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/profiling.html b/docs/0.75/profiling.html index a8ee7bfa6d5..3030fe3a22c 100644 --- a/docs/0.75/profiling.html +++ b/docs/0.75/profiling.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/progressbarandroid.html b/docs/0.75/progressbarandroid.html index c2b32d75c9b..846a605acf3 100644 --- a/docs/0.75/progressbarandroid.html +++ b/docs/0.75/progressbarandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/progressviewios.html b/docs/0.75/progressviewios.html index b33efb1cb35..f1a818d0fe1 100644 --- a/docs/0.75/progressviewios.html +++ b/docs/0.75/progressviewios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/props.html b/docs/0.75/props.html index 81f58f9c487..704ae3d451e 100644 --- a/docs/0.75/props.html +++ b/docs/0.75/props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/publishing-to-app-store.html b/docs/0.75/publishing-to-app-store.html index 196169c2f2b..a023ac8752a 100644 --- a/docs/0.75/publishing-to-app-store.html +++ b/docs/0.75/publishing-to-app-store.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/pushnotificationios.html b/docs/0.75/pushnotificationios.html index 8266608e8e5..f658410529a 100644 --- a/docs/0.75/pushnotificationios.html +++ b/docs/0.75/pushnotificationios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/ram-bundles-inline-requires.html b/docs/0.75/ram-bundles-inline-requires.html index 862d42cc8b5..97d47bd9c64 100644 --- a/docs/0.75/ram-bundles-inline-requires.html +++ b/docs/0.75/ram-bundles-inline-requires.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/react-18-and-react-native.html b/docs/0.75/react-18-and-react-native.html index a017c6b3bd9..8e94053dae3 100644 --- a/docs/0.75/react-18-and-react-native.html +++ b/docs/0.75/react-18-and-react-native.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/react-devtools.html b/docs/0.75/react-devtools.html index e92c0407944..24374c26783 100644 --- a/docs/0.75/react-devtools.html +++ b/docs/0.75/react-devtools.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/react-native-gradle-plugin.html b/docs/0.75/react-native-gradle-plugin.html index 94d24708920..dd6b76011ff 100644 --- a/docs/0.75/react-native-gradle-plugin.html +++ b/docs/0.75/react-native-gradle-plugin.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/react-node.html b/docs/0.75/react-node.html index 72b1fd0f4a9..579c769e7e1 100644 --- a/docs/0.75/react-node.html +++ b/docs/0.75/react-node.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/rect.html b/docs/0.75/rect.html index bd5fb4876f3..592eee732f2 100644 --- a/docs/0.75/rect.html +++ b/docs/0.75/rect.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/rectorsize.html b/docs/0.75/rectorsize.html index 62ee67e000e..6981cfe0f05 100644 --- a/docs/0.75/rectorsize.html +++ b/docs/0.75/rectorsize.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/refreshcontrol.html b/docs/0.75/refreshcontrol.html index b42ca5e772f..4486c4f1b05 100644 --- a/docs/0.75/refreshcontrol.html +++ b/docs/0.75/refreshcontrol.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/removing-default-permissions.html b/docs/0.75/removing-default-permissions.html index 16bb8e06278..5e449f892cd 100644 --- a/docs/0.75/removing-default-permissions.html +++ b/docs/0.75/removing-default-permissions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/render-pipeline.html b/docs/0.75/render-pipeline.html index 782b894d476..40cd7b5a2f6 100644 --- a/docs/0.75/render-pipeline.html +++ b/docs/0.75/render-pipeline.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/roottag.html b/docs/0.75/roottag.html index 7f58b31de6d..2a461e77daa 100644 --- a/docs/0.75/roottag.html +++ b/docs/0.75/roottag.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/running-on-device.html b/docs/0.75/running-on-device.html index b4f94deab0b..efc307c327a 100644 --- a/docs/0.75/running-on-device.html +++ b/docs/0.75/running-on-device.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/running-on-simulator-ios.html b/docs/0.75/running-on-simulator-ios.html index cd43b33cacf..557a71ddfa5 100644 --- a/docs/0.75/running-on-simulator-ios.html +++ b/docs/0.75/running-on-simulator-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/safeareaview.html b/docs/0.75/safeareaview.html index 6b038681c0a..7fef7dbbc92 100644 --- a/docs/0.75/safeareaview.html +++ b/docs/0.75/safeareaview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/sample-application-movies.html b/docs/0.75/sample-application-movies.html index b90577c6850..12e22732536 100644 --- a/docs/0.75/sample-application-movies.html +++ b/docs/0.75/sample-application-movies.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/scrollview.html b/docs/0.75/scrollview.html index 0ef74bf5255..412245a6e13 100644 --- a/docs/0.75/scrollview.html +++ b/docs/0.75/scrollview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/sectionlist.html b/docs/0.75/sectionlist.html index d56995cde97..8411de212fe 100644 --- a/docs/0.75/sectionlist.html +++ b/docs/0.75/sectionlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/security.html b/docs/0.75/security.html index efb18417dee..858f2f26a8f 100644 --- a/docs/0.75/security.html +++ b/docs/0.75/security.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/segmentedcontrolios.html b/docs/0.75/segmentedcontrolios.html index a484ab7621b..16065363da7 100644 --- a/docs/0.75/segmentedcontrolios.html +++ b/docs/0.75/segmentedcontrolios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/settings.html b/docs/0.75/settings.html index 2a983e50cb8..268f41f3255 100644 --- a/docs/0.75/settings.html +++ b/docs/0.75/settings.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/shadow-props.html b/docs/0.75/shadow-props.html index 13ad4c0056c..a3c3116f7c9 100644 --- a/docs/0.75/shadow-props.html +++ b/docs/0.75/shadow-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/share.html b/docs/0.75/share.html index 5b0a2a739f6..bb76e3c22d1 100644 --- a/docs/0.75/share.html +++ b/docs/0.75/share.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/signed-apk-android.html b/docs/0.75/signed-apk-android.html index 4da78670422..4a5fe758ad2 100644 --- a/docs/0.75/signed-apk-android.html +++ b/docs/0.75/signed-apk-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/slider.html b/docs/0.75/slider.html index 66324336ad0..1a82dfa4680 100644 Binary files a/docs/0.75/slider.html and b/docs/0.75/slider.html differ diff --git a/docs/0.75/speeding-ci-builds.html b/docs/0.75/speeding-ci-builds.html index e754c7b0978..fd1befe41a3 100644 --- a/docs/0.75/speeding-ci-builds.html +++ b/docs/0.75/speeding-ci-builds.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/state.html b/docs/0.75/state.html index 0935db5d239..d7e9cff9712 100644 --- a/docs/0.75/state.html +++ b/docs/0.75/state.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/statusbar.html b/docs/0.75/statusbar.html index 86e966b914e..3d50d4cfff9 100644 --- a/docs/0.75/statusbar.html +++ b/docs/0.75/statusbar.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/style.html b/docs/0.75/style.html index 3b05e4aeab6..d9b3fd51b77 100644 --- a/docs/0.75/style.html +++ b/docs/0.75/style.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/stylesheet.html b/docs/0.75/stylesheet.html index d40f67a4b0c..14b18789fc8 100644 --- a/docs/0.75/stylesheet.html +++ b/docs/0.75/stylesheet.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/switch.html b/docs/0.75/switch.html index 7edb24bbc35..3060c27747d 100644 Binary files a/docs/0.75/switch.html and b/docs/0.75/switch.html differ diff --git a/docs/0.75/symbolication.html b/docs/0.75/symbolication.html index 3d2019adc78..edc6a958da7 100644 --- a/docs/0.75/symbolication.html +++ b/docs/0.75/symbolication.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/systrace.html b/docs/0.75/systrace.html index 2e46e288a3d..8c7b0775e03 100644 --- a/docs/0.75/systrace.html +++ b/docs/0.75/systrace.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/testing-overview.html b/docs/0.75/testing-overview.html index 69fc9cdc199..b7bc8bdbb7b 100644 --- a/docs/0.75/testing-overview.html +++ b/docs/0.75/testing-overview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/text-style-props.html b/docs/0.75/text-style-props.html index 2ba01325a1b..0cf85cdb3b8 100644 --- a/docs/0.75/text-style-props.html +++ b/docs/0.75/text-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/text.html b/docs/0.75/text.html index 9152d8e1024..1aa78d6443d 100644 --- a/docs/0.75/text.html +++ b/docs/0.75/text.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/textinput.html b/docs/0.75/textinput.html index 864b147cbbd..9f0de73f9bc 100644 --- a/docs/0.75/textinput.html +++ b/docs/0.75/textinput.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/the-new-architecture/backward-compatibility-fabric-components.html b/docs/0.75/the-new-architecture/backward-compatibility-fabric-components.html index fc7000f0d98..acf3d87318f 100644 --- a/docs/0.75/the-new-architecture/backward-compatibility-fabric-components.html +++ b/docs/0.75/the-new-architecture/backward-compatibility-fabric-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/the-new-architecture/backward-compatibility-turbomodules.html b/docs/0.75/the-new-architecture/backward-compatibility-turbomodules.html index 9b8f14d8154..df37b2b175c 100644 --- a/docs/0.75/the-new-architecture/backward-compatibility-turbomodules.html +++ b/docs/0.75/the-new-architecture/backward-compatibility-turbomodules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/the-new-architecture/backward-compatibility.html b/docs/0.75/the-new-architecture/backward-compatibility.html index d8cb2d1ee28..44f8e6997f2 100644 --- a/docs/0.75/the-new-architecture/backward-compatibility.html +++ b/docs/0.75/the-new-architecture/backward-compatibility.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/the-new-architecture/cxx-custom-types.html b/docs/0.75/the-new-architecture/cxx-custom-types.html index 45f99a5c4df..48ca57a37f0 100644 --- a/docs/0.75/the-new-architecture/cxx-custom-types.html +++ b/docs/0.75/the-new-architecture/cxx-custom-types.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/the-new-architecture/cxx-cxxturbomodules.html b/docs/0.75/the-new-architecture/cxx-cxxturbomodules.html index 66e16978eda..a1167c38753 100644 --- a/docs/0.75/the-new-architecture/cxx-cxxturbomodules.html +++ b/docs/0.75/the-new-architecture/cxx-cxxturbomodules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/the-new-architecture/landing-page.html b/docs/0.75/the-new-architecture/landing-page.html index 62a90efac42..d42f478942c 100644 Binary files a/docs/0.75/the-new-architecture/landing-page.html and b/docs/0.75/the-new-architecture/landing-page.html differ diff --git a/docs/0.75/the-new-architecture/pillars-codegen.html b/docs/0.75/the-new-architecture/pillars-codegen.html index 1b11295f68b..e7250343d5a 100644 --- a/docs/0.75/the-new-architecture/pillars-codegen.html +++ b/docs/0.75/the-new-architecture/pillars-codegen.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/the-new-architecture/pillars-fabric-components.html b/docs/0.75/the-new-architecture/pillars-fabric-components.html index 9fc8177f07f..10922ebdaf2 100644 --- a/docs/0.75/the-new-architecture/pillars-fabric-components.html +++ b/docs/0.75/the-new-architecture/pillars-fabric-components.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/the-new-architecture/pillars-turbomodules.html b/docs/0.75/the-new-architecture/pillars-turbomodules.html index b644ef2c4e3..b963481ca21 100644 --- a/docs/0.75/the-new-architecture/pillars-turbomodules.html +++ b/docs/0.75/the-new-architecture/pillars-turbomodules.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/the-new-architecture/pillars.html b/docs/0.75/the-new-architecture/pillars.html index 6ea78b7731d..ec046b73701 100644 --- a/docs/0.75/the-new-architecture/pillars.html +++ b/docs/0.75/the-new-architecture/pillars.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/the-new-architecture/use-app-template.html b/docs/0.75/the-new-architecture/use-app-template.html index f0a555876f4..f36e79fd194 100644 --- a/docs/0.75/the-new-architecture/use-app-template.html +++ b/docs/0.75/the-new-architecture/use-app-template.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/the-new-architecture/why.html b/docs/0.75/the-new-architecture/why.html index d288ce5d302..c26b590c387 100644 --- a/docs/0.75/the-new-architecture/why.html +++ b/docs/0.75/the-new-architecture/why.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/threading-model.html b/docs/0.75/threading-model.html index d7757a34e3a..052c77a039d 100644 --- a/docs/0.75/threading-model.html +++ b/docs/0.75/threading-model.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/timepickerandroid.html b/docs/0.75/timepickerandroid.html index 4c93433b7b9..1f00965bcc2 100644 --- a/docs/0.75/timepickerandroid.html +++ b/docs/0.75/timepickerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/timers.html b/docs/0.75/timers.html index 0b98ee81c60..9b647cc2c0b 100644 Binary files a/docs/0.75/timers.html and b/docs/0.75/timers.html differ diff --git a/docs/0.75/toastandroid.html b/docs/0.75/toastandroid.html index 91a9a822a97..7f3b583c7c1 100644 --- a/docs/0.75/toastandroid.html +++ b/docs/0.75/toastandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/touchablehighlight.html b/docs/0.75/touchablehighlight.html index 72459a49665..400ecdddb89 100644 --- a/docs/0.75/touchablehighlight.html +++ b/docs/0.75/touchablehighlight.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/touchablenativefeedback.html b/docs/0.75/touchablenativefeedback.html index 6635f9316d5..09c01c1970f 100644 --- a/docs/0.75/touchablenativefeedback.html +++ b/docs/0.75/touchablenativefeedback.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/touchableopacity.html b/docs/0.75/touchableopacity.html index 6e434771d0f..122f740ec60 100644 --- a/docs/0.75/touchableopacity.html +++ b/docs/0.75/touchableopacity.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/touchablewithoutfeedback.html b/docs/0.75/touchablewithoutfeedback.html index 4d59d8ee99c..bd7320896a7 100644 --- a/docs/0.75/touchablewithoutfeedback.html +++ b/docs/0.75/touchablewithoutfeedback.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/transforms.html b/docs/0.75/transforms.html index 7b8f07b9838..514d6bdbb21 100644 --- a/docs/0.75/transforms.html +++ b/docs/0.75/transforms.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/troubleshooting.html b/docs/0.75/troubleshooting.html index cbee07d6bab..c1416146741 100644 --- a/docs/0.75/troubleshooting.html +++ b/docs/0.75/troubleshooting.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/tutorial.html b/docs/0.75/tutorial.html index 4c96cdadaa7..b4b59908914 100644 --- a/docs/0.75/tutorial.html +++ b/docs/0.75/tutorial.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/typescript.html b/docs/0.75/typescript.html index d1f10786fc3..4103dbe9d11 100644 --- a/docs/0.75/typescript.html +++ b/docs/0.75/typescript.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/upgrading.html b/docs/0.75/upgrading.html index 8d06278a0c2..4e774ecd103 100644 --- a/docs/0.75/upgrading.html +++ b/docs/0.75/upgrading.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/usecolorscheme.html b/docs/0.75/usecolorscheme.html index 2e3ecbb13f2..c669e8d07bc 100644 --- a/docs/0.75/usecolorscheme.html +++ b/docs/0.75/usecolorscheme.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/usewindowdimensions.html b/docs/0.75/usewindowdimensions.html index b33b5e8134d..1130319229b 100644 --- a/docs/0.75/usewindowdimensions.html +++ b/docs/0.75/usewindowdimensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/using-a-listview.html b/docs/0.75/using-a-listview.html index c3ab17c4d38..f5e38c6cbef 100644 --- a/docs/0.75/using-a-listview.html +++ b/docs/0.75/using-a-listview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/using-a-scrollview.html b/docs/0.75/using-a-scrollview.html index d0c957bffc8..d887f473f2e 100644 --- a/docs/0.75/using-a-scrollview.html +++ b/docs/0.75/using-a-scrollview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/vibration.html b/docs/0.75/vibration.html index e4498892668..9f1eb448760 100644 --- a/docs/0.75/vibration.html +++ b/docs/0.75/vibration.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/view-flattening.html b/docs/0.75/view-flattening.html index 27fe0af5c4b..25e59674e3f 100644 --- a/docs/0.75/view-flattening.html +++ b/docs/0.75/view-flattening.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/view-style-props.html b/docs/0.75/view-style-props.html index a523d491e95..4ab9e92a102 100644 --- a/docs/0.75/view-style-props.html +++ b/docs/0.75/view-style-props.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/view.html b/docs/0.75/view.html index 028d089dbac..bab01384743 100644 --- a/docs/0.75/view.html +++ b/docs/0.75/view.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/viewpagerandroid.html b/docs/0.75/viewpagerandroid.html index b27332d9aac..fc597046bda 100644 --- a/docs/0.75/viewpagerandroid.html +++ b/docs/0.75/viewpagerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/viewtoken.html b/docs/0.75/viewtoken.html index f19e093dbd1..aa12d8ac0ce 100644 --- a/docs/0.75/viewtoken.html +++ b/docs/0.75/viewtoken.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/virtualizedlist.html b/docs/0.75/virtualizedlist.html index 053ccad1871..cb297966a77 100644 --- a/docs/0.75/virtualizedlist.html +++ b/docs/0.75/virtualizedlist.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.75/xplat-implementation.html b/docs/0.75/xplat-implementation.html index ffcde0fd1f9..e73ae4b813c 100644 --- a/docs/0.75/xplat-implementation.html +++ b/docs/0.75/xplat-implementation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/accessibility.html b/docs/accessibility.html index e1b2159907d..83420264028 100644 --- a/docs/accessibility.html +++ b/docs/accessibility.html @@ -17,7 +17,7 @@ - + diff --git a/docs/accessibilityinfo.html b/docs/accessibilityinfo.html index 2caefd75465..f90f1fd19fe 100644 --- a/docs/accessibilityinfo.html +++ b/docs/accessibilityinfo.html @@ -17,7 +17,7 @@ - + diff --git a/docs/actionsheetios.html b/docs/actionsheetios.html index 5f020cf2e0a..f17c54b9338 100644 --- a/docs/actionsheetios.html +++ b/docs/actionsheetios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/activityindicator.html b/docs/activityindicator.html index b88ba525fdd..a4a3148c8a9 100644 --- a/docs/activityindicator.html +++ b/docs/activityindicator.html @@ -17,7 +17,7 @@ - + diff --git a/docs/alert.html b/docs/alert.html index 0107b85eaf8..e1c9f23e8c2 100644 --- a/docs/alert.html +++ b/docs/alert.html @@ -17,7 +17,7 @@ - + diff --git a/docs/alertios.html b/docs/alertios.html index 592d5975203..73b22b3884f 100644 --- a/docs/alertios.html +++ b/docs/alertios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/animated.html b/docs/animated.html index 6db0d90a72a..a21a798f29f 100644 --- a/docs/animated.html +++ b/docs/animated.html @@ -17,7 +17,7 @@ - + diff --git a/docs/animatedvalue.html b/docs/animatedvalue.html index 627e8ae90b2..0854adb42d1 100644 --- a/docs/animatedvalue.html +++ b/docs/animatedvalue.html @@ -17,7 +17,7 @@ - + diff --git a/docs/animatedvaluexy.html b/docs/animatedvaluexy.html index a4ad1f7ddb3..be0e535e23d 100644 --- a/docs/animatedvaluexy.html +++ b/docs/animatedvaluexy.html @@ -17,7 +17,7 @@ - + diff --git a/docs/animations.html b/docs/animations.html index d429f42615d..9a99cb51823 100644 --- a/docs/animations.html +++ b/docs/animations.html @@ -17,7 +17,7 @@ - + diff --git a/docs/app-extensions.html b/docs/app-extensions.html index daaf916ae95..b95c19ff3d5 100644 --- a/docs/app-extensions.html +++ b/docs/app-extensions.html @@ -17,7 +17,7 @@ - + diff --git a/docs/appearance.html b/docs/appearance.html index 147226e2f11..0006f7aed6f 100644 --- a/docs/appearance.html +++ b/docs/appearance.html @@ -17,7 +17,7 @@ - + diff --git a/docs/appendix.html b/docs/appendix.html index 7abad7e285e..e87af797b33 100644 --- a/docs/appendix.html +++ b/docs/appendix.html @@ -3,7 +3,7 @@ -appendix · React Native 中文网 +附录 · React Native 中文网 @@ -17,15 +17,16 @@ - + -
新架构实战课 实操 + 基建 + 原理全维度包揽,抢先掌握 React Native 新架构精髓 立即查看 >

appendix

一、术语

+
新架构实战课 实操 + 基建 + 原理全维度包揽,抢先掌握 React Native 新架构精髓 立即查看 >

附录

+

一、术语

整个与新架构相关的指南将遵循以下术语

  • -

    Spec - TypeScript or Flow code that describes the API for a Turbo Native Module or Fabric Native component. Used by Codegen to generate boilerplate code.

    +

    Spec - TypeScript 或 Flow 形式的代码,用于描述 Turbo Native 模块或 Fabric 原生组件的 API。 Codegen 根据它来生成样板代码。

  • Fabric 原生组件 - 指已经适配以与新架构(即新渲染器)良好协同工作的组件。为简洁起见,您可能会看到它们被称为Fabric 组件

    @@ -34,10 +35,10 @@

    Turbo 原生模块 - 指已经适配以与新架构(即新原生模块系统)良好协同工作的模块。为简洁起见,您可能会看到它们被称为Turbo 模块

  • -

    传统原生组件 - 指运行在旧版 React Native 架构上的组件。

    +

    传统原生组件 - 指运行在 React Native 旧架构上的组件。

  • -

    传统原生模块 - 指运行在旧版 React Native 架构上的模块。

    +

    传统原生模块 - 指运行在 React Native 旧架构上的模块。

II. Codegen 类型

diff --git a/docs/appregistry.html b/docs/appregistry.html index 84c4a934a7a..ebda5c7f31b 100644 --- a/docs/appregistry.html +++ b/docs/appregistry.html @@ -17,7 +17,7 @@ - + diff --git a/docs/appstate.html b/docs/appstate.html index c0b7b7eb3a0..3ce2af62579 100644 --- a/docs/appstate.html +++ b/docs/appstate.html @@ -17,7 +17,7 @@ - + diff --git a/docs/architecture-glossary.html b/docs/architecture-glossary.html index 9fd4b248694..64bcd21da54 100644 --- a/docs/architecture-glossary.html +++ b/docs/architecture-glossary.html @@ -17,7 +17,7 @@ - + diff --git a/docs/architecture-overview.html b/docs/architecture-overview.html index 8d737327902..39db871eacf 100644 --- a/docs/architecture-overview.html +++ b/docs/architecture-overview.html @@ -17,7 +17,7 @@ - + diff --git a/docs/asyncstorage.html b/docs/asyncstorage.html index 98b16ea15f3..a593b6c5878 100644 --- a/docs/asyncstorage.html +++ b/docs/asyncstorage.html @@ -17,7 +17,7 @@ - + diff --git a/docs/backhandler.html b/docs/backhandler.html index c73fe1e87c6..8e2014c2faa 100644 --- a/docs/backhandler.html +++ b/docs/backhandler.html @@ -17,7 +17,7 @@ - + diff --git a/docs/build-speed.html b/docs/build-speed.html index 8ee3be79521..a019da85a68 100644 --- a/docs/build-speed.html +++ b/docs/build-speed.html @@ -17,7 +17,7 @@ - + diff --git a/docs/building-for-tv.html b/docs/building-for-tv.html index 41c1549a16a..4d9af6ec2a4 100644 --- a/docs/building-for-tv.html +++ b/docs/building-for-tv.html @@ -17,7 +17,7 @@ - + diff --git a/docs/button.html b/docs/button.html index ac01d118b63..343ed0bf63c 100644 --- a/docs/button.html +++ b/docs/button.html @@ -17,7 +17,7 @@ - + diff --git a/docs/checkbox.html b/docs/checkbox.html index 650d5564993..e280b0d623b 100644 --- a/docs/checkbox.html +++ b/docs/checkbox.html @@ -17,7 +17,7 @@ - + diff --git a/docs/clipboard.html b/docs/clipboard.html index bf7b4962f99..d02a77fcf2f 100644 --- a/docs/clipboard.html +++ b/docs/clipboard.html @@ -17,7 +17,7 @@ - + diff --git a/docs/colors.html b/docs/colors.html index 58c49c89095..440393cd5aa 100644 --- a/docs/colors.html +++ b/docs/colors.html @@ -17,7 +17,7 @@ - + diff --git a/docs/communication-android.html b/docs/communication-android.html index b0099f71945..4eaab0690ab 100644 --- a/docs/communication-android.html +++ b/docs/communication-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/communication-ios.html b/docs/communication-ios.html index 08bf20a0c13..bc16b8be500 100644 --- a/docs/communication-ios.html +++ b/docs/communication-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/components-and-apis.html b/docs/components-and-apis.html index 4516b69b620..a249c530185 100644 --- a/docs/components-and-apis.html +++ b/docs/components-and-apis.html @@ -17,7 +17,7 @@ - + diff --git a/docs/custom-webview-android.html b/docs/custom-webview-android.html index 0a6412721db..bdd678a3c90 100644 --- a/docs/custom-webview-android.html +++ b/docs/custom-webview-android.html @@ -17,7 +17,7 @@ - + diff --git a/docs/custom-webview-ios.html b/docs/custom-webview-ios.html index 3bc619a3d64..c40bd6d8710 100644 --- a/docs/custom-webview-ios.html +++ b/docs/custom-webview-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/datepickerandroid.html b/docs/datepickerandroid.html index 7512735aeec..7237b7850bb 100644 --- a/docs/datepickerandroid.html +++ b/docs/datepickerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/datepickerios.html b/docs/datepickerios.html index ab6b28fa4a9..42282a47ce3 100644 --- a/docs/datepickerios.html +++ b/docs/datepickerios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/debugging-native-code.html b/docs/debugging-native-code.html index e86f03127c0..def6aaacb8f 100644 --- a/docs/debugging-native-code.html +++ b/docs/debugging-native-code.html @@ -3,7 +3,7 @@ -调试原生代码 · React Native 中文网 +调试原生代码 · React Native 中文网 @@ -17,22 +17,22 @@ - + -
新架构实战课 实操 + 基建 + 原理全维度包揽,抢先掌握 React Native 新架构精髓 立即查看 >

调试原生代码

-

Accessing Logs

-

You can display the native logs for an iOS or Android app by using the following commands in a terminal while the app is running:

+
新架构实战课 实操 + 基建 + 原理全维度包揽,抢先掌握 React Native 新架构精髓 立即查看 >

调试原生代码

+

打印日志

+

当应用正在运行时,你可以在终端中使用以下命令打印 iOS 或 Android 应用的日志:

# For Android:
npx react-native log-android
# Or, for iOS:
npx react-native log-ios
-

You may also access these through Debug > Open System Log… in the iOS Simulator or by running adb logcat "*:S" ReactNative:V ReactNativeJS:V in a terminal while an Android app is running on a device or emulator.

-

Debugging in a Native IDE

-

When working with native code, such as when writing native modules, you can launch the app from Android Studio or Xcode and take advantage of the native debugging features (setting up breakpoints, etc.) as you would in case of building a standard native app.

-

Another option is to run your application using the React Native CLI and attach the native debugger of the native IDE (Android Studio or Xcode) to the process.

+

你也可以通过 iOS 模拟器中的 "Debug > Open System Log..." 菜单,或者在运行 Android 应用的设备或模拟器中运行 adb logcat "*:S" ReactNative:V ReactNativeJS:V 来访问这些日志。

+

在原生 IDE 中调试

+

当你编写原生模块时,你可以使用 Android Studio 或 Xcode 来启动应用,并使用其原生调试功能(设置断点等),就像在构建标准原生应用时一样。

+

另一种选择是使用 React Native CLI 运行应用,并从原生 IDE(Android Studio 或 Xcode)中附加到进程。

Android Studio

-

On Android Studio you can do this by going on the "Run" option on the menu bar, clicking on "Attach to Process..." and selecting the running React Native app.

+

在 Android Studio 中,你可以通过点击菜单栏中的 "Run" 选项,然后选择 "Attach to Process...",并选择正在运行的 React Native 应用。

Xcode

-

On Xcode click on "Debug" on the top menu bar, select the "Attach to process" option, and select the application in the list of "Likely Targets".