diff --git a/404.html b/404.html index 954ccdeb48e..cf8fd501592 100644 --- a/404.html +++ b/404.html @@ -17,7 +17,7 @@ - + diff --git a/about.html b/about.html index 97703e802fe..e66b085c4d2 100644 --- a/about.html +++ b/about.html @@ -17,7 +17,7 @@ - + diff --git a/architecture/bundled-hermes.html b/architecture/bundled-hermes.html index 70d0318ec9e..e61bce70313 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 5930fa1d41d..93541bd8ffe 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 8f8a48328f6..3892da5cb41 100644 --- a/architecture/glossary.html +++ b/architecture/glossary.html @@ -17,7 +17,7 @@ - + diff --git a/architecture/overview.html b/architecture/overview.html index fc5e26f6528..bf591b5d9e4 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 b205ad33179..185f7c52e2c 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 568d8dfbeff..5404bccf1a5 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 84265d36272..2ecd8e9e98b 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 d6ce1b0054c..765e85f7dbc 100644 --- a/architecture/xplat-implementation.html +++ b/architecture/xplat-implementation.html @@ -17,7 +17,7 @@ - + diff --git a/assets/js/23ee098c.35919a6b.js b/assets/js/23ee098c.35919a6b.js deleted file mode 100644 index 73136453fa8..00000000000 --- a/assets/js/23ee098c.35919a6b.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 23ee098c.35919a6b.js.LICENSE.txt */ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[53164],{22280:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>b,frontMatter:()=>s,metadata:()=>u,toc:()=>p});var n=r(24246),a=r(71670),l=r(48375),i=r(86386),o=r(11674);const s={id:"other-debugging-methods",title:"Other Debugging Methods"},c=void 0,u={id:"other-debugging-methods",title:"Other Debugging Methods",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",source:"@site/versioned_docs/version-0.74/other-debugging-methods.md",sourceDirName:".",slug:"/other-debugging-methods",permalink:"/docs/other-debugging-methods",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/other-debugging-methods.md",tags:[],version:"0.74",frontMatter:{id:"other-debugging-methods",title:"Other Debugging Methods"},sidebar:"docs",previous:{title:"Debugging Release Builds",permalink:"/docs/debugging-release-builds"},next:{title:"Testing",permalink:"/docs/testing-overview"}},d={},p=[{value:"Safari \u5f00\u53d1\u8005\u5de5\u5177\uff08\u76f4\u63a5\u8c03\u8bd5 JSC\uff09",id:"safari-\u5f00\u53d1\u8005\u5de5\u5177\u76f4\u63a5\u8c03\u8bd5-jsc",level:2},{value:"\u8fdc\u7a0b JavaScript \u8c03\u8bd5\uff08\u5df2\u5f03\u7528\uff09",id:"\u8fdc\u7a0b-javascript-\u8c03\u8bd5\u5df2\u5f03\u7528",level:2},{value:"\u8bbe\u7f6e",id:"\u8bbe\u7f6e",level:3},{value:"\u5728\u5b9e\u4f53\u8bbe\u5907\u4e0a\u8c03\u8bd5",id:"\u5728\u5b9e\u4f53\u8bbe\u5907\u4e0a\u8c03\u8bd5",level:3}];function h(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["\u6b64\u9875\u9762\u4ecb\u7ecd\u4e86\u9664 ",(0,n.jsx)(t.a,{href:"./debugging#opening-the-debugger",children:"\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"]}),"\n",(0,n.jsx)(t.h2,{id:"safari-\u5f00\u53d1\u8005\u5de5\u5177\u76f4\u63a5\u8c03\u8bd5-jsc",children:"Safari \u5f00\u53d1\u8005\u5de5\u5177\uff08\u76f4\u63a5\u8c03\u8bd5 JSC\uff09"}),"\n",(0,n.jsxs)(t.p,{children:["\u5f53\u4f60\u7684\u5e94\u7528\u4f7f\u7528 ",(0,n.jsx)(t.a,{href:"https://trac.webkit.org/wiki/JavaScriptCore",children:"JavaScriptCore"}),"\uff08JSC\uff09\u4f5c\u4e3a\u8fd0\u884c\u65f6\u73af\u5883\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528 Safari \u6765\u8c03\u8bd5\u5e94\u7528\u7684 iOS \u7248\u672c\u3002"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"\u4ec5\u9002\u7528\u4e8e\u7269\u7406\u8bbe\u5907"}),'\uff1a\u6253\u5f00"\u8bbe\u7f6e"\u5e94\u7528\uff0c\u5bfc\u822a\u5230 Safari > \u9ad8\u7ea7\uff0c\u786e\u4fdd"Web \u68c0\u67e5\u5668"\u5df2\u6253\u5f00\u3002']}),"\n",(0,n.jsx)(t.li,{children:'\u5728 Mac \u4e0a\uff0c\u6253\u5f00 Safari \u5e76\u542f\u7528"\u5f00\u53d1"\u83dc\u5355\u3002\u53ef\u4ee5\u5728 Safari > \u8bbe\u7f6e... \u4e0b\u627e\u5230\uff0c\u7136\u540e\u9009\u62e9"\u9ad8\u7ea7"\u9009\u9879\u5361\uff0c\u518d\u52fe\u9009"\u663e\u793a\u5f00\u53d1\u8005\u529f\u80fd"\u3002'}),"\n",(0,n.jsx)(t.li,{children:'\u5728"\u5f00\u53d1"\u83dc\u5355\u4e0b\u627e\u5230\u4f60\u7684\u8bbe\u5907\uff0c\u5e76\u4ece\u5b50\u83dc\u5355\u4e2d\u9009\u62e9"JSContext"\u9879\u3002\u8fd9\u5c06\u6253\u5f00 Safari \u7684 Web \u68c0\u67e5\u5668\uff0c\u5176\u4e2d\u5305\u62ec\u7c7b\u4f3c\u4e8e Chrome \u5f00\u53d1\u8005\u5de5\u5177\u7684\u63a7\u5236\u53f0\u548c\u6e90\u4ee3\u7801\u9762\u677f\u3002'}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Opening Safari Web Inspector",src:r(26434).Z+"",width:"1600",height:"730"})}),"\n",(0,n.jsx)(t.admonition,{type:"tip",children:(0,n.jsx)(t.p,{children:"\u867d\u7136\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u53ef\u80fd\u6ca1\u6709\u542f\u7528 Source Map,\u4f46\u662f\u4f60\u53ef\u4ee5\u53c2\u8003\u8fd9\u7bc7\u6307\u5357\u6216\u8005\u89c6\u9891,\u4e86\u89e3\u5982\u4f55\u542f\u7528\u5b83\u4eec,\u5e76\u5728\u6e90\u4ee3\u7801\u7684\u6b63\u786e\u4f4d\u7f6e\u8bbe\u7f6e\u65ad\u70b9\u3002"})}),"\n",(0,n.jsx)(t.admonition,{type:"tip",children:(0,n.jsx)(t.p,{children:'\u6bcf\u6b21\u5e94\u7528\u91cd\u65b0\u52a0\u8f7d\u65f6,\u90fd\u4f1a\u521b\u5efa\u4e00\u4e2a\u65b0\u7684 JSContext\u3002\u52fe\u9009"Automatically Show Web Inspectors for JSContexts"\u53ef\u4ee5\u7701\u53bb\u4f60\u624b\u52a8\u9009\u62e9\u6700\u65b0 JSContext \u7684\u9ebb\u70e6\u3002'})}),"\n",(0,n.jsx)(t.h2,{id:"\u8fdc\u7a0b-javascript-\u8c03\u8bd5\u5df2\u5f03\u7528",children:"\u8fdc\u7a0b JavaScript \u8c03\u8bd5\uff08\u5df2\u5f03\u7528\uff09"}),"\n",(0,n.jsx)(t.admonition,{type:"warning",children:(0,n.jsx)(t.p,{children:"\u5728 React Native 0.73 \u7248\u672c\u4e2d\uff0c\u8fdc\u7a0b JavaScript \u8c03\u8bd5\u529f\u80fd\u5df2\u88ab\u5f03\u7528\uff0c\u672a\u6765\u7248\u672c\u5c06\u5f7b\u5e95\u79fb\u9664\u3002"})}),"\n",(0,n.jsx)(t.p,{children:"\u8fdc\u7a0b JavaScript \u8c03\u8bd5\u53ef\u4ee5\u5c06\u5916\u90e8\u7f51\u9875\u6d4f\u89c8\u5668\uff08Chrome\uff09\u8fde\u63a5\u5230\u4f60\u7684\u5e94\u7528\uff0c\u5e76\u5728\u7f51\u9875\u4e2d\u8fd0\u884c\u4f60\u7684 JavaScript \u4ee3\u7801\u3002\u8fd9\u4f7f\u5f97\u4f60\u53ef\u4ee5\u50cf\u8c03\u8bd5\u666e\u901a\u7f51\u9875\u5e94\u7528\u4e00\u6837\uff0c\u4f7f\u7528 Chrome \u7684\u8c03\u8bd5\u5668\u6765\u8c03\u8bd5 React Native \u5e94\u7528\u3002\u4e0d\u8fc7\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u6d4f\u89c8\u5668\u73af\u5883\u4e0e\u5e94\u7528\u73af\u5883\u53ef\u80fd\u5b58\u5728\u5f88\u5927\u5dee\u5f02\uff0c\u5e76\u975e\u6240\u6709\u7684 React Native \u6a21\u5757\u90fd\u80fd\u5728\u8fd9\u79cd\u8c03\u8bd5\u65b9\u5f0f\u4e0b\u6b63\u5e38\u5de5\u4f5c\u3002"}),"\n",(0,n.jsx)(t.h3,{id:"\u8bbe\u7f6e",children:"\u8bbe\u7f6e"}),"\n",(0,n.jsxs)(t.p,{children:["\u4ece React Native 0.73 \u5f00\u59cb\uff0c\u5fc5\u987b\u4f7f\u7528 ",(0,n.jsx)(t.code,{children:"NativeDevSettings"})," \u6a21\u5757",(0,n.jsx)(t.strong,{children:"\u624b\u52a8\u542f\u7528"}),"\u8fdc\u7a0b JavaScript \u8c03\u8bd5\u529f\u80fd\u3002"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-js",children:"import NativeDevSettings from 'react-native/Libraries/NativeModules/specs/NativeDevSettings';\n\nfunction MyApp() {\n // \u5c06\u6b64\u64cd\u4f5c\u5206\u914d\u7ed9\u53ea\u5728\u5f00\u53d1\u6a21\u5f0f\u4e0b\u663e\u793a\u7684\u6309\u94ae\u6216 useEffect \u8c03\u7528\u3002\n const connectToRemoteDebugger = () => {\n NativeDevSettings.setIsDebuggingRemotely(true);\n };\n}\n"})}),"\n",(0,n.jsxs)(t.p,{children:["\u5f53\u8c03\u7528",(0,n.jsx)(t.code,{children:"NativeDevSettings.setIsDebuggingRemotely(true)"}),"\u65f6,\u7cfb\u7edf\u4f1a\u6253\u5f00\u65b0\u7684\u6807\u7b7e\u9875",(0,n.jsx)(t.a,{href:"http://localhost:8081/debugger-ui",children:"http://localhost:8081/debugger-ui"}),"\u3002"]}),"\n",(0,n.jsx)(t.p,{children:"\u4ece\u8be5\u9875\u9762,\u4f60\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u6253\u5f00 Chrome \u5f00\u53d1\u8005\u5de5\u5177:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"View > Developer > Developer Tools"}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)("kbd",{children:"\u2325 Option"})," + ",(0,n.jsx)("kbd",{children:"Cmd \u2318"})," + ",(0,n.jsx)("kbd",{children:"I"})," (macOS) / ",(0,n.jsx)("kbd",{children:"Ctrl"})," + ",(0,n.jsx)("kbd",{children:"Shift"})," + ",(0,n.jsx)("kbd",{children:"I"})," (Windows \u548c Linux \u7cfb\u7edf)\u3002"]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"\u4f60\u53ef\u4ee5\u5728\u63a7\u5236\u53f0\u548c\u6e90\u4ee3\u7801\u9762\u677f\u4e2d\u67e5\u770b React Native \u4ee3\u7801\u3002"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"The remote debugger window in Chrome",src:r(23311).Z+"",width:"1600",height:"680"})}),"\n",(0,n.jsx)(t.admonition,{title:"\u4fe1\u606f",type:"info",children:(0,n.jsxs)(t.p,{children:["\u5728 Chrome \u8fdc\u7a0b JavaScript \u8c03\u8bd5\u5668\u4e0b,React DevTools \u7684\u7f51\u9875\u7248\u672c\u5c06\u65e0\u6cd5\u4e0e React Native \u4e00\u8d77\u4f7f\u7528\u3002\u8bf7\u53c2\u9605 ",(0,n.jsx)(t.a,{href:"./react-devtools",children:"React DevTools"})," \u6307\u5357,\u4e86\u89e3\u5982\u4f55\u4f7f\u7528\u72ec\u7acb\u7248\u672c\u7684 React DevTools\u3002"]})}),"\n",(0,n.jsx)(t.admonition,{title:"\u6ce8\u610f",type:"note",children:(0,n.jsxs)(t.p,{children:["\u5728 Android \u4e0a,\u5982\u679c\u8c03\u8bd5\u5668\u4e0e\u8bbe\u5907\u4e4b\u95f4\u7684\u65f6\u95f4\u53d1\u751f\u504f\u79fb,\u53ef\u80fd\u4f1a\u5bfc\u81f4\u52a8\u753b\u548c\u4e8b\u4ef6\u884c\u4e3a\u5f02\u5e38\u3002\u53ef\u4ee5\u901a\u8fc7\u8fd0\u884c ",(0,n.jsx)(t.code,{children:'adb shell "date '}),"date +%m%d%H%M%Y.%S%3N",(0,n.jsx)(t.code,{children:'"'})," \u547d\u4ee4\u6765\u4fee\u590d\u8fd9\u4e2a\u95ee\u9898\u3002\u5982\u679c\u4f7f\u7528\u7269\u7406\u8bbe\u5907,\u5219\u9700\u8981 root \u6743\u9650\u3002"]})}),"\n",(0,n.jsx)(t.h3,{id:"\u5728\u5b9e\u4f53\u8bbe\u5907\u4e0a\u8c03\u8bd5",children:"\u5728\u5b9e\u4f53\u8bbe\u5907\u4e0a\u8c03\u8bd5"}),"\n",(0,n.jsx)(t.admonition,{type:"info",children:(0,n.jsx)(t.p,{children:"\u5982\u679c\u60a8\u4f7f\u7528\u7684\u662f Expo CLI\uff0c\u5219\u5df2\u4e3a\u60a8\u914d\u7f6e\u597d\u4e86\u3002"})}),"\n",(0,n.jsxs)(l.Z,{groupId:"platform",defaultValue:o.Z.defaultPlatform,values:o.Z.platforms,className:"pill-tabs",children:[(0,n.jsx)(i.Z,{value:"ios",children:(0,n.jsxs)(t.p,{children:["\u5728 iOS \u8bbe\u5907\u4e0a,\u6253\u5f00\u6587\u4ef6",(0,n.jsx)(t.a,{href:"https://github.com/facebook/react-native/blob/master/packages/react-native/React/CoreModules/RCTWebSocketExecutor.mm",children:(0,n.jsx)(t.code,{children:"RCTWebSocketExecutor.mm"})}),',\u5c06"localhost"\u66ff\u6362\u4e3a\u4f60\u7535\u8111\u7684 IP \u5730\u5740\u3002']})}),(0,n.jsxs)(i.Z,{value:"android",children:[(0,n.jsxs)(t.p,{children:["\u5bf9\u4e8e\u901a\u8fc7 USB \u8fde\u63a5\u7684 Android 5.0+\u8bbe\u5907,\u60a8\u53ef\u4ee5\u4f7f\u7528",(0,n.jsxs)(t.a,{href:"http://developer.android.com/tools/help/adb.html",children:[(0,n.jsx)(t.code,{children:"adb"}),"\u547d\u4ee4\u884c\u5de5\u5177"]}),"\u5728\u8bbe\u5907\u548c\u7535\u8111\u4e4b\u95f4\u5efa\u7acb\u7aef\u53e3\u6620\u5c04:"]}),(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-sh",children:"adb reverse tcp:8081 tcp:8081\n"})})]})]}),"\n",(0,n.jsx)(t.admonition,{title:"\u6ce8\u610f",type:"note",children:(0,n.jsx)(t.p,{children:"\u5982\u679c\u60a8\u9047\u5230\u4efb\u4f55\u95ee\u9898,\u53ef\u80fd\u662f\u67d0\u4e2a Chrome \u6269\u5c55\u7a0b\u5e8f\u4e0e\u8c03\u8bd5\u5668\u6709\u4e86\u610f\u5916\u7684\u4e92\u52a8\u3002\u8bf7\u5c1d\u8bd5\u7981\u7528\u6240\u6709\u6269\u5c55\u7a0b\u5e8f\uff0c\u7136\u540e\u4e00\u4e2a\u4e2a\u91cd\u65b0\u542f\u7528\uff0c\u76f4\u5230\u627e\u5230\u6709\u95ee\u9898\u7684\u6269\u5c55\u7a0b\u5e8f\u3002"})})]})}function b(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},11674:(e,t,r)=>{r.d(t,{Z:()=>i});var n=r(63445);const a=!!n.Z.canUseDOM&&navigator.platform.startsWith("Mac"),l=!!n.Z.canUseDOM&&navigator.platform.startsWith("Win"),i={defaultGuide:"native",defaultOs:a?"macos":l?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:a?"ios":"android",defaultSyntax:"functional",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"}]}},86386:(e,t,r)=>{r.d(t,{Z:()=>p});var n=r(27378),a=r(40624);const l={tabItem:"tabItem_wHwb"};var i=Object.defineProperty,o=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable,u=(e,t,r)=>t in e?i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,d=(e,t)=>{for(var r in t||(t={}))s.call(t,r)&&u(e,r,t[r]);if(o)for(var r of o(t))c.call(t,r)&&u(e,r,t[r]);return e};function p({children:e,hidden:t,className:r}){return n.createElement("div",d({role:"tabpanel",className:(0,a.Z)(l.tabItem,r)},{hidden:t}),e)}},48375:(e,t,r)=>{r.d(t,{Z:()=>A});var n=r(27378),a=r(40624),l=r(12112),i=r(3620),o=r(69490),s=r(14953),c=r(27886),u=r(7106),d=Object.defineProperty,p=Object.defineProperties,h=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertySymbols,v=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable,m=(e,t,r)=>t in e?d(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))v.call(t,r)&&m(e,r,t[r]);if(b)for(var r of b(t))f.call(t,r)&&m(e,r,t[r]);return e},j=(e,t)=>p(e,h(t));function x(e){var t,r;return null!=(r=null==(t=n.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(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.`)})))?void 0:t.filter(Boolean))?r:[]}function y(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=null!=t?t:function(e){return x(e).map((({props:{value:e,label:t,attributes:r,default:n}})=>({value:e,label:t,attributes:r,default:n})))}(r);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,r])}function w({value:e,tabValues:t}){return t.some((t=>t.value===e))}function S({queryString:e=!1,groupId:t}){const r=(0,i.k6)(),a=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)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 null!=t?t:null}({queryString:e,groupId:t});return[(0,s._X)(a),(0,n.useCallback)((e=>{if(!a)return;const t=new URLSearchParams(r.location.search);t.set(a,e),r.replace(j(g({},r.location),{search:t.toString()}))}),[a,r])]}function O(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,l=y(e),[i,s]=(0,n.useState)((()=>function({defaultValue:e,tabValues:t}){var r;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!w({value:e,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const n=null!=(r=t.find((e=>e.default)))?r:t[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[c,d]=S({queryString:r,groupId:a}),[p,h]=function({groupId:e}){const t=function(e){return e?`docusaurus.tab.${e}`:null}(e),[r,a]=(0,u.Nk)(t);return[r,(0,n.useCallback)((e=>{t&&a.set(e)}),[t,a])]}({groupId:a}),b=(()=>{const e=null!=c?c:p;return w({value:e,tabValues:l})?e:null})();(0,o.Z)((()=>{b&&s(b)}),[b]);return{selectedValue:i,selectValue:(0,n.useCallback)((e=>{if(!w({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),d(e),h(e)}),[d,h,l]),tabValues:l}}var k=r(14185);const E={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};var C=Object.defineProperty,I=Object.defineProperties,N=Object.getOwnPropertyDescriptors,D=Object.getOwnPropertySymbols,_=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable,R=(e,t,r)=>t in e?C(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))_.call(t,r)&&R(e,r,t[r]);if(D)for(var r of D(t))T.call(t,r)&&R(e,r,t[r]);return e},V=(e,t)=>I(e,N(t));function Z({className:e,block:t,selectedValue:r,selectValue:i,tabValues:o}){const s=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),u=e=>{const t=e.currentTarget,n=s.indexOf(t),a=o[n].value;a!==r&&(c(t),i(a))},d=e=>{var t,r;let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const r=s.indexOf(e.currentTarget)+1;n=null!=(t=s[r])?t:s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;n=null!=(r=s[t])?r:s[s.length-1];break}}null==n||n.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},e)},o.map((({value:e,label:t,attributes:l})=>n.createElement("li",V(P({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,key:e,ref:e=>s.push(e),onKeyDown:d,onClick:u},l),{className:(0,a.Z)("tabs__item",E.tabItem,null==l?void 0:l.className,{"tabs__item--active":r===e})}),null!=t?t:e))))}function J({lazy:e,children:t,selectedValue:r}){const a=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){const e=a.find((e=>e.props.value===r));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},a.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function M(e){const t=O(e);return n.createElement("div",{className:(0,a.Z)("tabs-container",E.tabList)},n.createElement(Z,P(P({},e),t)),n.createElement(J,P(P({},e),t)))}function A(e){const t=(0,k.Z)();return n.createElement(M,P({key:String(t)},e),x(e.children))}},71426:(e,t,r)=>{var n=r(27378),a=Symbol.for("react.element"),l=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,o=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,r){var n,l={},c=null,u=null;for(n in void 0!==r&&(c=""+r),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,n)&&!s.hasOwnProperty(n)&&(l[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps)void 0===l[n]&&(l[n]=t[n]);return{$$typeof:a,type:e,key:c,ref:u,props:l,_owner:o.current}}t.Fragment=l,t.jsx=c,t.jsxs=c},24246:(e,t,r)=>{e.exports=r(71426)},23311:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/debugging-chrome-remote-debugger-09207af31fea81d1d97a81a0d96774ba.jpg"},26434:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/debugging-safari-developer-tools-a67219e1ea0f852bbb150c988b00c3cf.jpg"},71670:(e,t,r)=>{r.d(t,{Z:()=>o,a:()=>i});var n=r(27378);const a={},l=n.createContext(a);function i(e){const t=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/23ee098c.389038db.js b/assets/js/23ee098c.389038db.js new file mode 100644 index 00000000000..7dd34b0a8a3 --- /dev/null +++ b/assets/js/23ee098c.389038db.js @@ -0,0 +1,2 @@ +/*! For license information please see 23ee098c.389038db.js.LICENSE.txt */ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[53164],{22280:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>b,frontMatter:()=>s,metadata:()=>u,toc:()=>p});var n=r(24246),a=r(71670),l=r(48375),i=r(86386),o=r(11674);const s={id:"other-debugging-methods",title:"\u5176\u4ed6\u8c03\u8bd5\u65b9\u6cd5"},c=void 0,u={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",source:"@site/versioned_docs/version-0.74/other-debugging-methods.md",sourceDirName:".",slug:"/other-debugging-methods",permalink:"/docs/other-debugging-methods",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/other-debugging-methods.md",tags:[],version:"0.74",frontMatter:{id:"other-debugging-methods",title:"\u5176\u4ed6\u8c03\u8bd5\u65b9\u6cd5"},sidebar:"docs",previous:{title:"\u8c03\u8bd5\u53d1\u884c\u7248\u672c",permalink:"/docs/debugging-release-builds"},next:{title:"Testing",permalink:"/docs/testing-overview"}},d={},p=[{value:"Safari \u5f00\u53d1\u8005\u5de5\u5177\uff08\u76f4\u63a5\u8c03\u8bd5 JSC\uff09",id:"safari-\u5f00\u53d1\u8005\u5de5\u5177\u76f4\u63a5\u8c03\u8bd5-jsc",level:2},{value:"\u8fdc\u7a0b JavaScript \u8c03\u8bd5\uff08\u5df2\u5f03\u7528\uff09",id:"\u8fdc\u7a0b-javascript-\u8c03\u8bd5\u5df2\u5f03\u7528",level:2},{value:"\u8bbe\u7f6e",id:"\u8bbe\u7f6e",level:3},{value:"\u5728\u5b9e\u4f53\u8bbe\u5907\u4e0a\u8c03\u8bd5",id:"\u5728\u5b9e\u4f53\u8bbe\u5907\u4e0a\u8c03\u8bd5",level:3}];function h(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["\u6b64\u9875\u9762\u4ecb\u7ecd\u4e86\u9664 ",(0,n.jsx)(t.a,{href:"./debugging#opening-the-debugger",children:"\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"]}),"\n",(0,n.jsx)(t.h2,{id:"safari-\u5f00\u53d1\u8005\u5de5\u5177\u76f4\u63a5\u8c03\u8bd5-jsc",children:"Safari \u5f00\u53d1\u8005\u5de5\u5177\uff08\u76f4\u63a5\u8c03\u8bd5 JSC\uff09"}),"\n",(0,n.jsxs)(t.p,{children:["\u5f53\u4f60\u7684\u5e94\u7528\u4f7f\u7528 ",(0,n.jsx)(t.a,{href:"https://trac.webkit.org/wiki/JavaScriptCore",children:"JavaScriptCore"}),"\uff08JSC\uff09\u4f5c\u4e3a\u8fd0\u884c\u65f6\u73af\u5883\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528 Safari \u6765\u8c03\u8bd5\u5e94\u7528\u7684 iOS \u7248\u672c\u3002"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"\u4ec5\u9002\u7528\u4e8e\u7269\u7406\u8bbe\u5907"}),'\uff1a\u6253\u5f00"\u8bbe\u7f6e"\u5e94\u7528\uff0c\u5bfc\u822a\u5230 Safari > \u9ad8\u7ea7\uff0c\u786e\u4fdd"Web \u68c0\u67e5\u5668"\u5df2\u6253\u5f00\u3002']}),"\n",(0,n.jsx)(t.li,{children:'\u5728 Mac \u4e0a\uff0c\u6253\u5f00 Safari \u5e76\u542f\u7528"\u5f00\u53d1"\u83dc\u5355\u3002\u53ef\u4ee5\u5728 Safari > \u8bbe\u7f6e... \u4e0b\u627e\u5230\uff0c\u7136\u540e\u9009\u62e9"\u9ad8\u7ea7"\u9009\u9879\u5361\uff0c\u518d\u52fe\u9009"\u663e\u793a\u5f00\u53d1\u8005\u529f\u80fd"\u3002'}),"\n",(0,n.jsx)(t.li,{children:'\u5728"\u5f00\u53d1"\u83dc\u5355\u4e0b\u627e\u5230\u4f60\u7684\u8bbe\u5907\uff0c\u5e76\u4ece\u5b50\u83dc\u5355\u4e2d\u9009\u62e9"JSContext"\u9879\u3002\u8fd9\u5c06\u6253\u5f00 Safari \u7684 Web \u68c0\u67e5\u5668\uff0c\u5176\u4e2d\u5305\u62ec\u7c7b\u4f3c\u4e8e Chrome \u5f00\u53d1\u8005\u5de5\u5177\u7684\u63a7\u5236\u53f0\u548c\u6e90\u4ee3\u7801\u9762\u677f\u3002'}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Opening Safari Web Inspector",src:r(26434).Z+"",width:"1600",height:"730"})}),"\n",(0,n.jsx)(t.admonition,{type:"tip",children:(0,n.jsx)(t.p,{children:"\u867d\u7136\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u53ef\u80fd\u6ca1\u6709\u542f\u7528 Source Map,\u4f46\u662f\u4f60\u53ef\u4ee5\u53c2\u8003\u8fd9\u7bc7\u6307\u5357\u6216\u8005\u89c6\u9891,\u4e86\u89e3\u5982\u4f55\u542f\u7528\u5b83\u4eec,\u5e76\u5728\u6e90\u4ee3\u7801\u7684\u6b63\u786e\u4f4d\u7f6e\u8bbe\u7f6e\u65ad\u70b9\u3002"})}),"\n",(0,n.jsx)(t.admonition,{type:"tip",children:(0,n.jsx)(t.p,{children:'\u6bcf\u6b21\u5e94\u7528\u91cd\u65b0\u52a0\u8f7d\u65f6,\u90fd\u4f1a\u521b\u5efa\u4e00\u4e2a\u65b0\u7684 JSContext\u3002\u52fe\u9009"Automatically Show Web Inspectors for JSContexts"\u53ef\u4ee5\u7701\u53bb\u4f60\u624b\u52a8\u9009\u62e9\u6700\u65b0 JSContext \u7684\u9ebb\u70e6\u3002'})}),"\n",(0,n.jsx)(t.h2,{id:"\u8fdc\u7a0b-javascript-\u8c03\u8bd5\u5df2\u5f03\u7528",children:"\u8fdc\u7a0b JavaScript \u8c03\u8bd5\uff08\u5df2\u5f03\u7528\uff09"}),"\n",(0,n.jsx)(t.admonition,{type:"warning",children:(0,n.jsx)(t.p,{children:"\u5728 React Native 0.73 \u7248\u672c\u4e2d\uff0c\u8fdc\u7a0b JavaScript \u8c03\u8bd5\u529f\u80fd\u5df2\u88ab\u5f03\u7528\uff0c\u672a\u6765\u7248\u672c\u5c06\u5f7b\u5e95\u79fb\u9664\u3002"})}),"\n",(0,n.jsx)(t.p,{children:"\u8fdc\u7a0b JavaScript \u8c03\u8bd5\u53ef\u4ee5\u5c06\u5916\u90e8\u7f51\u9875\u6d4f\u89c8\u5668\uff08Chrome\uff09\u8fde\u63a5\u5230\u4f60\u7684\u5e94\u7528\uff0c\u5e76\u5728\u7f51\u9875\u4e2d\u8fd0\u884c\u4f60\u7684 JavaScript \u4ee3\u7801\u3002\u8fd9\u4f7f\u5f97\u4f60\u53ef\u4ee5\u50cf\u8c03\u8bd5\u666e\u901a\u7f51\u9875\u5e94\u7528\u4e00\u6837\uff0c\u4f7f\u7528 Chrome \u7684\u8c03\u8bd5\u5668\u6765\u8c03\u8bd5 React Native \u5e94\u7528\u3002\u4e0d\u8fc7\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u6d4f\u89c8\u5668\u73af\u5883\u4e0e\u5e94\u7528\u73af\u5883\u53ef\u80fd\u5b58\u5728\u5f88\u5927\u5dee\u5f02\uff0c\u5e76\u975e\u6240\u6709\u7684 React Native \u6a21\u5757\u90fd\u80fd\u5728\u8fd9\u79cd\u8c03\u8bd5\u65b9\u5f0f\u4e0b\u6b63\u5e38\u5de5\u4f5c\u3002"}),"\n",(0,n.jsx)(t.h3,{id:"\u8bbe\u7f6e",children:"\u8bbe\u7f6e"}),"\n",(0,n.jsxs)(t.p,{children:["\u4ece React Native 0.73 \u5f00\u59cb\uff0c\u5fc5\u987b\u4f7f\u7528 ",(0,n.jsx)(t.code,{children:"NativeDevSettings"})," \u6a21\u5757",(0,n.jsx)(t.strong,{children:"\u624b\u52a8\u542f\u7528"}),"\u8fdc\u7a0b JavaScript \u8c03\u8bd5\u529f\u80fd\u3002"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-js",children:"import NativeDevSettings from 'react-native/Libraries/NativeModules/specs/NativeDevSettings';\n\nfunction MyApp() {\n // \u5c06\u6b64\u64cd\u4f5c\u5206\u914d\u7ed9\u53ea\u5728\u5f00\u53d1\u6a21\u5f0f\u4e0b\u663e\u793a\u7684\u6309\u94ae\u6216 useEffect \u8c03\u7528\u3002\n const connectToRemoteDebugger = () => {\n NativeDevSettings.setIsDebuggingRemotely(true);\n };\n}\n"})}),"\n",(0,n.jsxs)(t.p,{children:["\u5f53\u8c03\u7528",(0,n.jsx)(t.code,{children:"NativeDevSettings.setIsDebuggingRemotely(true)"}),"\u65f6,\u7cfb\u7edf\u4f1a\u6253\u5f00\u65b0\u7684\u6807\u7b7e\u9875",(0,n.jsx)(t.a,{href:"http://localhost:8081/debugger-ui",children:"http://localhost:8081/debugger-ui"}),"\u3002"]}),"\n",(0,n.jsx)(t.p,{children:"\u4ece\u8be5\u9875\u9762,\u4f60\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u6253\u5f00 Chrome \u5f00\u53d1\u8005\u5de5\u5177:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"View > Developer > Developer Tools"}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)("kbd",{children:"\u2325 Option"})," + ",(0,n.jsx)("kbd",{children:"Cmd \u2318"})," + ",(0,n.jsx)("kbd",{children:"I"})," (macOS) / ",(0,n.jsx)("kbd",{children:"Ctrl"})," + ",(0,n.jsx)("kbd",{children:"Shift"})," + ",(0,n.jsx)("kbd",{children:"I"})," (Windows \u548c Linux \u7cfb\u7edf)\u3002"]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"\u4f60\u53ef\u4ee5\u5728\u63a7\u5236\u53f0\u548c\u6e90\u4ee3\u7801\u9762\u677f\u4e2d\u67e5\u770b React Native \u4ee3\u7801\u3002"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"The remote debugger window in Chrome",src:r(23311).Z+"",width:"1600",height:"680"})}),"\n",(0,n.jsx)(t.admonition,{title:"\u4fe1\u606f",type:"info",children:(0,n.jsxs)(t.p,{children:["\u5728 Chrome \u8fdc\u7a0b JavaScript \u8c03\u8bd5\u5668\u4e0b,React DevTools \u7684\u7f51\u9875\u7248\u672c\u5c06\u65e0\u6cd5\u4e0e React Native \u4e00\u8d77\u4f7f\u7528\u3002\u8bf7\u53c2\u9605 ",(0,n.jsx)(t.a,{href:"./react-devtools",children:"React DevTools"})," \u6307\u5357,\u4e86\u89e3\u5982\u4f55\u4f7f\u7528\u72ec\u7acb\u7248\u672c\u7684 React DevTools\u3002"]})}),"\n",(0,n.jsx)(t.admonition,{title:"\u6ce8\u610f",type:"note",children:(0,n.jsxs)(t.p,{children:["\u5728 Android \u4e0a,\u5982\u679c\u8c03\u8bd5\u5668\u4e0e\u8bbe\u5907\u4e4b\u95f4\u7684\u65f6\u95f4\u53d1\u751f\u504f\u79fb,\u53ef\u80fd\u4f1a\u5bfc\u81f4\u52a8\u753b\u548c\u4e8b\u4ef6\u884c\u4e3a\u5f02\u5e38\u3002\u53ef\u4ee5\u901a\u8fc7\u8fd0\u884c ",(0,n.jsx)(t.code,{children:'adb shell "date '}),"date +%m%d%H%M%Y.%S%3N",(0,n.jsx)(t.code,{children:'"'})," \u547d\u4ee4\u6765\u4fee\u590d\u8fd9\u4e2a\u95ee\u9898\u3002\u5982\u679c\u4f7f\u7528\u7269\u7406\u8bbe\u5907,\u5219\u9700\u8981 root \u6743\u9650\u3002"]})}),"\n",(0,n.jsx)(t.h3,{id:"\u5728\u5b9e\u4f53\u8bbe\u5907\u4e0a\u8c03\u8bd5",children:"\u5728\u5b9e\u4f53\u8bbe\u5907\u4e0a\u8c03\u8bd5"}),"\n",(0,n.jsx)(t.admonition,{type:"info",children:(0,n.jsx)(t.p,{children:"\u5982\u679c\u60a8\u4f7f\u7528\u7684\u662f Expo CLI\uff0c\u5219\u5df2\u4e3a\u60a8\u914d\u7f6e\u597d\u4e86\u3002"})}),"\n",(0,n.jsxs)(l.Z,{groupId:"platform",defaultValue:o.Z.defaultPlatform,values:o.Z.platforms,className:"pill-tabs",children:[(0,n.jsx)(i.Z,{value:"ios",children:(0,n.jsxs)(t.p,{children:["\u5728 iOS \u8bbe\u5907\u4e0a,\u6253\u5f00\u6587\u4ef6",(0,n.jsx)(t.a,{href:"https://github.com/facebook/react-native/blob/master/packages/react-native/React/CoreModules/RCTWebSocketExecutor.mm",children:(0,n.jsx)(t.code,{children:"RCTWebSocketExecutor.mm"})}),',\u5c06"localhost"\u66ff\u6362\u4e3a\u4f60\u7535\u8111\u7684 IP \u5730\u5740\u3002']})}),(0,n.jsxs)(i.Z,{value:"android",children:[(0,n.jsxs)(t.p,{children:["\u5bf9\u4e8e\u901a\u8fc7 USB \u8fde\u63a5\u7684 Android 5.0+\u8bbe\u5907,\u60a8\u53ef\u4ee5\u4f7f\u7528",(0,n.jsxs)(t.a,{href:"http://developer.android.com/tools/help/adb.html",children:[(0,n.jsx)(t.code,{children:"adb"}),"\u547d\u4ee4\u884c\u5de5\u5177"]}),"\u5728\u8bbe\u5907\u548c\u7535\u8111\u4e4b\u95f4\u5efa\u7acb\u7aef\u53e3\u6620\u5c04:"]}),(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-sh",children:"adb reverse tcp:8081 tcp:8081\n"})})]})]}),"\n",(0,n.jsx)(t.admonition,{title:"\u6ce8\u610f",type:"note",children:(0,n.jsx)(t.p,{children:"\u5982\u679c\u60a8\u9047\u5230\u4efb\u4f55\u95ee\u9898,\u53ef\u80fd\u662f\u67d0\u4e2a Chrome \u6269\u5c55\u7a0b\u5e8f\u4e0e\u8c03\u8bd5\u5668\u6709\u4e86\u610f\u5916\u7684\u4e92\u52a8\u3002\u8bf7\u5c1d\u8bd5\u7981\u7528\u6240\u6709\u6269\u5c55\u7a0b\u5e8f\uff0c\u7136\u540e\u4e00\u4e2a\u4e2a\u91cd\u65b0\u542f\u7528\uff0c\u76f4\u5230\u627e\u5230\u6709\u95ee\u9898\u7684\u6269\u5c55\u7a0b\u5e8f\u3002"})})]})}function b(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},11674:(e,t,r)=>{r.d(t,{Z:()=>i});var n=r(63445);const a=!!n.Z.canUseDOM&&navigator.platform.startsWith("Mac"),l=!!n.Z.canUseDOM&&navigator.platform.startsWith("Win"),i={defaultGuide:"native",defaultOs:a?"macos":l?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:a?"ios":"android",defaultSyntax:"functional",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"}]}},86386:(e,t,r)=>{r.d(t,{Z:()=>p});var n=r(27378),a=r(40624);const l={tabItem:"tabItem_wHwb"};var i=Object.defineProperty,o=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable,u=(e,t,r)=>t in e?i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,d=(e,t)=>{for(var r in t||(t={}))s.call(t,r)&&u(e,r,t[r]);if(o)for(var r of o(t))c.call(t,r)&&u(e,r,t[r]);return e};function p({children:e,hidden:t,className:r}){return n.createElement("div",d({role:"tabpanel",className:(0,a.Z)(l.tabItem,r)},{hidden:t}),e)}},48375:(e,t,r)=>{r.d(t,{Z:()=>A});var n=r(27378),a=r(40624),l=r(12112),i=r(3620),o=r(69490),s=r(14953),c=r(27886),u=r(7106),d=Object.defineProperty,p=Object.defineProperties,h=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertySymbols,v=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable,m=(e,t,r)=>t in e?d(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))v.call(t,r)&&m(e,r,t[r]);if(b)for(var r of b(t))f.call(t,r)&&m(e,r,t[r]);return e},j=(e,t)=>p(e,h(t));function x(e){var t,r;return null!=(r=null==(t=n.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(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.`)})))?void 0:t.filter(Boolean))?r:[]}function y(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=null!=t?t:function(e){return x(e).map((({props:{value:e,label:t,attributes:r,default:n}})=>({value:e,label:t,attributes:r,default:n})))}(r);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,r])}function w({value:e,tabValues:t}){return t.some((t=>t.value===e))}function S({queryString:e=!1,groupId:t}){const r=(0,i.k6)(),a=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)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 null!=t?t:null}({queryString:e,groupId:t});return[(0,s._X)(a),(0,n.useCallback)((e=>{if(!a)return;const t=new URLSearchParams(r.location.search);t.set(a,e),r.replace(j(g({},r.location),{search:t.toString()}))}),[a,r])]}function O(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,l=y(e),[i,s]=(0,n.useState)((()=>function({defaultValue:e,tabValues:t}){var r;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!w({value:e,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const n=null!=(r=t.find((e=>e.default)))?r:t[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[c,d]=S({queryString:r,groupId:a}),[p,h]=function({groupId:e}){const t=function(e){return e?`docusaurus.tab.${e}`:null}(e),[r,a]=(0,u.Nk)(t);return[r,(0,n.useCallback)((e=>{t&&a.set(e)}),[t,a])]}({groupId:a}),b=(()=>{const e=null!=c?c:p;return w({value:e,tabValues:l})?e:null})();(0,o.Z)((()=>{b&&s(b)}),[b]);return{selectedValue:i,selectValue:(0,n.useCallback)((e=>{if(!w({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),d(e),h(e)}),[d,h,l]),tabValues:l}}var k=r(14185);const E={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};var C=Object.defineProperty,I=Object.defineProperties,N=Object.getOwnPropertyDescriptors,_=Object.getOwnPropertySymbols,D=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable,P=(e,t,r)=>t in e?C(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,R=(e,t)=>{for(var r in t||(t={}))D.call(t,r)&&P(e,r,t[r]);if(_)for(var r of _(t))T.call(t,r)&&P(e,r,t[r]);return e},V=(e,t)=>I(e,N(t));function Z({className:e,block:t,selectedValue:r,selectValue:i,tabValues:o}){const s=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),u=e=>{const t=e.currentTarget,n=s.indexOf(t),a=o[n].value;a!==r&&(c(t),i(a))},d=e=>{var t,r;let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const r=s.indexOf(e.currentTarget)+1;n=null!=(t=s[r])?t:s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;n=null!=(r=s[t])?r:s[s.length-1];break}}null==n||n.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},e)},o.map((({value:e,label:t,attributes:l})=>n.createElement("li",V(R({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,key:e,ref:e=>s.push(e),onKeyDown:d,onClick:u},l),{className:(0,a.Z)("tabs__item",E.tabItem,null==l?void 0:l.className,{"tabs__item--active":r===e})}),null!=t?t:e))))}function J({lazy:e,children:t,selectedValue:r}){const a=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){const e=a.find((e=>e.props.value===r));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},a.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function M(e){const t=O(e);return n.createElement("div",{className:(0,a.Z)("tabs-container",E.tabList)},n.createElement(Z,R(R({},e),t)),n.createElement(J,R(R({},e),t)))}function A(e){const t=(0,k.Z)();return n.createElement(M,R({key:String(t)},e),x(e.children))}},71426:(e,t,r)=>{var n=r(27378),a=Symbol.for("react.element"),l=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,o=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,r){var n,l={},c=null,u=null;for(n in void 0!==r&&(c=""+r),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,n)&&!s.hasOwnProperty(n)&&(l[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps)void 0===l[n]&&(l[n]=t[n]);return{$$typeof:a,type:e,key:c,ref:u,props:l,_owner:o.current}}t.Fragment=l,t.jsx=c,t.jsxs=c},24246:(e,t,r)=>{e.exports=r(71426)},23311:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/debugging-chrome-remote-debugger-09207af31fea81d1d97a81a0d96774ba.jpg"},26434:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/debugging-safari-developer-tools-a67219e1ea0f852bbb150c988b00c3cf.jpg"},71670:(e,t,r)=>{r.d(t,{Z:()=>o,a:()=>i});var n=r(27378);const a={},l=n.createContext(a);function i(e){const t=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/23ee098c.35919a6b.js.LICENSE.txt b/assets/js/23ee098c.389038db.js.LICENSE.txt similarity index 100% rename from assets/js/23ee098c.35919a6b.js.LICENSE.txt rename to assets/js/23ee098c.389038db.js.LICENSE.txt diff --git a/assets/js/3a31669b.460f721a.js b/assets/js/3a31669b.460f721a.js deleted file mode 100644 index a4d1fe9c86f..00000000000 --- a/assets/js/3a31669b.460f721a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[2116],{26274:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"0.74","label":"0.74","banner":null,"badge":false,"noIndex":false,"className":"docs-version-0.74","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":"UI \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 \u5f00\u53d1\u8005\u5de5\u5177","href":"/docs/react-devtools","docId":"react-devtools","unlisted":false},{"type":"link","label":"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801","href":"/docs/native-debugging","docId":"native-debugging","unlisted":false},{"type":"link","label":"Debugging Release Builds","href":"/docs/debugging-release-builds","docId":"debugging-release-builds","unlisted":false},{"type":"link","label":"Other Debugging Methods","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},{"type":"link","label":"\u5728 Hermes \u4e2d\u8fdb\u884c\u6027\u80fd\u5206\u6790","href":"/docs/profile-hermes","docId":"profile-hermes","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":"\u539f\u751f\u6a21\u5757","items":[{"type":"link","label":"\u539f\u751f\u6a21\u5757\u7b80\u4ecb","href":"/docs/native-modules-intro","docId":"native-modules-intro","unlisted":false},{"type":"link","label":"Android \u539f\u751f\u6a21\u5757","href":"/docs/native-modules-android","docId":"native-modules-android","unlisted":false},{"type":"link","label":"iOS \u539f\u751f\u6a21\u5757","href":"/docs/native-modules-ios","docId":"native-modules-ios","unlisted":false},{"type":"link","label":"\u539f\u751f\u6a21\u5757\u914d\u7f6e","href":"/docs/native-modules-setup","docId":"native-modules-setup","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u539f\u751f UI \u7ec4\u4ef6","items":[{"type":"link","label":"Android \u539f\u751fUI\u7ec4\u4ef6","href":"/docs/native-components-android","docId":"native-components-android","unlisted":false},{"type":"link","label":"iOS \u539f\u751fUI\u7ec4\u4ef6","href":"/docs/native-components-ios","docId":"native-components-ios","unlisted":false},{"type":"link","label":"\u76f4\u63a5\u64cd\u4f5c","href":"/docs/direct-manipulation","docId":"direct-manipulation","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u65b0\u67b6\u6784\u4ecb\u7ecd","items":[{"type":"link","label":"\u65b0\u67b6\u6784\u4ecb\u7ecd","href":"/docs/the-new-architecture/landing-page","docId":"the-new-architecture/landing-page","unlisted":false},{"type":"link","label":"\u4e3a\u4f55\u8981\u8bbe\u8ba1\u65b0\u67b6\u6784","href":"/docs/the-new-architecture/why","docId":"the-new-architecture/why","unlisted":false},{"type":"link","label":"\u521b\u5efa\u542f\u7528\u65b0\u67b6\u6784\u7684\u5e94\u7528","href":"/docs/the-new-architecture/use-app-template","docId":"the-new-architecture/use-app-template","unlisted":false},{"type":"category","label":"\u6838\u5fc3\u8bbe\u8ba1","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u65b0\u67b6\u6784\u7684\u4e24\u5927\u652f\u67f1","href":"/docs/the-new-architecture/pillars","docId":"the-new-architecture/pillars","unlisted":false},{"type":"link","label":"TurboModules","href":"/docs/the-new-architecture/pillars-turbomodules","docId":"the-new-architecture/pillars-turbomodules","unlisted":false},{"type":"link","label":"Fabric \u7ec4\u4ef6","href":"/docs/the-new-architecture/pillars-fabric-components","docId":"the-new-architecture/pillars-fabric-components","unlisted":false},{"type":"link","label":"Codegen","href":"/docs/the-new-architecture/pillars-codegen","docId":"the-new-architecture/pillars-codegen","unlisted":false}]},{"type":"category","label":"C++","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"C++ Turbo \u539f\u751f\u6a21\u5757","href":"/docs/the-new-architecture/cxx-cxxturbomodules","docId":"the-new-architecture/cxx-cxxturbomodules","unlisted":false},{"type":"link","label":"\u652f\u6301\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b","href":"/docs/the-new-architecture/cxx-custom-types","docId":"the-new-architecture/cxx-custom-types","unlisted":false}]},{"type":"category","label":"\u5411\u540e\u517c\u5bb9\u6027","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u5411\u540e\u517c\u5bb9\u7684\u610f\u4e49","href":"/docs/the-new-architecture/backward-compatibility","docId":"the-new-architecture/backward-compatibility","unlisted":false},{"type":"link","label":"\u4f7f Turbo \u6a21\u5757\u4e0e\u4f20\u7edf\u539f\u751f\u6a21\u5757\u517c\u5bb9","href":"/docs/the-new-architecture/backward-compatibility-turbomodules","docId":"the-new-architecture/backward-compatibility-turbomodules","unlisted":false},{"type":"link","label":"\u4f7f Fabric \u7ec4\u4ef6\u4e0e\u4f20\u7edf\u539f\u751f\u7ec4\u4ef6\u517c\u5bb9","href":"/docs/the-new-architecture/backward-compatibility-fabric-components","docId":"the-new-architecture/backward-compatibility-fabric-components","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u65b0\u67b6\u6784\u8fc1\u79fb\u6307\u5357","items":[{"type":"link","label":"\u8fc1\u79fb\u5230\u65b0\u67b6\u6784","href":"/docs/new-architecture-intro","docId":"new-architecture-intro","unlisted":false},{"type":"category","label":"\u5728\u7b2c\u4e09\u65b9\u5e93\u4e2d\u542f\u7528","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u5728\u5e93\u4e2d\u542f\u7528\u7684\u9884\u5907\u5de5\u4f5c","href":"/docs/new-architecture-library-intro","docId":"new-architecture-library-intro","unlisted":false},{"type":"link","label":"\u5728 Android \u5e93\u4e2d\u542f\u7528","href":"/docs/new-architecture-library-android","docId":"new-architecture-library-android","unlisted":false},{"type":"link","label":"\u5728 iOS \u5e93\u4e2d\u542f\u7528","href":"/docs/new-architecture-library-ios","docId":"new-architecture-library-ios","unlisted":false}]},{"type":"link","label":"\u5728\u5e94\u7528\u4e2d\u542f\u7528\u7684\u9884\u5907\u5de5\u4f5c","href":"/docs/new-architecture-app-intro","docId":"new-architecture-app-intro","unlisted":false},{"type":"link","label":"React 18 \u4e0e React Native","href":"/docs/react-18-and-react-native","docId":"react-18-and-react-native","unlisted":false},{"type":"link","label":"\u5e38\u89c1\u95ee\u9898","href":"/docs/new-architecture-troubleshooting","docId":"new-architecture-troubleshooting","unlisted":false},{"type":"link","label":"Appendix","href":"/docs/new-architecture-appendix","docId":"new-architecture-appendix","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}],"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"},"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-release-builds":{"id":"debugging-release-builds","title":"Debugging Release Builds","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"},"direct-manipulation":{"id":"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"},"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-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"},"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-components-android":{"id":"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"},"native-components-ios":{"id":"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"},"native-debugging":{"id":"native-debugging","title":"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801","description":"Projects with Native Code Only","sidebar":"docs"},"native-modules-android":{"id":"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"},"native-modules-intro":{"id":"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"},"native-modules-ios":{"id":"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"},"native-modules-setup":{"id":"native-modules-setup","title":"\u539f\u751f\u6a21\u5757\u914d\u7f6e","description":"\u539f\u751f\u6a21\u5757\u901a\u5e38\u4f5c\u4e3a npm \u5305\u5206\u53d1\uff0c\u9664\u4e86\u5e38\u89c4\u7684 JavaScript \u5916\uff0c\u5b83\u4eec\u8fd8\u4f1a\u5305\u542b\u6bcf\u4e2a\u5e73\u53f0\u7684\u4e00\u4e9b\u672c\u5730\u4ee3\u7801\u3002\u8981\u4e86\u89e3\u66f4\u591a\u5173\u4e8e npm \u5305\u7684\u4fe1\u606f\uff0c\u4f60\u53ef\u80fd\u4f1a\u53d1\u73b0\u8fd9\u4e2a\u6307\u5357\u5f88\u6709\u7528\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","sidebar":"docs"},"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-appendix":{"id":"new-architecture-appendix","title":"Appendix","description":"\u4e00\u3001\u672f\u8bed","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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.","sidebar":"docs"},"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.","sidebar":"docs"},"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","sidebar":"docs"},"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":"Other Debugging Methods","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":"PressEvent object is returned in the callback as a result of user press interaction, for example onPress in Button component.","sidebar":"\u7ec4\u4ef6"},"profile-hermes":{"id":"profile-hermes","title":"\u5728 Hermes \u4e2d\u8fdb\u884c\u6027\u80fd\u5206\u6790","description":"\u4f60\u53ef\u4ee5\u4f7f\u7528Hermes\u5728React Native\u5e94\u7528\u4e2d\u53ef\u89c6\u5316JavaScript\u7684\u6027\u80fd\u3002Hermes\u662f\u4e00\u4e2a\u5c0f\u578b\u4e14\u8f7b\u91cf\u7684JavaScript\u5f15\u64ce\uff08\u4f60\u53ef\u4ee5\u5728\u8fd9\u91cc\u9605\u8bfb\u66f4\u591a\u6709\u5173\u5728React 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\u7684JavaScript\u6027\u80fd\u7684\u65b9\u5f0f\u3002","sidebar":"docs"},"profiling":{"id":"profiling","title":"Profiling","description":"Use the built-in profiler to get detailed information about work done in the JavaScript thread and main thread side-by-side. Access it by selecting Perf Monitor from the Debug menu.","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","sidebar":"docs"},"react-devtools":{"id":"react-devtools","title":"React \u5f00\u53d1\u8005\u5de5\u5177","description":"\u4f60\u53ef\u4ee5\u4f7f\u7528\u72ec\u7acb\u7248 React \u5f00\u53d1\u8005\u5de5\u5177(\u4e0d\u662f chrome \u7684\u63d2\u4ef6)\u6765\u8c03\u8bd5 React \u7ec4\u4ef6\u5c42\u6b21\u7ed3\u6784\u3002\u8981\u4f7f\u7528\u5b83\uff0c\u8bf7\u5168\u5c40\u5b89\u88c5react-devtools\u5305:","sidebar":"docs"},"react-native-gradle-plugin":{"id":"react-native-gradle-plugin","title":"React Native Gradle Plugin","description":"This guide describes how to configure the React Native Gradle Plugin (often referred as RNGP), when building your React Native application for Android.","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 accepts numeric pixel values to describe how far to extend a rectangular area. These values are added to the original area\'s size to expand it.","sidebar":"\u7ec4\u4ef6"},"rectorsize":{"id":"rectorsize","title":"RectOrSize Object Type","description":"RectOrSize accepts numeric pixel values to describe how far to extend a rectangular area. These values are added to the original area\'s size to expand it."},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","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","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","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","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","sidebar":"docs"},"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."},"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\u3002There\'s currently two ways for upgrading your React Native project: by using React Native CLI or manually with Upgrade Helper.","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":"Vibrates the device.","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/3a31669b.ec619ddd.js b/assets/js/3a31669b.ec619ddd.js new file mode 100644 index 00000000000..f431f7742cb --- /dev/null +++ b/assets/js/3a31669b.ec619ddd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[2116],{26274:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"0.74","label":"0.74","banner":null,"badge":false,"noIndex":false,"className":"docs-version-0.74","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":"UI \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 \u5f00\u53d1\u8005\u5de5\u5177","href":"/docs/react-devtools","docId":"react-devtools","unlisted":false},{"type":"link","label":"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801","href":"/docs/native-debugging","docId":"native-debugging","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},{"type":"link","label":"\u5728 Hermes \u4e2d\u8fdb\u884c\u6027\u80fd\u5206\u6790","href":"/docs/profile-hermes","docId":"profile-hermes","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":"\u539f\u751f\u6a21\u5757","items":[{"type":"link","label":"\u539f\u751f\u6a21\u5757\u7b80\u4ecb","href":"/docs/native-modules-intro","docId":"native-modules-intro","unlisted":false},{"type":"link","label":"Android \u539f\u751f\u6a21\u5757","href":"/docs/native-modules-android","docId":"native-modules-android","unlisted":false},{"type":"link","label":"iOS \u539f\u751f\u6a21\u5757","href":"/docs/native-modules-ios","docId":"native-modules-ios","unlisted":false},{"type":"link","label":"\u539f\u751f\u6a21\u5757\u914d\u7f6e","href":"/docs/native-modules-setup","docId":"native-modules-setup","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u539f\u751f UI \u7ec4\u4ef6","items":[{"type":"link","label":"Android \u539f\u751fUI\u7ec4\u4ef6","href":"/docs/native-components-android","docId":"native-components-android","unlisted":false},{"type":"link","label":"iOS \u539f\u751fUI\u7ec4\u4ef6","href":"/docs/native-components-ios","docId":"native-components-ios","unlisted":false},{"type":"link","label":"\u76f4\u63a5\u64cd\u4f5c","href":"/docs/direct-manipulation","docId":"direct-manipulation","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u65b0\u67b6\u6784\u4ecb\u7ecd","items":[{"type":"link","label":"\u65b0\u67b6\u6784\u4ecb\u7ecd","href":"/docs/the-new-architecture/landing-page","docId":"the-new-architecture/landing-page","unlisted":false},{"type":"link","label":"\u4e3a\u4f55\u8981\u8bbe\u8ba1\u65b0\u67b6\u6784","href":"/docs/the-new-architecture/why","docId":"the-new-architecture/why","unlisted":false},{"type":"link","label":"\u521b\u5efa\u542f\u7528\u65b0\u67b6\u6784\u7684\u5e94\u7528","href":"/docs/the-new-architecture/use-app-template","docId":"the-new-architecture/use-app-template","unlisted":false},{"type":"category","label":"\u6838\u5fc3\u8bbe\u8ba1","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u65b0\u67b6\u6784\u7684\u4e24\u5927\u652f\u67f1","href":"/docs/the-new-architecture/pillars","docId":"the-new-architecture/pillars","unlisted":false},{"type":"link","label":"TurboModules","href":"/docs/the-new-architecture/pillars-turbomodules","docId":"the-new-architecture/pillars-turbomodules","unlisted":false},{"type":"link","label":"Fabric \u7ec4\u4ef6","href":"/docs/the-new-architecture/pillars-fabric-components","docId":"the-new-architecture/pillars-fabric-components","unlisted":false},{"type":"link","label":"Codegen","href":"/docs/the-new-architecture/pillars-codegen","docId":"the-new-architecture/pillars-codegen","unlisted":false}]},{"type":"category","label":"C++","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"C++ Turbo \u539f\u751f\u6a21\u5757","href":"/docs/the-new-architecture/cxx-cxxturbomodules","docId":"the-new-architecture/cxx-cxxturbomodules","unlisted":false},{"type":"link","label":"\u652f\u6301\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b","href":"/docs/the-new-architecture/cxx-custom-types","docId":"the-new-architecture/cxx-custom-types","unlisted":false}]},{"type":"category","label":"\u5411\u540e\u517c\u5bb9\u6027","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u5411\u540e\u517c\u5bb9\u7684\u610f\u4e49","href":"/docs/the-new-architecture/backward-compatibility","docId":"the-new-architecture/backward-compatibility","unlisted":false},{"type":"link","label":"\u4f7f Turbo \u6a21\u5757\u4e0e\u4f20\u7edf\u539f\u751f\u6a21\u5757\u517c\u5bb9","href":"/docs/the-new-architecture/backward-compatibility-turbomodules","docId":"the-new-architecture/backward-compatibility-turbomodules","unlisted":false},{"type":"link","label":"\u4f7f Fabric \u7ec4\u4ef6\u4e0e\u4f20\u7edf\u539f\u751f\u7ec4\u4ef6\u517c\u5bb9","href":"/docs/the-new-architecture/backward-compatibility-fabric-components","docId":"the-new-architecture/backward-compatibility-fabric-components","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u65b0\u67b6\u6784\u8fc1\u79fb\u6307\u5357","items":[{"type":"link","label":"\u8fc1\u79fb\u5230\u65b0\u67b6\u6784","href":"/docs/new-architecture-intro","docId":"new-architecture-intro","unlisted":false},{"type":"category","label":"\u5728\u7b2c\u4e09\u65b9\u5e93\u4e2d\u542f\u7528","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u5728\u5e93\u4e2d\u542f\u7528\u7684\u9884\u5907\u5de5\u4f5c","href":"/docs/new-architecture-library-intro","docId":"new-architecture-library-intro","unlisted":false},{"type":"link","label":"\u5728 Android \u5e93\u4e2d\u542f\u7528","href":"/docs/new-architecture-library-android","docId":"new-architecture-library-android","unlisted":false},{"type":"link","label":"\u5728 iOS \u5e93\u4e2d\u542f\u7528","href":"/docs/new-architecture-library-ios","docId":"new-architecture-library-ios","unlisted":false}]},{"type":"link","label":"\u5728\u5e94\u7528\u4e2d\u542f\u7528\u7684\u9884\u5907\u5de5\u4f5c","href":"/docs/new-architecture-app-intro","docId":"new-architecture-app-intro","unlisted":false},{"type":"link","label":"React 18 \u4e0e React Native","href":"/docs/react-18-and-react-native","docId":"react-18-and-react-native","unlisted":false},{"type":"link","label":"\u5e38\u89c1\u95ee\u9898","href":"/docs/new-architecture-troubleshooting","docId":"new-architecture-troubleshooting","unlisted":false},{"type":"link","label":"Appendix","href":"/docs/new-architecture-appendix","docId":"new-architecture-appendix","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}],"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"},"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-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"},"direct-manipulation":{"id":"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"},"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-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"},"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-components-android":{"id":"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"},"native-components-ios":{"id":"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"},"native-debugging":{"id":"native-debugging","title":"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801","description":"Projects with Native Code Only","sidebar":"docs"},"native-modules-android":{"id":"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"},"native-modules-intro":{"id":"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"},"native-modules-ios":{"id":"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"},"native-modules-setup":{"id":"native-modules-setup","title":"\u539f\u751f\u6a21\u5757\u914d\u7f6e","description":"\u539f\u751f\u6a21\u5757\u901a\u5e38\u4f5c\u4e3a npm \u5305\u5206\u53d1\uff0c\u9664\u4e86\u5e38\u89c4\u7684 JavaScript \u5916\uff0c\u5b83\u4eec\u8fd8\u4f1a\u5305\u542b\u6bcf\u4e2a\u5e73\u53f0\u7684\u4e00\u4e9b\u672c\u5730\u4ee3\u7801\u3002\u8981\u4e86\u89e3\u66f4\u591a\u5173\u4e8e npm \u5305\u7684\u4fe1\u606f\uff0c\u4f60\u53ef\u80fd\u4f1a\u53d1\u73b0\u8fd9\u4e2a\u6307\u5357\u5f88\u6709\u7528\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","sidebar":"docs"},"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-appendix":{"id":"new-architecture-appendix","title":"Appendix","description":"\u4e00\u3001\u672f\u8bed","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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.","sidebar":"docs"},"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.","sidebar":"docs"},"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","sidebar":"docs"},"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":"PressEvent object is returned in the callback as a result of user press interaction, for example onPress in Button component.","sidebar":"\u7ec4\u4ef6"},"profile-hermes":{"id":"profile-hermes","title":"\u5728 Hermes \u4e2d\u8fdb\u884c\u6027\u80fd\u5206\u6790","description":"\u4f60\u53ef\u4ee5\u4f7f\u7528Hermes\u5728React Native\u5e94\u7528\u4e2d\u53ef\u89c6\u5316JavaScript\u7684\u6027\u80fd\u3002Hermes\u662f\u4e00\u4e2a\u5c0f\u578b\u4e14\u8f7b\u91cf\u7684JavaScript\u5f15\u64ce\uff08\u4f60\u53ef\u4ee5\u5728\u8fd9\u91cc\u9605\u8bfb\u66f4\u591a\u6709\u5173\u5728React 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\u7684JavaScript\u6027\u80fd\u7684\u65b9\u5f0f\u3002","sidebar":"docs"},"profiling":{"id":"profiling","title":"Profiling","description":"Use the built-in profiler to get detailed information about work done in the JavaScript thread and main thread side-by-side. Access it by selecting Perf Monitor from the Debug menu.","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","sidebar":"docs"},"react-devtools":{"id":"react-devtools","title":"React \u5f00\u53d1\u8005\u5de5\u5177","description":"\u4f60\u53ef\u4ee5\u4f7f\u7528\u72ec\u7acb\u7248 React \u5f00\u53d1\u8005\u5de5\u5177(\u4e0d\u662f chrome \u7684\u63d2\u4ef6)\u6765\u8c03\u8bd5 React \u7ec4\u4ef6\u5c42\u6b21\u7ed3\u6784\u3002\u8981\u4f7f\u7528\u5b83\uff0c\u8bf7\u5168\u5c40\u5b89\u88c5react-devtools\u5305:","sidebar":"docs"},"react-native-gradle-plugin":{"id":"react-native-gradle-plugin","title":"React Native Gradle Plugin","description":"This guide describes how to configure the React Native Gradle Plugin (often referred as RNGP), when building your React Native application for Android.","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 accepts numeric pixel values to describe how far to extend a rectangular area. These values are added to the original area\'s size to expand it.","sidebar":"\u7ec4\u4ef6"},"rectorsize":{"id":"rectorsize","title":"RectOrSize Object Type","description":"RectOrSize accepts numeric pixel values to describe how far to extend a rectangular area. These values are added to the original area\'s size to expand it."},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","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","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","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","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","sidebar":"docs"},"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."},"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\u3002There\'s currently two ways for upgrading your React Native project: by using React Native CLI or manually with Upgrade Helper.","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":"Vibrates the device.","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/66494347.1e0b7825.js b/assets/js/66494347.1e0b7825.js deleted file mode 100644 index 4d416a79bf7..00000000000 --- a/assets/js/66494347.1e0b7825.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 66494347.1e0b7825.js.LICENSE.txt */ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[59754],{28998:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var r=n(24246),a=n(71670);n(48375),n(86386),n(11674);const l={id:"native-debugging",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"},o=void 0,i={id:"native-debugging",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",description:"Projects with Native Code Only",source:"@site/versioned_docs/version-0.74/native-debugging.md",sourceDirName:".",slug:"/native-debugging",permalink:"/docs/native-debugging",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/native-debugging.md",tags:[],version:"0.74",frontMatter:{id:"native-debugging",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"},sidebar:"docs",previous:{title:"React \u5f00\u53d1\u8005\u5de5\u5177",permalink:"/docs/react-devtools"},next:{title:"Debugging Release Builds",permalink:"/docs/debugging-release-builds"}},s={},u=[{value:"\u8bbf\u95ee\u63a7\u5236\u53f0\u65e5\u5fd7",id:"\u8bbf\u95ee\u63a7\u5236\u53f0\u65e5\u5fd7",level:2},{value:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",id:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",level:2}];function c(e){const t={admonition:"admonition",code:"code",h2:"h2",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"banner-native-code-required",children:[(0,r.jsx)("h3",{children:"Projects with Native Code Only"}),(0,r.jsx)("p",{children:(0,r.jsxs)(t.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,r.jsx)("a",{href:"https://docs.expo.dev/workflow/prebuild/",target:"_blank",children:"prebuild"})," to use this API."]})})]}),"\n",(0,r.jsx)(t.h2,{id:"\u8bbf\u95ee\u63a7\u5236\u53f0\u65e5\u5fd7",children:"\u8bbf\u95ee\u63a7\u5236\u53f0\u65e5\u5fd7"}),"\n",(0,r.jsx)(t.p,{children:"\u5728\u8fd0\u884c RN \u5e94\u7528\u65f6\uff0c\u53ef\u4ee5\u5728\u7ec8\u7aef\u4e2d\u8fd0\u884c\u5982\u4e0b\u547d\u4ee4\u6765\u67e5\u770b\u63a7\u5236\u53f0\u7684\u65e5\u5fd7\uff1a"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-sh",children:"$ npx react-native log-ios\n$ npx react-native log-android\n"})}),"\n",(0,r.jsxs)(t.p,{children:["\u6b64\u5916\uff0c\u4f60\u4e5f\u53ef\u4ee5\u5728 iOS \u6a21\u62df\u5668\u7684\u83dc\u5355\u4e2d\u9009\u62e9",(0,r.jsx)(t.code,{children:"Debug \u2192 Open System Log..."}),"\u6765\u67e5\u770b\u3002\u5982\u679c\u662f Android \u5e94\u7528\uff0c\u65e0\u8bba\u662f\u8fd0\u884c\u5728\u6a21\u62df\u5668\u6216\u662f\u771f\u673a\u4e0a\uff0c\u90fd\u53ef\u4ee5\u901a\u8fc7\u5728\u7ec8\u7aef\u547d\u4ee4\u884c\u91cc\u8fd0\u884c",(0,r.jsx)(t.code,{children:"adb logcat *:S ReactNative:V ReactNativeJS:V"}),"\u547d\u4ee4\u6765\u67e5\u770b\u3002"]}),"\n",(0,r.jsx)(t.admonition,{type:"info",children:(0,r.jsx)(t.p,{children:"If you're using Expo CLI, console logs already appear in the same terminal output as the bundler."})}),"\n",(0,r.jsx)(t.h2,{id:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",children:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"}),"\n",(0,r.jsx)(t.p,{children:"\u5728\u548c\u539f\u751f\u4ee3\u7801\u6253\u4ea4\u9053\u65f6\uff08\u6bd4\u5982\u7f16\u5199\u539f\u751f\u6a21\u5757\uff09\uff0c\u53ef\u4ee5\u76f4\u63a5\u4ece Android Studio \u6216\u662f Xcode \u4e2d\u542f\u52a8\u5e94\u7528\uff0c\u5e76\u5229\u7528\u8fd9\u4e9b IDE \u7684\u5185\u7f6e\u529f\u80fd\u6765\u8c03\u8bd5\uff08\u6bd4\u5982\u8bbe\u7f6e\u65ad\u70b9\uff09\u3002\u8fd9\u4e00\u65b9\u9762\u548c\u5f00\u53d1\u539f\u751f\u5e94\u7528\u5e76\u65e0\u4e8c\u81f4\u3002"})]})}function d(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},11674:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(63445);const a=!!r.Z.canUseDOM&&navigator.platform.startsWith("Mac"),l=!!r.Z.canUseDOM&&navigator.platform.startsWith("Win"),o={defaultGuide:"native",defaultOs:a?"macos":l?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:a?"ios":"android",defaultSyntax:"functional",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"}]}},86386:(e,t,n)=>{n.d(t,{Z:()=>p});var r=n(27378),a=n(40624);const l={tabItem:"tabItem_wHwb"};var o=Object.defineProperty,i=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable,c=(e,t,n)=>t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,d=(e,t)=>{for(var n in t||(t={}))s.call(t,n)&&c(e,n,t[n]);if(i)for(var n of i(t))u.call(t,n)&&c(e,n,t[n]);return e};function p({children:e,hidden:t,className:n}){return r.createElement("div",d({role:"tabpanel",className:(0,a.Z)(l.tabItem,n)},{hidden:t}),e)}},48375:(e,t,n)=>{n.d(t,{Z:()=>L});var r=n(27378),a=n(40624),l=n(12112),o=n(3620),i=n(69490),s=n(14953),u=n(27886),c=n(7106),d=Object.defineProperty,p=Object.defineProperties,b=Object.getOwnPropertyDescriptors,f=Object.getOwnPropertySymbols,v=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable,h=(e,t,n)=>t in e?d(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,g=(e,t)=>{for(var n in t||(t={}))v.call(t,n)&&h(e,n,t[n]);if(f)for(var n of f(t))m.call(t,n)&&h(e,n,t[n]);return e},y=(e,t)=>p(e,b(t));function w(e){var t,n;return null!=(n=null==(t=r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(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.`)})))?void 0:t.filter(Boolean))?n:[]}function O(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=null!=t?t:function(e){return w(e).map((({props:{value:e,label:t,attributes:n,default:r}})=>({value:e,label:t,attributes:n,default:r})))}(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function j({value:e,tabValues:t}){return t.some((t=>t.value===e))}function x({queryString:e=!1,groupId:t}){const n=(0,o.k6)(),a=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)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 null!=t?t:null}({queryString:e,groupId:t});return[(0,s._X)(a),(0,r.useCallback)((e=>{if(!a)return;const t=new URLSearchParams(n.location.search);t.set(a,e),n.replace(y(g({},n.location),{search:t.toString()}))}),[a,n])]}function E(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=O(e),[o,s]=(0,r.useState)((()=>function({defaultValue:e,tabValues:t}){var n;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!j({value:e,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const r=null!=(n=t.find((e=>e.default)))?n:t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[u,d]=x({queryString:n,groupId:a}),[p,b]=function({groupId:e}){const t=function(e){return e?`docusaurus.tab.${e}`:null}(e),[n,a]=(0,c.Nk)(t);return[n,(0,r.useCallback)((e=>{t&&a.set(e)}),[t,a])]}({groupId:a}),f=(()=>{const e=null!=u?u:p;return j({value:e,tabValues:l})?e:null})();(0,i.Z)((()=>{f&&s(f)}),[f]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!j({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),d(e),b(e)}),[d,b,l]),tabValues:l}}var k=n(14185);const I={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};var _=Object.defineProperty,S=Object.defineProperties,P=Object.getOwnPropertyDescriptors,N=Object.getOwnPropertySymbols,V=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable,D=(e,t,n)=>t in e?_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,C=(e,t)=>{for(var n in t||(t={}))V.call(t,n)&&D(e,n,t[n]);if(N)for(var n of N(t))T.call(t,n)&&D(e,n,t[n]);return e},q=(e,t)=>S(e,P(t));function A({className:e,block:t,selectedValue:n,selectValue:o,tabValues:i}){const s=[],{blockElementScrollPositionUntilNextRender:u}=(0,l.o5)(),c=e=>{const t=e.currentTarget,r=s.indexOf(t),a=i[r].value;a!==n&&(u(t),o(a))},d=e=>{var t,n;let r=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const n=s.indexOf(e.currentTarget)+1;r=null!=(t=s[n])?t:s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;r=null!=(n=s[t])?n:s[s.length-1];break}}null==r||r.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},e)},i.map((({value:e,label:t,attributes:l})=>r.createElement("li",q(C({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,key:e,ref:e=>s.push(e),onKeyDown:d,onClick:c},l),{className:(0,a.Z)("tabs__item",I.tabItem,null==l?void 0:l.className,{"tabs__item--active":n===e})}),null!=t?t:e))))}function R({lazy:e,children:t,selectedValue:n}){const a=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){const e=a.find((e=>e.props.value===n));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},a.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function Z(e){const t=E(e);return r.createElement("div",{className:(0,a.Z)("tabs-container",I.tabList)},r.createElement(A,C(C({},e),t)),r.createElement(R,C(C({},e),t)))}function L(e){const t=(0,k.Z)();return r.createElement(Z,C({key:String(t)},e),w(e.children))}},71426:(e,t,n)=>{var r=n(27378),a=Symbol.for("react.element"),l=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,i=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,l={},u=null,c=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(c=t.ref),t)o.call(t,r)&&!s.hasOwnProperty(r)&&(l[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===l[r]&&(l[r]=t[r]);return{$$typeof:a,type:e,key:u,ref:c,props:l,_owner:i.current}}t.Fragment=l,t.jsx=u,t.jsxs=u},24246:(e,t,n)=>{e.exports=n(71426)},71670:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>o});var r=n(27378);const a={},l=r.createContext(a);function o(e){const t=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/66494347.b2b332b8.js b/assets/js/66494347.b2b332b8.js new file mode 100644 index 00000000000..60986f2ef49 --- /dev/null +++ b/assets/js/66494347.b2b332b8.js @@ -0,0 +1,2 @@ +/*! For license information please see 66494347.b2b332b8.js.LICENSE.txt */ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[59754],{28998:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var r=n(24246),a=n(71670);n(48375),n(86386),n(11674);const l={id:"native-debugging",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"},o=void 0,i={id:"native-debugging",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",description:"Projects with Native Code Only",source:"@site/versioned_docs/version-0.74/native-debugging.md",sourceDirName:".",slug:"/native-debugging",permalink:"/docs/native-debugging",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/native-debugging.md",tags:[],version:"0.74",frontMatter:{id:"native-debugging",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"},sidebar:"docs",previous:{title:"React \u5f00\u53d1\u8005\u5de5\u5177",permalink:"/docs/react-devtools"},next:{title:"\u8c03\u8bd5\u53d1\u884c\u7248\u672c",permalink:"/docs/debugging-release-builds"}},s={},u=[{value:"\u8bbf\u95ee\u63a7\u5236\u53f0\u65e5\u5fd7",id:"\u8bbf\u95ee\u63a7\u5236\u53f0\u65e5\u5fd7",level:2},{value:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",id:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",level:2}];function c(e){const t={admonition:"admonition",code:"code",h2:"h2",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"banner-native-code-required",children:[(0,r.jsx)("h3",{children:"Projects with Native Code Only"}),(0,r.jsx)("p",{children:(0,r.jsxs)(t.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,r.jsx)("a",{href:"https://docs.expo.dev/workflow/prebuild/",target:"_blank",children:"prebuild"})," to use this API."]})})]}),"\n",(0,r.jsx)(t.h2,{id:"\u8bbf\u95ee\u63a7\u5236\u53f0\u65e5\u5fd7",children:"\u8bbf\u95ee\u63a7\u5236\u53f0\u65e5\u5fd7"}),"\n",(0,r.jsx)(t.p,{children:"\u5728\u8fd0\u884c RN \u5e94\u7528\u65f6\uff0c\u53ef\u4ee5\u5728\u7ec8\u7aef\u4e2d\u8fd0\u884c\u5982\u4e0b\u547d\u4ee4\u6765\u67e5\u770b\u63a7\u5236\u53f0\u7684\u65e5\u5fd7\uff1a"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-sh",children:"$ npx react-native log-ios\n$ npx react-native log-android\n"})}),"\n",(0,r.jsxs)(t.p,{children:["\u6b64\u5916\uff0c\u4f60\u4e5f\u53ef\u4ee5\u5728 iOS \u6a21\u62df\u5668\u7684\u83dc\u5355\u4e2d\u9009\u62e9",(0,r.jsx)(t.code,{children:"Debug \u2192 Open System Log..."}),"\u6765\u67e5\u770b\u3002\u5982\u679c\u662f Android \u5e94\u7528\uff0c\u65e0\u8bba\u662f\u8fd0\u884c\u5728\u6a21\u62df\u5668\u6216\u662f\u771f\u673a\u4e0a\uff0c\u90fd\u53ef\u4ee5\u901a\u8fc7\u5728\u7ec8\u7aef\u547d\u4ee4\u884c\u91cc\u8fd0\u884c",(0,r.jsx)(t.code,{children:"adb logcat *:S ReactNative:V ReactNativeJS:V"}),"\u547d\u4ee4\u6765\u67e5\u770b\u3002"]}),"\n",(0,r.jsx)(t.admonition,{type:"info",children:(0,r.jsx)(t.p,{children:"If you're using Expo CLI, console logs already appear in the same terminal output as the bundler."})}),"\n",(0,r.jsx)(t.h2,{id:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",children:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"}),"\n",(0,r.jsx)(t.p,{children:"\u5728\u548c\u539f\u751f\u4ee3\u7801\u6253\u4ea4\u9053\u65f6\uff08\u6bd4\u5982\u7f16\u5199\u539f\u751f\u6a21\u5757\uff09\uff0c\u53ef\u4ee5\u76f4\u63a5\u4ece Android Studio \u6216\u662f Xcode \u4e2d\u542f\u52a8\u5e94\u7528\uff0c\u5e76\u5229\u7528\u8fd9\u4e9b IDE \u7684\u5185\u7f6e\u529f\u80fd\u6765\u8c03\u8bd5\uff08\u6bd4\u5982\u8bbe\u7f6e\u65ad\u70b9\uff09\u3002\u8fd9\u4e00\u65b9\u9762\u548c\u5f00\u53d1\u539f\u751f\u5e94\u7528\u5e76\u65e0\u4e8c\u81f4\u3002"})]})}function d(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},11674:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(63445);const a=!!r.Z.canUseDOM&&navigator.platform.startsWith("Mac"),l=!!r.Z.canUseDOM&&navigator.platform.startsWith("Win"),o={defaultGuide:"native",defaultOs:a?"macos":l?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:a?"ios":"android",defaultSyntax:"functional",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"}]}},86386:(e,t,n)=>{n.d(t,{Z:()=>p});var r=n(27378),a=n(40624);const l={tabItem:"tabItem_wHwb"};var o=Object.defineProperty,i=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable,c=(e,t,n)=>t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,d=(e,t)=>{for(var n in t||(t={}))s.call(t,n)&&c(e,n,t[n]);if(i)for(var n of i(t))u.call(t,n)&&c(e,n,t[n]);return e};function p({children:e,hidden:t,className:n}){return r.createElement("div",d({role:"tabpanel",className:(0,a.Z)(l.tabItem,n)},{hidden:t}),e)}},48375:(e,t,n)=>{n.d(t,{Z:()=>L});var r=n(27378),a=n(40624),l=n(12112),o=n(3620),i=n(69490),s=n(14953),u=n(27886),c=n(7106),d=Object.defineProperty,p=Object.defineProperties,b=Object.getOwnPropertyDescriptors,f=Object.getOwnPropertySymbols,v=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable,h=(e,t,n)=>t in e?d(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,g=(e,t)=>{for(var n in t||(t={}))v.call(t,n)&&h(e,n,t[n]);if(f)for(var n of f(t))m.call(t,n)&&h(e,n,t[n]);return e},y=(e,t)=>p(e,b(t));function w(e){var t,n;return null!=(n=null==(t=r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(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.`)})))?void 0:t.filter(Boolean))?n:[]}function O(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=null!=t?t:function(e){return w(e).map((({props:{value:e,label:t,attributes:n,default:r}})=>({value:e,label:t,attributes:n,default:r})))}(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function j({value:e,tabValues:t}){return t.some((t=>t.value===e))}function x({queryString:e=!1,groupId:t}){const n=(0,o.k6)(),a=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)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 null!=t?t:null}({queryString:e,groupId:t});return[(0,s._X)(a),(0,r.useCallback)((e=>{if(!a)return;const t=new URLSearchParams(n.location.search);t.set(a,e),n.replace(y(g({},n.location),{search:t.toString()}))}),[a,n])]}function E(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=O(e),[o,s]=(0,r.useState)((()=>function({defaultValue:e,tabValues:t}){var n;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!j({value:e,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const r=null!=(n=t.find((e=>e.default)))?n:t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[u,d]=x({queryString:n,groupId:a}),[p,b]=function({groupId:e}){const t=function(e){return e?`docusaurus.tab.${e}`:null}(e),[n,a]=(0,c.Nk)(t);return[n,(0,r.useCallback)((e=>{t&&a.set(e)}),[t,a])]}({groupId:a}),f=(()=>{const e=null!=u?u:p;return j({value:e,tabValues:l})?e:null})();(0,i.Z)((()=>{f&&s(f)}),[f]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!j({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),d(e),b(e)}),[d,b,l]),tabValues:l}}var k=n(14185);const I={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};var _=Object.defineProperty,S=Object.defineProperties,P=Object.getOwnPropertyDescriptors,N=Object.getOwnPropertySymbols,V=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable,C=(e,t,n)=>t in e?_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,D=(e,t)=>{for(var n in t||(t={}))V.call(t,n)&&C(e,n,t[n]);if(N)for(var n of N(t))T.call(t,n)&&C(e,n,t[n]);return e},q=(e,t)=>S(e,P(t));function A({className:e,block:t,selectedValue:n,selectValue:o,tabValues:i}){const s=[],{blockElementScrollPositionUntilNextRender:u}=(0,l.o5)(),c=e=>{const t=e.currentTarget,r=s.indexOf(t),a=i[r].value;a!==n&&(u(t),o(a))},d=e=>{var t,n;let r=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const n=s.indexOf(e.currentTarget)+1;r=null!=(t=s[n])?t:s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;r=null!=(n=s[t])?n:s[s.length-1];break}}null==r||r.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},e)},i.map((({value:e,label:t,attributes:l})=>r.createElement("li",q(D({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,key:e,ref:e=>s.push(e),onKeyDown:d,onClick:c},l),{className:(0,a.Z)("tabs__item",I.tabItem,null==l?void 0:l.className,{"tabs__item--active":n===e})}),null!=t?t:e))))}function R({lazy:e,children:t,selectedValue:n}){const a=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){const e=a.find((e=>e.props.value===n));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},a.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function Z(e){const t=E(e);return r.createElement("div",{className:(0,a.Z)("tabs-container",I.tabList)},r.createElement(A,D(D({},e),t)),r.createElement(R,D(D({},e),t)))}function L(e){const t=(0,k.Z)();return r.createElement(Z,D({key:String(t)},e),w(e.children))}},71426:(e,t,n)=>{var r=n(27378),a=Symbol.for("react.element"),l=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,i=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,l={},u=null,c=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(c=t.ref),t)o.call(t,r)&&!s.hasOwnProperty(r)&&(l[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===l[r]&&(l[r]=t[r]);return{$$typeof:a,type:e,key:u,ref:c,props:l,_owner:i.current}}t.Fragment=l,t.jsx=u,t.jsxs=u},24246:(e,t,n)=>{e.exports=n(71426)},71670:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>o});var r=n(27378);const a={},l=r.createContext(a);function o(e){const t=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/66494347.1e0b7825.js.LICENSE.txt b/assets/js/66494347.b2b332b8.js.LICENSE.txt similarity index 100% rename from assets/js/66494347.1e0b7825.js.LICENSE.txt rename to assets/js/66494347.b2b332b8.js.LICENSE.txt diff --git a/assets/js/6ad22d2d.92363721.js b/assets/js/6ad22d2d.92363721.js new file mode 100644 index 00000000000..326cd9f9ff4 --- /dev/null +++ b/assets/js/6ad22d2d.92363721.js @@ -0,0 +1,2 @@ +/*! For license information please see 6ad22d2d.92363721.js.LICENSE.txt */ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[72508],{77238:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>u,default:()=>b,frontMatter:()=>s,metadata:()=>c,toc:()=>p});var t=r(24246),a=r(71670),l=r(48375),o=r(86386),i=r(11674);const s={id:"debugging-release-builds",title:"\u8c03\u8bd5\u53d1\u884c\u7248\u672c"},u=void 0,c={id:"debugging-release-builds",title:"\u8c03\u8bd5\u53d1\u884c\u7248\u672c",description:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a",source:"@site/versioned_docs/version-0.74/debugging-release-builds.md",sourceDirName:".",slug:"/debugging-release-builds",permalink:"/docs/debugging-release-builds",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/debugging-release-builds.md",tags:[],version:"0.74",frontMatter:{id:"debugging-release-builds",title:"\u8c03\u8bd5\u53d1\u884c\u7248\u672c"},sidebar:"docs",previous:{title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",permalink:"/docs/native-debugging"},next:{title:"\u5176\u4ed6\u8c03\u8bd5\u65b9\u6cd5",permalink:"/docs/other-debugging-methods"}},d={},p=[{value:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a",id:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a",level:2},{value:"\u542f\u7528\u6e90\u6620\u5c04\uff08source map\uff09",id:"\u542f\u7528\u6e90\u6620\u5c04source-map",level:3},{value:"\u4f7f\u7528 metro-symbolicate",id:"\u4f7f\u7528-metro-symbolicate",level:3},{value:"\u6e90\u6620\u5c04\u6ce8\u610f\u4e8b\u9879",id:"\u6e90\u6620\u5c04\u6ce8\u610f\u4e8b\u9879",level:3}];function m(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a",children:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a"}),"\n",(0,t.jsx)(n.p,{children:"\u5728\u53d1\u5e03\u7248\u672c\u4e2d\uff0cReact Native \u5e94\u7528\u5982\u679c\u89e6\u53d1\u4e86\u672a\u5904\u7406\u7684\u5f02\u5e38\uff0c\u5176\u8f93\u51fa\u53ef\u80fd\u4f1a\u88ab\u6df7\u6dc6\u5e76\u4e14\u96be\u4ee5\u9605\u8bfb\u3002"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"07-15 10:58:25.820 18979 18998 E AndroidRuntime: FATAL EXCEPTION: mqt_native_modules\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: Process: com.awesomeproject, PID: 18979 07-15 10:58:25.820 18979 18998 E AndroidRuntime: com.facebook.react.common.JavascriptException: Failed, js engine: hermes, stack:\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: p@1:132161\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: p@1:132084\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: f@1:131854\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: anonymous@1:131119\n"})}),"\n",(0,t.jsxs)(n.p,{children:["\u5728\u4e0a\u8ff0\u5806\u6808\u8ddf\u8e2a\u4e2d\uff0c\u7c7b\u4f3c",(0,t.jsx)(n.code,{children:"p@1:132161"}),"\u7684\u6761\u76ee\u662f\u7ecf\u8fc7\u538b\u7f29\u7684\u51fd\u6570\u540d\u79f0\u548c\u5b57\u8282\u7801\u504f\u79fb\u91cf\u3002\u4e3a\u4e86\u8c03\u8bd5\u8fd9\u4e9b\u8c03\u7528\uff0c\u6211\u4eec\u5e0c\u671b\u5c06\u5b83\u4eec\u8f6c\u6362\u4e3a\u6587\u4ef6\u3001\u884c\u548c\u51fd\u6570\u540d\u79f0\uff0c\u4f8b\u5982",(0,t.jsx)(n.code,{children:"AwesomeProject/App.js:54:initializeMap"}),"\u3002\u8fd9\u88ab\u79f0\u4e3a",(0,t.jsx)(n.strong,{children:"\u7b26\u53f7\u5316"}),"\u3002"]}),"\n",(0,t.jsxs)(n.p,{children:["\u60a8\u53ef\u4ee5\u901a\u8fc7\u5c06\u5806\u6808\u8ddf\u8e2a\u548c\u751f\u6210\u7684\u6e90\u6620\u5c04\u4f20\u9012\u7ed9",(0,t.jsx)(n.a,{href:"http://npmjs.com/package/metro-symbolicate",children:(0,t.jsx)(n.code,{children:"metro-symbolicate"})}),"\u6765\u5bf9\u4e0a\u8ff0\u7c7b\u4f3c\u7684\u7ecf\u8fc7\u538b\u7f29\u7684\u51fd\u6570\u540d\u79f0\u548c\u5b57\u8282\u7801\u8fdb\u884c\u7b26\u53f7\u5316\u3002"]}),"\n",(0,t.jsx)(n.h3,{id:"\u542f\u7528\u6e90\u6620\u5c04source-map",children:"\u542f\u7528\u6e90\u6620\u5c04\uff08source map\uff09"}),"\n",(0,t.jsx)(n.p,{children:"\u6e90\u6620\u5c04\u662f\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a\u6240\u5fc5\u9700\u7684\u3002\u8bf7\u786e\u4fdd\u5728\u76ee\u6807\u5e73\u53f0\u7684\u6784\u5efa\u914d\u7f6e\u4e2d\u542f\u7528\u4e86\u6e90\u6620\u5c04\u3002"}),"\n",(0,t.jsxs)(l.Z,{groupId:"platform",queryString:!0,defaultValue:i.Z.defaultPlatform,values:i.Z.platforms,className:"pill-tabs",children:[(0,t.jsxs)(o.Z,{value:"android",children:[(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsx)(n.p,{children:"\u5728 Android \u4e0a\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u5df2\u7ecf\u542f\u7528\u4e86\u6e90\u6620\u5c04\u3002"})}),(0,t.jsxs)(n.p,{children:["\u8981\u542f\u7528\u6e90\u6620\u5c04\u751f\u6210\uff0c\u8bf7\u786e\u4fdd\u5728 ",(0,t.jsx)(n.code,{children:"android/app/build.gradle"})," \u4e2d\u5305\u542b\u4ee5\u4e0b ",(0,t.jsx)(n.code,{children:"hermesFlags"}),"\u3002"]}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-groovy",children:'react {\n hermesFlags = ["-O", "-output-source-map"]\n}\n'})}),(0,t.jsx)(n.p,{children:"\u5982\u679c\u64cd\u4f5c\u6b63\u786e\uff0c\u60a8\u5e94\u8be5\u5728 Metro \u6784\u5efa\u8f93\u51fa\u671f\u95f4\u770b\u5230\u6e90\u6620\u5c04\u7684\u8f93\u51fa\u4f4d\u7f6e\u3002"}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-text",children:"Writing bundle output to:, android/app/build/generated/assets/react/release/index.android.bundle\nWriting sourcemap output to:, android/app/build/intermediates/sourcemaps/react/release/index.android.bundle.packager.map\n"})})]}),(0,t.jsxs)(o.Z,{value:"ios",children:[(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsx)(n.p,{children:"\u5728iOS\u4e0a\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u7981\u7528\u6e90\u6620\u5c04\u3002\u8bf7\u4f7f\u7528\u4ee5\u4e0b\u8bf4\u660e\u542f\u7528\u5b83\u4eec\u3002"})}),(0,t.jsx)(n.p,{children:"\u8981\u542f\u7528\u6e90\u6620\u5c04\u751f\u6210\uff1a"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"\u6253\u5f00 Xcode \u5e76\u7f16\u8f91\u201cBundle React Native code and images\u201d\u6784\u5efa\u9636\u6bb5\u3002"}),"\n",(0,t.jsxs)(n.li,{children:["\u5728\u5176\u4ed6\u5bfc\u51fa\u9879\u4e4b\u4e0a\uff0c\u6dfb\u52a0\u5177\u6709\u6240\u9700\u8f93\u51fa\u8def\u5f84\u7684 ",(0,t.jsx)(n.code,{children:"SOURCEMAP_FILE"})," \u6761\u76ee\u3002"]}),"\n"]}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-diff",children:'+ SOURCEMAP_FILE="$(pwd)/../main.jsbundle.map";\n WITH_ENVIRONMENT="../node_modules/react-native/scripts/xcode/with-environment.sh"\n'})}),(0,t.jsx)(n.p,{children:"\u5982\u679c\u64cd\u4f5c\u6b63\u786e\uff0c\u60a8\u5e94\u8be5\u5728 Metro \u6784\u5efa\u8f93\u51fa\u671f\u95f4\u770b\u5230\u6e90\u6620\u5c04\u7684\u8f93\u51fa\u4f4d\u7f6e\u3002"}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-text",children:"Writing bundle output to:, Build/Intermediates.noindex/ArchiveIntermediates/application/BuildProductsPath/Release-iphoneos/main.jsbundle\nWriting sourcemap output to:, Build/Intermediates.noindex/ArchiveIntermediates/application/BuildProductsPath/Release-iphoneos/main.jsbundle.map\n"})})]})]}),"\n",(0,t.jsxs)(n.h3,{id:"\u4f7f\u7528-metro-symbolicate",children:["\u4f7f\u7528 ",(0,t.jsx)(n.code,{children:"metro-symbolicate"})]}),"\n",(0,t.jsx)(n.p,{children:"\u6709\u4e86\u751f\u6210\u7684\u6e90\u6620\u5c04\uff0c\u73b0\u5728\u53ef\u4ee5\u7ffb\u8bd1\u6211\u4eec\u7684\u5806\u6808\u8ddf\u8e2a\u4e86\u3002"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"# \u6253\u5370\u4f7f\u7528\u8bf4\u660e\nnpx metro-symbolicate\n\n# \u4ece\u5305\u542b\u5806\u6808\u8ddf\u8e2a\u7684\u6587\u4ef6\u4e2d\nnpx metro-symbolicate android/app/build/generated/sourcemaps/react/release/index.android.bundle.map < stacktrace.txt\n\n# \u4ece adb logcat\uff08Android\uff09\nadb logcat -d | npx metro-symbolicate android/app/build/generated/sourcemaps/react/release/index.android.bundle.map\n"})}),"\n",(0,t.jsx)(n.h3,{id:"\u6e90\u6620\u5c04\u6ce8\u610f\u4e8b\u9879",children:"\u6e90\u6620\u5c04\u6ce8\u610f\u4e8b\u9879"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"\u6784\u5efa\u8fc7\u7a0b\u53ef\u80fd\u4f1a\u751f\u6210\u591a\u4e2a\u6e90\u6620\u5c04\u3002\u786e\u4fdd\u4f7f\u7528\u793a\u4f8b\u4e2d\u663e\u793a\u7684\u4f4d\u7f6e\u7684\u6e90\u6620\u5c04\u3002"}),"\n",(0,t.jsx)(n.li,{children:"\u786e\u4fdd\u60a8\u4f7f\u7528\u7684\u6e90\u6620\u5c04\u5bf9\u5e94\u4e8e\u5d29\u6e83\u5e94\u7528\u7684\u786e\u5207\u63d0\u4ea4\u3002\u6e90\u4ee3\u7801\u7684\u5c0f\u6539\u52a8\u53ef\u80fd\u5bfc\u81f4\u504f\u79fb\u7684\u5de8\u5927\u5dee\u5f02\u3002"}),"\n",(0,t.jsxs)(n.li,{children:["\u5982\u679c ",(0,t.jsx)(n.code,{children:"metro-symbolicate"})," \u7acb\u5373\u6210\u529f\u9000\u51fa\uff0c\u8bf7\u786e\u4fdd\u8f93\u5165\u6765\u81ea\u7ba1\u9053\u6216\u91cd\u5b9a\u5411\uff0c\u800c\u4e0d\u662f\u7ec8\u7aef\u3002"]}),"\n"]})]})}function b(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(m,{...e})}):m(e)}},11674:(e,n,r)=>{r.d(n,{Z:()=>o});var t=r(63445);const a=!!t.Z.canUseDOM&&navigator.platform.startsWith("Mac"),l=!!t.Z.canUseDOM&&navigator.platform.startsWith("Win"),o={defaultGuide:"native",defaultOs:a?"macos":l?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:a?"ios":"android",defaultSyntax:"functional",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"}]}},86386:(e,n,r)=>{r.d(n,{Z:()=>p});var t=r(27378),a=r(40624);const l={tabItem:"tabItem_wHwb"};var o=Object.defineProperty,i=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable,c=(e,n,r)=>n in e?o(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,d=(e,n)=>{for(var r in n||(n={}))s.call(n,r)&&c(e,r,n[r]);if(i)for(var r of i(n))u.call(n,r)&&c(e,r,n[r]);return e};function p({children:e,hidden:n,className:r}){return t.createElement("div",d({role:"tabpanel",className:(0,a.Z)(l.tabItem,r)},{hidden:n}),e)}},48375:(e,n,r)=>{r.d(n,{Z:()=>q});var t=r(27378),a=r(40624),l=r(12112),o=r(3620),i=r(69490),s=r(14953),u=r(27886),c=r(7106),d=Object.defineProperty,p=Object.defineProperties,m=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertySymbols,h=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable,v=(e,n,r)=>n in e?d(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,g=(e,n)=>{for(var r in n||(n={}))h.call(n,r)&&v(e,r,n[r]);if(b)for(var r of b(n))f.call(n,r)&&v(e,r,n[r]);return e},x=(e,n)=>p(e,m(n));function j(e){var n,r;return null!=(r=null==(n=t.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,t.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.`)})))?void 0:n.filter(Boolean))?r:[]}function y(e){const{values:n,children:r}=e;return(0,t.useMemo)((()=>{const e=null!=n?n:function(e){return j(e).map((({props:{value:e,label:n,attributes:r,default:t}})=>({value:e,label:n,attributes:r,default:t})))}(r);return function(e){const n=(0,u.l)(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,r])}function w({value:e,tabValues:n}){return n.some((n=>n.value===e))}function O({queryString:e=!1,groupId:n}){const r=(0,o.k6)(),a=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 null!=n?n:null}({queryString:e,groupId:n});return[(0,s._X)(a),(0,t.useCallback)((e=>{if(!a)return;const n=new URLSearchParams(r.location.search);n.set(a,e),r.replace(x(g({},r.location),{search:n.toString()}))}),[a,r])]}function E(e){const{defaultValue:n,queryString:r=!1,groupId:a}=e,l=y(e),[o,s]=(0,t.useState)((()=>function({defaultValue:e,tabValues:n}){var r;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!w({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=null!=(r=n.find((e=>e.default)))?r:n[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:l}))),[u,d]=O({queryString:r,groupId:a}),[p,m]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[r,a]=(0,c.Nk)(n);return[r,(0,t.useCallback)((e=>{n&&a.set(e)}),[n,a])]}({groupId:a}),b=(()=>{const e=null!=u?u:p;return w({value:e,tabValues:l})?e:null})();(0,i.Z)((()=>{b&&s(b)}),[b]);return{selectedValue:o,selectValue:(0,t.useCallback)((e=>{if(!w({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),d(e),m(e)}),[d,m,l]),tabValues:l}}var I=r(14185);const k={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};var _=Object.defineProperty,P=Object.defineProperties,N=Object.getOwnPropertyDescriptors,S=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable,V=(e,n,r)=>n in e?_(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,R=(e,n)=>{for(var r in n||(n={}))A.call(n,r)&&V(e,r,n[r]);if(S)for(var r of S(n))T.call(n,r)&&V(e,r,n[r]);return e},C=(e,n)=>P(e,N(n));function Z({className:e,block:n,selectedValue:r,selectValue:o,tabValues:i}){const s=[],{blockElementScrollPositionUntilNextRender:u}=(0,l.o5)(),c=e=>{const n=e.currentTarget,t=s.indexOf(n),a=i[t].value;a!==r&&(u(n),o(a))},d=e=>{var n,r;let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const r=s.indexOf(e.currentTarget)+1;t=null!=(n=s[r])?n:s[0];break}case"ArrowLeft":{const n=s.indexOf(e.currentTarget)-1;t=null!=(r=s[n])?r:s[s.length-1];break}}null==t||t.focus()};return t.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":n},e)},i.map((({value:e,label:n,attributes:l})=>t.createElement("li",C(R({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,key:e,ref:e=>s.push(e),onKeyDown:d,onClick:c},l),{className:(0,a.Z)("tabs__item",k.tabItem,null==l?void 0:l.className,{"tabs__item--active":r===e})}),null!=n?n:e))))}function D({lazy:e,children:n,selectedValue:r}){const a=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=a.find((e=>e.props.value===r));return e?(0,t.cloneElement)(e,{className:"margin-top--md"}):null}return t.createElement("div",{className:"margin-top--md"},a.map(((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==r}))))}function M(e){const n=E(e);return t.createElement("div",{className:(0,a.Z)("tabs-container",k.tabList)},t.createElement(Z,R(R({},e),n)),t.createElement(D,R(R({},e),n)))}function q(e){const n=(0,I.Z)();return t.createElement(M,R({key:String(n)},e),j(e.children))}},71426:(e,n,r)=>{var t=r(27378),a=Symbol.for("react.element"),l=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,i=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function u(e,n,r){var t,l={},u=null,c=null;for(t in void 0!==r&&(u=""+r),void 0!==n.key&&(u=""+n.key),void 0!==n.ref&&(c=n.ref),n)o.call(n,t)&&!s.hasOwnProperty(t)&&(l[t]=n[t]);if(e&&e.defaultProps)for(t in n=e.defaultProps)void 0===l[t]&&(l[t]=n[t]);return{$$typeof:a,type:e,key:u,ref:c,props:l,_owner:i.current}}n.Fragment=l,n.jsx=u,n.jsxs=u},24246:(e,n,r)=>{e.exports=r(71426)},71670:(e,n,r)=>{r.d(n,{Z:()=>i,a:()=>o});var t=r(27378);const a={},l=t.createContext(a);function o(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6ad22d2d.d4b44492.js.LICENSE.txt b/assets/js/6ad22d2d.92363721.js.LICENSE.txt similarity index 100% rename from assets/js/6ad22d2d.d4b44492.js.LICENSE.txt rename to assets/js/6ad22d2d.92363721.js.LICENSE.txt diff --git a/assets/js/6ad22d2d.d4b44492.js b/assets/js/6ad22d2d.d4b44492.js deleted file mode 100644 index e4614fab892..00000000000 --- a/assets/js/6ad22d2d.d4b44492.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 6ad22d2d.d4b44492.js.LICENSE.txt */ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[72508],{77238:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>u,default:()=>b,frontMatter:()=>s,metadata:()=>c,toc:()=>p});var t=r(24246),a=r(71670),l=r(48375),o=r(86386),i=r(11674);const s={id:"debugging-release-builds",title:"Debugging Release Builds"},u=void 0,c={id:"debugging-release-builds",title:"Debugging Release Builds",description:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a",source:"@site/versioned_docs/version-0.74/debugging-release-builds.md",sourceDirName:".",slug:"/debugging-release-builds",permalink:"/docs/debugging-release-builds",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/debugging-release-builds.md",tags:[],version:"0.74",frontMatter:{id:"debugging-release-builds",title:"Debugging Release Builds"},sidebar:"docs",previous:{title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",permalink:"/docs/native-debugging"},next:{title:"Other Debugging Methods",permalink:"/docs/other-debugging-methods"}},d={},p=[{value:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a",id:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a",level:2},{value:"\u542f\u7528\u6e90\u6620\u5c04\uff08source map\uff09",id:"\u542f\u7528\u6e90\u6620\u5c04source-map",level:3},{value:"\u4f7f\u7528 metro-symbolicate",id:"\u4f7f\u7528-metro-symbolicate",level:3},{value:"\u6e90\u6620\u5c04\u6ce8\u610f\u4e8b\u9879",id:"\u6e90\u6620\u5c04\u6ce8\u610f\u4e8b\u9879",level:3}];function m(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a",children:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a"}),"\n",(0,t.jsx)(n.p,{children:"\u5728\u53d1\u5e03\u7248\u672c\u4e2d\uff0cReact Native \u5e94\u7528\u5982\u679c\u89e6\u53d1\u4e86\u672a\u5904\u7406\u7684\u5f02\u5e38\uff0c\u5176\u8f93\u51fa\u53ef\u80fd\u4f1a\u88ab\u6df7\u6dc6\u5e76\u4e14\u96be\u4ee5\u9605\u8bfb\u3002"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"07-15 10:58:25.820 18979 18998 E AndroidRuntime: FATAL EXCEPTION: mqt_native_modules\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: Process: com.awesomeproject, PID: 18979 07-15 10:58:25.820 18979 18998 E AndroidRuntime: com.facebook.react.common.JavascriptException: Failed, js engine: hermes, stack:\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: p@1:132161\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: p@1:132084\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: f@1:131854\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: anonymous@1:131119\n"})}),"\n",(0,t.jsxs)(n.p,{children:["\u5728\u4e0a\u8ff0\u5806\u6808\u8ddf\u8e2a\u4e2d\uff0c\u7c7b\u4f3c",(0,t.jsx)(n.code,{children:"p@1:132161"}),"\u7684\u6761\u76ee\u662f\u7ecf\u8fc7\u538b\u7f29\u7684\u51fd\u6570\u540d\u79f0\u548c\u5b57\u8282\u7801\u504f\u79fb\u91cf\u3002\u4e3a\u4e86\u8c03\u8bd5\u8fd9\u4e9b\u8c03\u7528\uff0c\u6211\u4eec\u5e0c\u671b\u5c06\u5b83\u4eec\u8f6c\u6362\u4e3a\u6587\u4ef6\u3001\u884c\u548c\u51fd\u6570\u540d\u79f0\uff0c\u4f8b\u5982",(0,t.jsx)(n.code,{children:"AwesomeProject/App.js:54:initializeMap"}),"\u3002\u8fd9\u88ab\u79f0\u4e3a",(0,t.jsx)(n.strong,{children:"\u7b26\u53f7\u5316"}),"\u3002"]}),"\n",(0,t.jsxs)(n.p,{children:["\u60a8\u53ef\u4ee5\u901a\u8fc7\u5c06\u5806\u6808\u8ddf\u8e2a\u548c\u751f\u6210\u7684\u6e90\u6620\u5c04\u4f20\u9012\u7ed9",(0,t.jsx)(n.a,{href:"http://npmjs.com/package/metro-symbolicate",children:(0,t.jsx)(n.code,{children:"metro-symbolicate"})}),"\u6765\u5bf9\u4e0a\u8ff0\u7c7b\u4f3c\u7684\u7ecf\u8fc7\u538b\u7f29\u7684\u51fd\u6570\u540d\u79f0\u548c\u5b57\u8282\u7801\u8fdb\u884c\u7b26\u53f7\u5316\u3002"]}),"\n",(0,t.jsx)(n.h3,{id:"\u542f\u7528\u6e90\u6620\u5c04source-map",children:"\u542f\u7528\u6e90\u6620\u5c04\uff08source map\uff09"}),"\n",(0,t.jsx)(n.p,{children:"\u6e90\u6620\u5c04\u662f\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a\u6240\u5fc5\u9700\u7684\u3002\u8bf7\u786e\u4fdd\u5728\u76ee\u6807\u5e73\u53f0\u7684\u6784\u5efa\u914d\u7f6e\u4e2d\u542f\u7528\u4e86\u6e90\u6620\u5c04\u3002"}),"\n",(0,t.jsxs)(l.Z,{groupId:"platform",queryString:!0,defaultValue:i.Z.defaultPlatform,values:i.Z.platforms,className:"pill-tabs",children:[(0,t.jsxs)(o.Z,{value:"android",children:[(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsx)(n.p,{children:"\u5728 Android \u4e0a\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u5df2\u7ecf\u542f\u7528\u4e86\u6e90\u6620\u5c04\u3002"})}),(0,t.jsxs)(n.p,{children:["\u8981\u542f\u7528\u6e90\u6620\u5c04\u751f\u6210\uff0c\u8bf7\u786e\u4fdd\u5728 ",(0,t.jsx)(n.code,{children:"android/app/build.gradle"})," \u4e2d\u5305\u542b\u4ee5\u4e0b ",(0,t.jsx)(n.code,{children:"hermesFlags"}),"\u3002"]}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-groovy",children:'react {\n hermesFlags = ["-O", "-output-source-map"]\n}\n'})}),(0,t.jsx)(n.p,{children:"\u5982\u679c\u64cd\u4f5c\u6b63\u786e\uff0c\u60a8\u5e94\u8be5\u5728 Metro \u6784\u5efa\u8f93\u51fa\u671f\u95f4\u770b\u5230\u6e90\u6620\u5c04\u7684\u8f93\u51fa\u4f4d\u7f6e\u3002"}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-text",children:"Writing bundle output to:, android/app/build/generated/assets/react/release/index.android.bundle\nWriting sourcemap output to:, android/app/build/intermediates/sourcemaps/react/release/index.android.bundle.packager.map\n"})})]}),(0,t.jsxs)(o.Z,{value:"ios",children:[(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsx)(n.p,{children:"\u5728iOS\u4e0a\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u7981\u7528\u6e90\u6620\u5c04\u3002\u8bf7\u4f7f\u7528\u4ee5\u4e0b\u8bf4\u660e\u542f\u7528\u5b83\u4eec\u3002"})}),(0,t.jsx)(n.p,{children:"\u8981\u542f\u7528\u6e90\u6620\u5c04\u751f\u6210\uff1a"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"\u6253\u5f00 Xcode \u5e76\u7f16\u8f91\u201cBundle React Native code and images\u201d\u6784\u5efa\u9636\u6bb5\u3002"}),"\n",(0,t.jsxs)(n.li,{children:["\u5728\u5176\u4ed6\u5bfc\u51fa\u9879\u4e4b\u4e0a\uff0c\u6dfb\u52a0\u5177\u6709\u6240\u9700\u8f93\u51fa\u8def\u5f84\u7684 ",(0,t.jsx)(n.code,{children:"SOURCEMAP_FILE"})," \u6761\u76ee\u3002"]}),"\n"]}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-diff",children:'+ SOURCEMAP_FILE="$(pwd)/../main.jsbundle.map";\n WITH_ENVIRONMENT="../node_modules/react-native/scripts/xcode/with-environment.sh"\n'})}),(0,t.jsx)(n.p,{children:"\u5982\u679c\u64cd\u4f5c\u6b63\u786e\uff0c\u60a8\u5e94\u8be5\u5728 Metro \u6784\u5efa\u8f93\u51fa\u671f\u95f4\u770b\u5230\u6e90\u6620\u5c04\u7684\u8f93\u51fa\u4f4d\u7f6e\u3002"}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-text",children:"Writing bundle output to:, Build/Intermediates.noindex/ArchiveIntermediates/application/BuildProductsPath/Release-iphoneos/main.jsbundle\nWriting sourcemap output to:, Build/Intermediates.noindex/ArchiveIntermediates/application/BuildProductsPath/Release-iphoneos/main.jsbundle.map\n"})})]})]}),"\n",(0,t.jsxs)(n.h3,{id:"\u4f7f\u7528-metro-symbolicate",children:["\u4f7f\u7528 ",(0,t.jsx)(n.code,{children:"metro-symbolicate"})]}),"\n",(0,t.jsx)(n.p,{children:"\u6709\u4e86\u751f\u6210\u7684\u6e90\u6620\u5c04\uff0c\u73b0\u5728\u53ef\u4ee5\u7ffb\u8bd1\u6211\u4eec\u7684\u5806\u6808\u8ddf\u8e2a\u4e86\u3002"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"# \u6253\u5370\u4f7f\u7528\u8bf4\u660e\nnpx metro-symbolicate\n\n# \u4ece\u5305\u542b\u5806\u6808\u8ddf\u8e2a\u7684\u6587\u4ef6\u4e2d\nnpx metro-symbolicate android/app/build/generated/sourcemaps/react/release/index.android.bundle.map < stacktrace.txt\n\n# \u4ece adb logcat\uff08Android\uff09\nadb logcat -d | npx metro-symbolicate android/app/build/generated/sourcemaps/react/release/index.android.bundle.map\n"})}),"\n",(0,t.jsx)(n.h3,{id:"\u6e90\u6620\u5c04\u6ce8\u610f\u4e8b\u9879",children:"\u6e90\u6620\u5c04\u6ce8\u610f\u4e8b\u9879"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"\u6784\u5efa\u8fc7\u7a0b\u53ef\u80fd\u4f1a\u751f\u6210\u591a\u4e2a\u6e90\u6620\u5c04\u3002\u786e\u4fdd\u4f7f\u7528\u793a\u4f8b\u4e2d\u663e\u793a\u7684\u4f4d\u7f6e\u7684\u6e90\u6620\u5c04\u3002"}),"\n",(0,t.jsx)(n.li,{children:"\u786e\u4fdd\u60a8\u4f7f\u7528\u7684\u6e90\u6620\u5c04\u5bf9\u5e94\u4e8e\u5d29\u6e83\u5e94\u7528\u7684\u786e\u5207\u63d0\u4ea4\u3002\u6e90\u4ee3\u7801\u7684\u5c0f\u6539\u52a8\u53ef\u80fd\u5bfc\u81f4\u504f\u79fb\u7684\u5de8\u5927\u5dee\u5f02\u3002"}),"\n",(0,t.jsxs)(n.li,{children:["\u5982\u679c ",(0,t.jsx)(n.code,{children:"metro-symbolicate"})," \u7acb\u5373\u6210\u529f\u9000\u51fa\uff0c\u8bf7\u786e\u4fdd\u8f93\u5165\u6765\u81ea\u7ba1\u9053\u6216\u91cd\u5b9a\u5411\uff0c\u800c\u4e0d\u662f\u7ec8\u7aef\u3002"]}),"\n"]})]})}function b(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(m,{...e})}):m(e)}},11674:(e,n,r)=>{r.d(n,{Z:()=>o});var t=r(63445);const a=!!t.Z.canUseDOM&&navigator.platform.startsWith("Mac"),l=!!t.Z.canUseDOM&&navigator.platform.startsWith("Win"),o={defaultGuide:"native",defaultOs:a?"macos":l?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:a?"ios":"android",defaultSyntax:"functional",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"}]}},86386:(e,n,r)=>{r.d(n,{Z:()=>p});var t=r(27378),a=r(40624);const l={tabItem:"tabItem_wHwb"};var o=Object.defineProperty,i=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable,c=(e,n,r)=>n in e?o(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,d=(e,n)=>{for(var r in n||(n={}))s.call(n,r)&&c(e,r,n[r]);if(i)for(var r of i(n))u.call(n,r)&&c(e,r,n[r]);return e};function p({children:e,hidden:n,className:r}){return t.createElement("div",d({role:"tabpanel",className:(0,a.Z)(l.tabItem,r)},{hidden:n}),e)}},48375:(e,n,r)=>{r.d(n,{Z:()=>q});var t=r(27378),a=r(40624),l=r(12112),o=r(3620),i=r(69490),s=r(14953),u=r(27886),c=r(7106),d=Object.defineProperty,p=Object.defineProperties,m=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertySymbols,h=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable,g=(e,n,r)=>n in e?d(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,v=(e,n)=>{for(var r in n||(n={}))h.call(n,r)&&g(e,r,n[r]);if(b)for(var r of b(n))f.call(n,r)&&g(e,r,n[r]);return e},x=(e,n)=>p(e,m(n));function j(e){var n,r;return null!=(r=null==(n=t.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,t.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.`)})))?void 0:n.filter(Boolean))?r:[]}function y(e){const{values:n,children:r}=e;return(0,t.useMemo)((()=>{const e=null!=n?n:function(e){return j(e).map((({props:{value:e,label:n,attributes:r,default:t}})=>({value:e,label:n,attributes:r,default:t})))}(r);return function(e){const n=(0,u.l)(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,r])}function w({value:e,tabValues:n}){return n.some((n=>n.value===e))}function O({queryString:e=!1,groupId:n}){const r=(0,o.k6)(),a=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 null!=n?n:null}({queryString:e,groupId:n});return[(0,s._X)(a),(0,t.useCallback)((e=>{if(!a)return;const n=new URLSearchParams(r.location.search);n.set(a,e),r.replace(x(v({},r.location),{search:n.toString()}))}),[a,r])]}function E(e){const{defaultValue:n,queryString:r=!1,groupId:a}=e,l=y(e),[o,s]=(0,t.useState)((()=>function({defaultValue:e,tabValues:n}){var r;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!w({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=null!=(r=n.find((e=>e.default)))?r:n[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:l}))),[u,d]=O({queryString:r,groupId:a}),[p,m]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[r,a]=(0,c.Nk)(n);return[r,(0,t.useCallback)((e=>{n&&a.set(e)}),[n,a])]}({groupId:a}),b=(()=>{const e=null!=u?u:p;return w({value:e,tabValues:l})?e:null})();(0,i.Z)((()=>{b&&s(b)}),[b]);return{selectedValue:o,selectValue:(0,t.useCallback)((e=>{if(!w({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),d(e),m(e)}),[d,m,l]),tabValues:l}}var I=r(14185);const k={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};var _=Object.defineProperty,P=Object.defineProperties,N=Object.getOwnPropertyDescriptors,S=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,R=Object.prototype.propertyIsEnumerable,T=(e,n,r)=>n in e?_(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,V=(e,n)=>{for(var r in n||(n={}))A.call(n,r)&&T(e,r,n[r]);if(S)for(var r of S(n))R.call(n,r)&&T(e,r,n[r]);return e},D=(e,n)=>P(e,N(n));function C({className:e,block:n,selectedValue:r,selectValue:o,tabValues:i}){const s=[],{blockElementScrollPositionUntilNextRender:u}=(0,l.o5)(),c=e=>{const n=e.currentTarget,t=s.indexOf(n),a=i[t].value;a!==r&&(u(n),o(a))},d=e=>{var n,r;let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const r=s.indexOf(e.currentTarget)+1;t=null!=(n=s[r])?n:s[0];break}case"ArrowLeft":{const n=s.indexOf(e.currentTarget)-1;t=null!=(r=s[n])?r:s[s.length-1];break}}null==t||t.focus()};return t.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":n},e)},i.map((({value:e,label:n,attributes:l})=>t.createElement("li",D(V({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,key:e,ref:e=>s.push(e),onKeyDown:d,onClick:c},l),{className:(0,a.Z)("tabs__item",k.tabItem,null==l?void 0:l.className,{"tabs__item--active":r===e})}),null!=n?n:e))))}function M({lazy:e,children:n,selectedValue:r}){const a=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=a.find((e=>e.props.value===r));return e?(0,t.cloneElement)(e,{className:"margin-top--md"}):null}return t.createElement("div",{className:"margin-top--md"},a.map(((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==r}))))}function Z(e){const n=E(e);return t.createElement("div",{className:(0,a.Z)("tabs-container",k.tabList)},t.createElement(C,V(V({},e),n)),t.createElement(M,V(V({},e),n)))}function q(e){const n=(0,I.Z)();return t.createElement(Z,V({key:String(n)},e),j(e.children))}},71426:(e,n,r)=>{var t=r(27378),a=Symbol.for("react.element"),l=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,i=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function u(e,n,r){var t,l={},u=null,c=null;for(t in void 0!==r&&(u=""+r),void 0!==n.key&&(u=""+n.key),void 0!==n.ref&&(c=n.ref),n)o.call(n,t)&&!s.hasOwnProperty(t)&&(l[t]=n[t]);if(e&&e.defaultProps)for(t in n=e.defaultProps)void 0===l[t]&&(l[t]=n[t]);return{$$typeof:a,type:e,key:u,ref:c,props:l,_owner:i.current}}n.Fragment=l,n.jsx=u,n.jsxs=u},24246:(e,n,r)=>{e.exports=r(71426)},71670:(e,n,r)=>{r.d(n,{Z:()=>i,a:()=>o});var t=r(27378);const a={},l=t.createContext(a);function o(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8d3fc5c6.091bf9b7.js b/assets/js/8d3fc5c6.091bf9b7.js deleted file mode 100644 index cd0caeac8be..00000000000 --- a/assets/js/8d3fc5c6.091bf9b7.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 8d3fc5c6.091bf9b7.js.LICENSE.txt */ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[12811],{53226:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>b,frontMatter:()=>s,metadata:()=>u,toc:()=>p});var n=r(24246),a=r(71670),l=r(48375),i=r(86386),o=r(11674);const s={id:"other-debugging-methods",title:"Other Debugging Methods"},c=void 0,u={id:"other-debugging-methods",title:"Other Debugging Methods",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",source:"@site/../cndocs/other-debugging-methods.md",sourceDirName:".",slug:"/other-debugging-methods",permalink:"/docs/next/other-debugging-methods",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/other-debugging-methods.md",tags:[],version:"current",frontMatter:{id:"other-debugging-methods",title:"Other Debugging Methods"},sidebar:"docs",previous:{title:"Debugging Release Builds",permalink:"/docs/next/debugging-release-builds"},next:{title:"Testing",permalink:"/docs/next/testing-overview"}},d={},p=[{value:"Safari \u5f00\u53d1\u8005\u5de5\u5177\uff08\u76f4\u63a5\u8c03\u8bd5 JSC\uff09",id:"safari-\u5f00\u53d1\u8005\u5de5\u5177\u76f4\u63a5\u8c03\u8bd5-jsc",level:2},{value:"\u8fdc\u7a0b JavaScript \u8c03\u8bd5\uff08\u5df2\u5f03\u7528\uff09",id:"\u8fdc\u7a0b-javascript-\u8c03\u8bd5\u5df2\u5f03\u7528",level:2},{value:"\u8bbe\u7f6e",id:"\u8bbe\u7f6e",level:3},{value:"\u5728\u5b9e\u4f53\u8bbe\u5907\u4e0a\u8c03\u8bd5",id:"\u5728\u5b9e\u4f53\u8bbe\u5907\u4e0a\u8c03\u8bd5",level:3}];function h(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["\u6b64\u9875\u9762\u4ecb\u7ecd\u4e86\u9664 ",(0,n.jsx)(t.a,{href:"./debugging#opening-the-debugger",children:"\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"]}),"\n",(0,n.jsx)(t.h2,{id:"safari-\u5f00\u53d1\u8005\u5de5\u5177\u76f4\u63a5\u8c03\u8bd5-jsc",children:"Safari \u5f00\u53d1\u8005\u5de5\u5177\uff08\u76f4\u63a5\u8c03\u8bd5 JSC\uff09"}),"\n",(0,n.jsxs)(t.p,{children:["\u5f53\u4f60\u7684\u5e94\u7528\u4f7f\u7528 ",(0,n.jsx)(t.a,{href:"https://trac.webkit.org/wiki/JavaScriptCore",children:"JavaScriptCore"}),"\uff08JSC\uff09\u4f5c\u4e3a\u8fd0\u884c\u65f6\u73af\u5883\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528 Safari \u6765\u8c03\u8bd5\u5e94\u7528\u7684 iOS \u7248\u672c\u3002"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"\u4ec5\u9002\u7528\u4e8e\u7269\u7406\u8bbe\u5907"}),'\uff1a\u6253\u5f00"\u8bbe\u7f6e"\u5e94\u7528\uff0c\u5bfc\u822a\u5230 Safari > \u9ad8\u7ea7\uff0c\u786e\u4fdd"Web \u68c0\u67e5\u5668"\u5df2\u6253\u5f00\u3002']}),"\n",(0,n.jsx)(t.li,{children:'\u5728 Mac \u4e0a\uff0c\u6253\u5f00 Safari \u5e76\u542f\u7528"\u5f00\u53d1"\u83dc\u5355\u3002\u53ef\u4ee5\u5728 Safari > \u8bbe\u7f6e... \u4e0b\u627e\u5230\uff0c\u7136\u540e\u9009\u62e9"\u9ad8\u7ea7"\u9009\u9879\u5361\uff0c\u518d\u52fe\u9009"\u663e\u793a\u5f00\u53d1\u8005\u529f\u80fd"\u3002'}),"\n",(0,n.jsx)(t.li,{children:'\u5728"\u5f00\u53d1"\u83dc\u5355\u4e0b\u627e\u5230\u4f60\u7684\u8bbe\u5907\uff0c\u5e76\u4ece\u5b50\u83dc\u5355\u4e2d\u9009\u62e9"JSContext"\u9879\u3002\u8fd9\u5c06\u6253\u5f00 Safari \u7684 Web \u68c0\u67e5\u5668\uff0c\u5176\u4e2d\u5305\u62ec\u7c7b\u4f3c\u4e8e Chrome \u5f00\u53d1\u8005\u5de5\u5177\u7684\u63a7\u5236\u53f0\u548c\u6e90\u4ee3\u7801\u9762\u677f\u3002'}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Opening Safari Web Inspector",src:r(26434).Z+"",width:"1600",height:"730"})}),"\n",(0,n.jsx)(t.admonition,{type:"tip",children:(0,n.jsx)(t.p,{children:"\u867d\u7136\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u53ef\u80fd\u6ca1\u6709\u542f\u7528 Source Map,\u4f46\u662f\u4f60\u53ef\u4ee5\u53c2\u8003\u8fd9\u7bc7\u6307\u5357\u6216\u8005\u89c6\u9891,\u4e86\u89e3\u5982\u4f55\u542f\u7528\u5b83\u4eec,\u5e76\u5728\u6e90\u4ee3\u7801\u7684\u6b63\u786e\u4f4d\u7f6e\u8bbe\u7f6e\u65ad\u70b9\u3002"})}),"\n",(0,n.jsx)(t.admonition,{type:"tip",children:(0,n.jsx)(t.p,{children:'\u6bcf\u6b21\u5e94\u7528\u91cd\u65b0\u52a0\u8f7d\u65f6,\u90fd\u4f1a\u521b\u5efa\u4e00\u4e2a\u65b0\u7684 JSContext\u3002\u52fe\u9009"Automatically Show Web Inspectors for JSContexts"\u53ef\u4ee5\u7701\u53bb\u4f60\u624b\u52a8\u9009\u62e9\u6700\u65b0 JSContext \u7684\u9ebb\u70e6\u3002'})}),"\n",(0,n.jsx)(t.h2,{id:"\u8fdc\u7a0b-javascript-\u8c03\u8bd5\u5df2\u5f03\u7528",children:"\u8fdc\u7a0b JavaScript \u8c03\u8bd5\uff08\u5df2\u5f03\u7528\uff09"}),"\n",(0,n.jsx)(t.admonition,{type:"warning",children:(0,n.jsx)(t.p,{children:"\u5728 React Native 0.73 \u7248\u672c\u4e2d\uff0c\u8fdc\u7a0b JavaScript \u8c03\u8bd5\u529f\u80fd\u5df2\u88ab\u5f03\u7528\uff0c\u672a\u6765\u7248\u672c\u5c06\u5f7b\u5e95\u79fb\u9664\u3002"})}),"\n",(0,n.jsx)(t.p,{children:"\u8fdc\u7a0b JavaScript \u8c03\u8bd5\u53ef\u4ee5\u5c06\u5916\u90e8\u7f51\u9875\u6d4f\u89c8\u5668\uff08Chrome\uff09\u8fde\u63a5\u5230\u4f60\u7684\u5e94\u7528\uff0c\u5e76\u5728\u7f51\u9875\u4e2d\u8fd0\u884c\u4f60\u7684 JavaScript \u4ee3\u7801\u3002\u8fd9\u4f7f\u5f97\u4f60\u53ef\u4ee5\u50cf\u8c03\u8bd5\u666e\u901a\u7f51\u9875\u5e94\u7528\u4e00\u6837\uff0c\u4f7f\u7528 Chrome \u7684\u8c03\u8bd5\u5668\u6765\u8c03\u8bd5 React Native \u5e94\u7528\u3002\u4e0d\u8fc7\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u6d4f\u89c8\u5668\u73af\u5883\u4e0e\u5e94\u7528\u73af\u5883\u53ef\u80fd\u5b58\u5728\u5f88\u5927\u5dee\u5f02\uff0c\u5e76\u975e\u6240\u6709\u7684 React Native \u6a21\u5757\u90fd\u80fd\u5728\u8fd9\u79cd\u8c03\u8bd5\u65b9\u5f0f\u4e0b\u6b63\u5e38\u5de5\u4f5c\u3002"}),"\n",(0,n.jsx)(t.h3,{id:"\u8bbe\u7f6e",children:"\u8bbe\u7f6e"}),"\n",(0,n.jsxs)(t.p,{children:["\u4ece React Native 0.73 \u5f00\u59cb\uff0c\u5fc5\u987b\u4f7f\u7528 ",(0,n.jsx)(t.code,{children:"NativeDevSettings"})," \u6a21\u5757",(0,n.jsx)(t.strong,{children:"\u624b\u52a8\u542f\u7528"}),"\u8fdc\u7a0b JavaScript \u8c03\u8bd5\u529f\u80fd\u3002"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-js",children:"import NativeDevSettings from 'react-native/Libraries/NativeModules/specs/NativeDevSettings';\n\nfunction MyApp() {\n // \u5c06\u6b64\u64cd\u4f5c\u5206\u914d\u7ed9\u53ea\u5728\u5f00\u53d1\u6a21\u5f0f\u4e0b\u663e\u793a\u7684\u6309\u94ae\u6216 useEffect \u8c03\u7528\u3002\n const connectToRemoteDebugger = () => {\n NativeDevSettings.setIsDebuggingRemotely(true);\n };\n}\n"})}),"\n",(0,n.jsxs)(t.p,{children:["\u5f53\u8c03\u7528",(0,n.jsx)(t.code,{children:"NativeDevSettings.setIsDebuggingRemotely(true)"}),"\u65f6,\u7cfb\u7edf\u4f1a\u6253\u5f00\u65b0\u7684\u6807\u7b7e\u9875",(0,n.jsx)(t.a,{href:"http://localhost:8081/debugger-ui",children:"http://localhost:8081/debugger-ui"}),"\u3002"]}),"\n",(0,n.jsx)(t.p,{children:"\u4ece\u8be5\u9875\u9762,\u4f60\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u6253\u5f00 Chrome \u5f00\u53d1\u8005\u5de5\u5177:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"View > Developer > Developer Tools"}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)("kbd",{children:"\u2325 Option"})," + ",(0,n.jsx)("kbd",{children:"Cmd \u2318"})," + ",(0,n.jsx)("kbd",{children:"I"})," (macOS) / ",(0,n.jsx)("kbd",{children:"Ctrl"})," + ",(0,n.jsx)("kbd",{children:"Shift"})," + ",(0,n.jsx)("kbd",{children:"I"})," (Windows \u548c Linux \u7cfb\u7edf)\u3002"]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"\u4f60\u53ef\u4ee5\u5728\u63a7\u5236\u53f0\u548c\u6e90\u4ee3\u7801\u9762\u677f\u4e2d\u67e5\u770b React Native \u4ee3\u7801\u3002"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"The remote debugger window in Chrome",src:r(23311).Z+"",width:"1600",height:"680"})}),"\n",(0,n.jsx)(t.admonition,{title:"\u4fe1\u606f",type:"info",children:(0,n.jsxs)(t.p,{children:["\u5728 Chrome \u8fdc\u7a0b JavaScript \u8c03\u8bd5\u5668\u4e0b,React DevTools \u7684\u7f51\u9875\u7248\u672c\u5c06\u65e0\u6cd5\u4e0e React Native \u4e00\u8d77\u4f7f\u7528\u3002\u8bf7\u53c2\u9605 ",(0,n.jsx)(t.a,{href:"./react-devtools",children:"React DevTools"})," \u6307\u5357,\u4e86\u89e3\u5982\u4f55\u4f7f\u7528\u72ec\u7acb\u7248\u672c\u7684 React DevTools\u3002"]})}),"\n",(0,n.jsx)(t.admonition,{title:"\u6ce8\u610f",type:"note",children:(0,n.jsxs)(t.p,{children:["\u5728 Android \u4e0a,\u5982\u679c\u8c03\u8bd5\u5668\u4e0e\u8bbe\u5907\u4e4b\u95f4\u7684\u65f6\u95f4\u53d1\u751f\u504f\u79fb,\u53ef\u80fd\u4f1a\u5bfc\u81f4\u52a8\u753b\u548c\u4e8b\u4ef6\u884c\u4e3a\u5f02\u5e38\u3002\u53ef\u4ee5\u901a\u8fc7\u8fd0\u884c ",(0,n.jsx)(t.code,{children:'adb shell "date '}),"date +%m%d%H%M%Y.%S%3N",(0,n.jsx)(t.code,{children:'"'})," \u547d\u4ee4\u6765\u4fee\u590d\u8fd9\u4e2a\u95ee\u9898\u3002\u5982\u679c\u4f7f\u7528\u7269\u7406\u8bbe\u5907,\u5219\u9700\u8981 root \u6743\u9650\u3002"]})}),"\n",(0,n.jsx)(t.h3,{id:"\u5728\u5b9e\u4f53\u8bbe\u5907\u4e0a\u8c03\u8bd5",children:"\u5728\u5b9e\u4f53\u8bbe\u5907\u4e0a\u8c03\u8bd5"}),"\n",(0,n.jsx)(t.admonition,{type:"info",children:(0,n.jsx)(t.p,{children:"\u5982\u679c\u60a8\u4f7f\u7528\u7684\u662f Expo CLI\uff0c\u5219\u5df2\u4e3a\u60a8\u914d\u7f6e\u597d\u4e86\u3002"})}),"\n",(0,n.jsxs)(l.Z,{groupId:"platform",defaultValue:o.Z.defaultPlatform,values:o.Z.platforms,className:"pill-tabs",children:[(0,n.jsx)(i.Z,{value:"ios",children:(0,n.jsxs)(t.p,{children:["\u5728 iOS \u8bbe\u5907\u4e0a,\u6253\u5f00\u6587\u4ef6",(0,n.jsx)(t.a,{href:"https://github.com/facebook/react-native/blob/master/packages/react-native/React/CoreModules/RCTWebSocketExecutor.mm",children:(0,n.jsx)(t.code,{children:"RCTWebSocketExecutor.mm"})}),',\u5c06"localhost"\u66ff\u6362\u4e3a\u4f60\u7535\u8111\u7684 IP \u5730\u5740\u3002']})}),(0,n.jsxs)(i.Z,{value:"android",children:[(0,n.jsxs)(t.p,{children:["\u5bf9\u4e8e\u901a\u8fc7 USB \u8fde\u63a5\u7684 Android 5.0+\u8bbe\u5907,\u60a8\u53ef\u4ee5\u4f7f\u7528",(0,n.jsxs)(t.a,{href:"http://developer.android.com/tools/help/adb.html",children:[(0,n.jsx)(t.code,{children:"adb"}),"\u547d\u4ee4\u884c\u5de5\u5177"]}),"\u5728\u8bbe\u5907\u548c\u7535\u8111\u4e4b\u95f4\u5efa\u7acb\u7aef\u53e3\u6620\u5c04:"]}),(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-sh",children:"adb reverse tcp:8081 tcp:8081\n"})})]})]}),"\n",(0,n.jsx)(t.admonition,{title:"\u6ce8\u610f",type:"note",children:(0,n.jsx)(t.p,{children:"\u5982\u679c\u60a8\u9047\u5230\u4efb\u4f55\u95ee\u9898,\u53ef\u80fd\u662f\u67d0\u4e2a Chrome \u6269\u5c55\u7a0b\u5e8f\u4e0e\u8c03\u8bd5\u5668\u6709\u4e86\u610f\u5916\u7684\u4e92\u52a8\u3002\u8bf7\u5c1d\u8bd5\u7981\u7528\u6240\u6709\u6269\u5c55\u7a0b\u5e8f\uff0c\u7136\u540e\u4e00\u4e2a\u4e2a\u91cd\u65b0\u542f\u7528\uff0c\u76f4\u5230\u627e\u5230\u6709\u95ee\u9898\u7684\u6269\u5c55\u7a0b\u5e8f\u3002"})})]})}function b(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},11674:(e,t,r)=>{r.d(t,{Z:()=>i});var n=r(63445);const a=!!n.Z.canUseDOM&&navigator.platform.startsWith("Mac"),l=!!n.Z.canUseDOM&&navigator.platform.startsWith("Win"),i={defaultGuide:"native",defaultOs:a?"macos":l?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:a?"ios":"android",defaultSyntax:"functional",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"}]}},86386:(e,t,r)=>{r.d(t,{Z:()=>p});var n=r(27378),a=r(40624);const l={tabItem:"tabItem_wHwb"};var i=Object.defineProperty,o=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable,u=(e,t,r)=>t in e?i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,d=(e,t)=>{for(var r in t||(t={}))s.call(t,r)&&u(e,r,t[r]);if(o)for(var r of o(t))c.call(t,r)&&u(e,r,t[r]);return e};function p({children:e,hidden:t,className:r}){return n.createElement("div",d({role:"tabpanel",className:(0,a.Z)(l.tabItem,r)},{hidden:t}),e)}},48375:(e,t,r)=>{r.d(t,{Z:()=>A});var n=r(27378),a=r(40624),l=r(12112),i=r(3620),o=r(69490),s=r(14953),c=r(27886),u=r(7106),d=Object.defineProperty,p=Object.defineProperties,h=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable,m=(e,t,r)=>t in e?d(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))f.call(t,r)&&m(e,r,t[r]);if(b)for(var r of b(t))v.call(t,r)&&m(e,r,t[r]);return e},x=(e,t)=>p(e,h(t));function j(e){var t,r;return null!=(r=null==(t=n.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(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.`)})))?void 0:t.filter(Boolean))?r:[]}function y(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=null!=t?t:function(e){return j(e).map((({props:{value:e,label:t,attributes:r,default:n}})=>({value:e,label:t,attributes:r,default:n})))}(r);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,r])}function w({value:e,tabValues:t}){return t.some((t=>t.value===e))}function S({queryString:e=!1,groupId:t}){const r=(0,i.k6)(),a=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)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 null!=t?t:null}({queryString:e,groupId:t});return[(0,s._X)(a),(0,n.useCallback)((e=>{if(!a)return;const t=new URLSearchParams(r.location.search);t.set(a,e),r.replace(x(g({},r.location),{search:t.toString()}))}),[a,r])]}function O(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,l=y(e),[i,s]=(0,n.useState)((()=>function({defaultValue:e,tabValues:t}){var r;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!w({value:e,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const n=null!=(r=t.find((e=>e.default)))?r:t[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[c,d]=S({queryString:r,groupId:a}),[p,h]=function({groupId:e}){const t=function(e){return e?`docusaurus.tab.${e}`:null}(e),[r,a]=(0,u.Nk)(t);return[r,(0,n.useCallback)((e=>{t&&a.set(e)}),[t,a])]}({groupId:a}),b=(()=>{const e=null!=c?c:p;return w({value:e,tabValues:l})?e:null})();(0,o.Z)((()=>{b&&s(b)}),[b]);return{selectedValue:i,selectValue:(0,n.useCallback)((e=>{if(!w({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),d(e),h(e)}),[d,h,l]),tabValues:l}}var k=r(14185);const E={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};var C=Object.defineProperty,I=Object.defineProperties,N=Object.getOwnPropertyDescriptors,D=Object.getOwnPropertySymbols,T=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable,R=(e,t,r)=>t in e?C(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))T.call(t,r)&&R(e,r,t[r]);if(D)for(var r of D(t))_.call(t,r)&&R(e,r,t[r]);return e},V=(e,t)=>I(e,N(t));function Z({className:e,block:t,selectedValue:r,selectValue:i,tabValues:o}){const s=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),u=e=>{const t=e.currentTarget,n=s.indexOf(t),a=o[n].value;a!==r&&(c(t),i(a))},d=e=>{var t,r;let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const r=s.indexOf(e.currentTarget)+1;n=null!=(t=s[r])?t:s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;n=null!=(r=s[t])?r:s[s.length-1];break}}null==n||n.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},e)},o.map((({value:e,label:t,attributes:l})=>n.createElement("li",V(P({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,key:e,ref:e=>s.push(e),onKeyDown:d,onClick:u},l),{className:(0,a.Z)("tabs__item",E.tabItem,null==l?void 0:l.className,{"tabs__item--active":r===e})}),null!=t?t:e))))}function J({lazy:e,children:t,selectedValue:r}){const a=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){const e=a.find((e=>e.props.value===r));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},a.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function M(e){const t=O(e);return n.createElement("div",{className:(0,a.Z)("tabs-container",E.tabList)},n.createElement(Z,P(P({},e),t)),n.createElement(J,P(P({},e),t)))}function A(e){const t=(0,k.Z)();return n.createElement(M,P({key:String(t)},e),j(e.children))}},71426:(e,t,r)=>{var n=r(27378),a=Symbol.for("react.element"),l=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,o=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,r){var n,l={},c=null,u=null;for(n in void 0!==r&&(c=""+r),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,n)&&!s.hasOwnProperty(n)&&(l[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps)void 0===l[n]&&(l[n]=t[n]);return{$$typeof:a,type:e,key:c,ref:u,props:l,_owner:o.current}}t.Fragment=l,t.jsx=c,t.jsxs=c},24246:(e,t,r)=>{e.exports=r(71426)},23311:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/debugging-chrome-remote-debugger-09207af31fea81d1d97a81a0d96774ba.jpg"},26434:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/debugging-safari-developer-tools-a67219e1ea0f852bbb150c988b00c3cf.jpg"},71670:(e,t,r)=>{r.d(t,{Z:()=>o,a:()=>i});var n=r(27378);const a={},l=n.createContext(a);function i(e){const t=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8d3fc5c6.df240f3f.js b/assets/js/8d3fc5c6.df240f3f.js new file mode 100644 index 00000000000..8f72b1f6502 --- /dev/null +++ b/assets/js/8d3fc5c6.df240f3f.js @@ -0,0 +1,2 @@ +/*! For license information please see 8d3fc5c6.df240f3f.js.LICENSE.txt */ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[12811],{53226:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>b,frontMatter:()=>s,metadata:()=>u,toc:()=>p});var n=r(24246),a=r(71670),l=r(48375),i=r(86386),o=r(11674);const s={id:"other-debugging-methods",title:"\u5176\u4ed6\u8c03\u8bd5\u65b9\u6cd5"},c=void 0,u={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",source:"@site/../cndocs/other-debugging-methods.md",sourceDirName:".",slug:"/other-debugging-methods",permalink:"/docs/next/other-debugging-methods",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/other-debugging-methods.md",tags:[],version:"current",frontMatter:{id:"other-debugging-methods",title:"\u5176\u4ed6\u8c03\u8bd5\u65b9\u6cd5"},sidebar:"docs",previous:{title:"\u8c03\u8bd5\u53d1\u884c\u7248\u672c",permalink:"/docs/next/debugging-release-builds"},next:{title:"Testing",permalink:"/docs/next/testing-overview"}},d={},p=[{value:"Safari \u5f00\u53d1\u8005\u5de5\u5177\uff08\u76f4\u63a5\u8c03\u8bd5 JSC\uff09",id:"safari-\u5f00\u53d1\u8005\u5de5\u5177\u76f4\u63a5\u8c03\u8bd5-jsc",level:2},{value:"\u8fdc\u7a0b JavaScript \u8c03\u8bd5\uff08\u5df2\u5f03\u7528\uff09",id:"\u8fdc\u7a0b-javascript-\u8c03\u8bd5\u5df2\u5f03\u7528",level:2},{value:"\u8bbe\u7f6e",id:"\u8bbe\u7f6e",level:3},{value:"\u5728\u5b9e\u4f53\u8bbe\u5907\u4e0a\u8c03\u8bd5",id:"\u5728\u5b9e\u4f53\u8bbe\u5907\u4e0a\u8c03\u8bd5",level:3}];function h(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["\u6b64\u9875\u9762\u4ecb\u7ecd\u4e86\u9664 ",(0,n.jsx)(t.a,{href:"./debugging#opening-the-debugger",children:"\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"]}),"\n",(0,n.jsx)(t.h2,{id:"safari-\u5f00\u53d1\u8005\u5de5\u5177\u76f4\u63a5\u8c03\u8bd5-jsc",children:"Safari \u5f00\u53d1\u8005\u5de5\u5177\uff08\u76f4\u63a5\u8c03\u8bd5 JSC\uff09"}),"\n",(0,n.jsxs)(t.p,{children:["\u5f53\u4f60\u7684\u5e94\u7528\u4f7f\u7528 ",(0,n.jsx)(t.a,{href:"https://trac.webkit.org/wiki/JavaScriptCore",children:"JavaScriptCore"}),"\uff08JSC\uff09\u4f5c\u4e3a\u8fd0\u884c\u65f6\u73af\u5883\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528 Safari \u6765\u8c03\u8bd5\u5e94\u7528\u7684 iOS \u7248\u672c\u3002"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"\u4ec5\u9002\u7528\u4e8e\u7269\u7406\u8bbe\u5907"}),'\uff1a\u6253\u5f00"\u8bbe\u7f6e"\u5e94\u7528\uff0c\u5bfc\u822a\u5230 Safari > \u9ad8\u7ea7\uff0c\u786e\u4fdd"Web \u68c0\u67e5\u5668"\u5df2\u6253\u5f00\u3002']}),"\n",(0,n.jsx)(t.li,{children:'\u5728 Mac \u4e0a\uff0c\u6253\u5f00 Safari \u5e76\u542f\u7528"\u5f00\u53d1"\u83dc\u5355\u3002\u53ef\u4ee5\u5728 Safari > \u8bbe\u7f6e... \u4e0b\u627e\u5230\uff0c\u7136\u540e\u9009\u62e9"\u9ad8\u7ea7"\u9009\u9879\u5361\uff0c\u518d\u52fe\u9009"\u663e\u793a\u5f00\u53d1\u8005\u529f\u80fd"\u3002'}),"\n",(0,n.jsx)(t.li,{children:'\u5728"\u5f00\u53d1"\u83dc\u5355\u4e0b\u627e\u5230\u4f60\u7684\u8bbe\u5907\uff0c\u5e76\u4ece\u5b50\u83dc\u5355\u4e2d\u9009\u62e9"JSContext"\u9879\u3002\u8fd9\u5c06\u6253\u5f00 Safari \u7684 Web \u68c0\u67e5\u5668\uff0c\u5176\u4e2d\u5305\u62ec\u7c7b\u4f3c\u4e8e Chrome \u5f00\u53d1\u8005\u5de5\u5177\u7684\u63a7\u5236\u53f0\u548c\u6e90\u4ee3\u7801\u9762\u677f\u3002'}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Opening Safari Web Inspector",src:r(26434).Z+"",width:"1600",height:"730"})}),"\n",(0,n.jsx)(t.admonition,{type:"tip",children:(0,n.jsx)(t.p,{children:"\u867d\u7136\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u53ef\u80fd\u6ca1\u6709\u542f\u7528 Source Map,\u4f46\u662f\u4f60\u53ef\u4ee5\u53c2\u8003\u8fd9\u7bc7\u6307\u5357\u6216\u8005\u89c6\u9891,\u4e86\u89e3\u5982\u4f55\u542f\u7528\u5b83\u4eec,\u5e76\u5728\u6e90\u4ee3\u7801\u7684\u6b63\u786e\u4f4d\u7f6e\u8bbe\u7f6e\u65ad\u70b9\u3002"})}),"\n",(0,n.jsx)(t.admonition,{type:"tip",children:(0,n.jsx)(t.p,{children:'\u6bcf\u6b21\u5e94\u7528\u91cd\u65b0\u52a0\u8f7d\u65f6,\u90fd\u4f1a\u521b\u5efa\u4e00\u4e2a\u65b0\u7684 JSContext\u3002\u52fe\u9009"Automatically Show Web Inspectors for JSContexts"\u53ef\u4ee5\u7701\u53bb\u4f60\u624b\u52a8\u9009\u62e9\u6700\u65b0 JSContext \u7684\u9ebb\u70e6\u3002'})}),"\n",(0,n.jsx)(t.h2,{id:"\u8fdc\u7a0b-javascript-\u8c03\u8bd5\u5df2\u5f03\u7528",children:"\u8fdc\u7a0b JavaScript \u8c03\u8bd5\uff08\u5df2\u5f03\u7528\uff09"}),"\n",(0,n.jsx)(t.admonition,{type:"warning",children:(0,n.jsx)(t.p,{children:"\u5728 React Native 0.73 \u7248\u672c\u4e2d\uff0c\u8fdc\u7a0b JavaScript \u8c03\u8bd5\u529f\u80fd\u5df2\u88ab\u5f03\u7528\uff0c\u672a\u6765\u7248\u672c\u5c06\u5f7b\u5e95\u79fb\u9664\u3002"})}),"\n",(0,n.jsx)(t.p,{children:"\u8fdc\u7a0b JavaScript \u8c03\u8bd5\u53ef\u4ee5\u5c06\u5916\u90e8\u7f51\u9875\u6d4f\u89c8\u5668\uff08Chrome\uff09\u8fde\u63a5\u5230\u4f60\u7684\u5e94\u7528\uff0c\u5e76\u5728\u7f51\u9875\u4e2d\u8fd0\u884c\u4f60\u7684 JavaScript \u4ee3\u7801\u3002\u8fd9\u4f7f\u5f97\u4f60\u53ef\u4ee5\u50cf\u8c03\u8bd5\u666e\u901a\u7f51\u9875\u5e94\u7528\u4e00\u6837\uff0c\u4f7f\u7528 Chrome \u7684\u8c03\u8bd5\u5668\u6765\u8c03\u8bd5 React Native \u5e94\u7528\u3002\u4e0d\u8fc7\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u6d4f\u89c8\u5668\u73af\u5883\u4e0e\u5e94\u7528\u73af\u5883\u53ef\u80fd\u5b58\u5728\u5f88\u5927\u5dee\u5f02\uff0c\u5e76\u975e\u6240\u6709\u7684 React Native \u6a21\u5757\u90fd\u80fd\u5728\u8fd9\u79cd\u8c03\u8bd5\u65b9\u5f0f\u4e0b\u6b63\u5e38\u5de5\u4f5c\u3002"}),"\n",(0,n.jsx)(t.h3,{id:"\u8bbe\u7f6e",children:"\u8bbe\u7f6e"}),"\n",(0,n.jsxs)(t.p,{children:["\u4ece React Native 0.73 \u5f00\u59cb\uff0c\u5fc5\u987b\u4f7f\u7528 ",(0,n.jsx)(t.code,{children:"NativeDevSettings"})," \u6a21\u5757",(0,n.jsx)(t.strong,{children:"\u624b\u52a8\u542f\u7528"}),"\u8fdc\u7a0b JavaScript \u8c03\u8bd5\u529f\u80fd\u3002"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-js",children:"import NativeDevSettings from 'react-native/Libraries/NativeModules/specs/NativeDevSettings';\n\nfunction MyApp() {\n // \u5c06\u6b64\u64cd\u4f5c\u5206\u914d\u7ed9\u53ea\u5728\u5f00\u53d1\u6a21\u5f0f\u4e0b\u663e\u793a\u7684\u6309\u94ae\u6216 useEffect \u8c03\u7528\u3002\n const connectToRemoteDebugger = () => {\n NativeDevSettings.setIsDebuggingRemotely(true);\n };\n}\n"})}),"\n",(0,n.jsxs)(t.p,{children:["\u5f53\u8c03\u7528",(0,n.jsx)(t.code,{children:"NativeDevSettings.setIsDebuggingRemotely(true)"}),"\u65f6,\u7cfb\u7edf\u4f1a\u6253\u5f00\u65b0\u7684\u6807\u7b7e\u9875",(0,n.jsx)(t.a,{href:"http://localhost:8081/debugger-ui",children:"http://localhost:8081/debugger-ui"}),"\u3002"]}),"\n",(0,n.jsx)(t.p,{children:"\u4ece\u8be5\u9875\u9762,\u4f60\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u6253\u5f00 Chrome \u5f00\u53d1\u8005\u5de5\u5177:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"View > Developer > Developer Tools"}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)("kbd",{children:"\u2325 Option"})," + ",(0,n.jsx)("kbd",{children:"Cmd \u2318"})," + ",(0,n.jsx)("kbd",{children:"I"})," (macOS) / ",(0,n.jsx)("kbd",{children:"Ctrl"})," + ",(0,n.jsx)("kbd",{children:"Shift"})," + ",(0,n.jsx)("kbd",{children:"I"})," (Windows \u548c Linux \u7cfb\u7edf)\u3002"]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"\u4f60\u53ef\u4ee5\u5728\u63a7\u5236\u53f0\u548c\u6e90\u4ee3\u7801\u9762\u677f\u4e2d\u67e5\u770b React Native \u4ee3\u7801\u3002"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"The remote debugger window in Chrome",src:r(23311).Z+"",width:"1600",height:"680"})}),"\n",(0,n.jsx)(t.admonition,{title:"\u4fe1\u606f",type:"info",children:(0,n.jsxs)(t.p,{children:["\u5728 Chrome \u8fdc\u7a0b JavaScript \u8c03\u8bd5\u5668\u4e0b,React DevTools \u7684\u7f51\u9875\u7248\u672c\u5c06\u65e0\u6cd5\u4e0e React Native \u4e00\u8d77\u4f7f\u7528\u3002\u8bf7\u53c2\u9605 ",(0,n.jsx)(t.a,{href:"./react-devtools",children:"React DevTools"})," \u6307\u5357,\u4e86\u89e3\u5982\u4f55\u4f7f\u7528\u72ec\u7acb\u7248\u672c\u7684 React DevTools\u3002"]})}),"\n",(0,n.jsx)(t.admonition,{title:"\u6ce8\u610f",type:"note",children:(0,n.jsxs)(t.p,{children:["\u5728 Android \u4e0a,\u5982\u679c\u8c03\u8bd5\u5668\u4e0e\u8bbe\u5907\u4e4b\u95f4\u7684\u65f6\u95f4\u53d1\u751f\u504f\u79fb,\u53ef\u80fd\u4f1a\u5bfc\u81f4\u52a8\u753b\u548c\u4e8b\u4ef6\u884c\u4e3a\u5f02\u5e38\u3002\u53ef\u4ee5\u901a\u8fc7\u8fd0\u884c ",(0,n.jsx)(t.code,{children:'adb shell "date '}),"date +%m%d%H%M%Y.%S%3N",(0,n.jsx)(t.code,{children:'"'})," \u547d\u4ee4\u6765\u4fee\u590d\u8fd9\u4e2a\u95ee\u9898\u3002\u5982\u679c\u4f7f\u7528\u7269\u7406\u8bbe\u5907,\u5219\u9700\u8981 root \u6743\u9650\u3002"]})}),"\n",(0,n.jsx)(t.h3,{id:"\u5728\u5b9e\u4f53\u8bbe\u5907\u4e0a\u8c03\u8bd5",children:"\u5728\u5b9e\u4f53\u8bbe\u5907\u4e0a\u8c03\u8bd5"}),"\n",(0,n.jsx)(t.admonition,{type:"info",children:(0,n.jsx)(t.p,{children:"\u5982\u679c\u60a8\u4f7f\u7528\u7684\u662f Expo CLI\uff0c\u5219\u5df2\u4e3a\u60a8\u914d\u7f6e\u597d\u4e86\u3002"})}),"\n",(0,n.jsxs)(l.Z,{groupId:"platform",defaultValue:o.Z.defaultPlatform,values:o.Z.platforms,className:"pill-tabs",children:[(0,n.jsx)(i.Z,{value:"ios",children:(0,n.jsxs)(t.p,{children:["\u5728 iOS \u8bbe\u5907\u4e0a,\u6253\u5f00\u6587\u4ef6",(0,n.jsx)(t.a,{href:"https://github.com/facebook/react-native/blob/master/packages/react-native/React/CoreModules/RCTWebSocketExecutor.mm",children:(0,n.jsx)(t.code,{children:"RCTWebSocketExecutor.mm"})}),',\u5c06"localhost"\u66ff\u6362\u4e3a\u4f60\u7535\u8111\u7684 IP \u5730\u5740\u3002']})}),(0,n.jsxs)(i.Z,{value:"android",children:[(0,n.jsxs)(t.p,{children:["\u5bf9\u4e8e\u901a\u8fc7 USB \u8fde\u63a5\u7684 Android 5.0+\u8bbe\u5907,\u60a8\u53ef\u4ee5\u4f7f\u7528",(0,n.jsxs)(t.a,{href:"http://developer.android.com/tools/help/adb.html",children:[(0,n.jsx)(t.code,{children:"adb"}),"\u547d\u4ee4\u884c\u5de5\u5177"]}),"\u5728\u8bbe\u5907\u548c\u7535\u8111\u4e4b\u95f4\u5efa\u7acb\u7aef\u53e3\u6620\u5c04:"]}),(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-sh",children:"adb reverse tcp:8081 tcp:8081\n"})})]})]}),"\n",(0,n.jsx)(t.admonition,{title:"\u6ce8\u610f",type:"note",children:(0,n.jsx)(t.p,{children:"\u5982\u679c\u60a8\u9047\u5230\u4efb\u4f55\u95ee\u9898,\u53ef\u80fd\u662f\u67d0\u4e2a Chrome \u6269\u5c55\u7a0b\u5e8f\u4e0e\u8c03\u8bd5\u5668\u6709\u4e86\u610f\u5916\u7684\u4e92\u52a8\u3002\u8bf7\u5c1d\u8bd5\u7981\u7528\u6240\u6709\u6269\u5c55\u7a0b\u5e8f\uff0c\u7136\u540e\u4e00\u4e2a\u4e2a\u91cd\u65b0\u542f\u7528\uff0c\u76f4\u5230\u627e\u5230\u6709\u95ee\u9898\u7684\u6269\u5c55\u7a0b\u5e8f\u3002"})})]})}function b(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},11674:(e,t,r)=>{r.d(t,{Z:()=>i});var n=r(63445);const a=!!n.Z.canUseDOM&&navigator.platform.startsWith("Mac"),l=!!n.Z.canUseDOM&&navigator.platform.startsWith("Win"),i={defaultGuide:"native",defaultOs:a?"macos":l?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:a?"ios":"android",defaultSyntax:"functional",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"}]}},86386:(e,t,r)=>{r.d(t,{Z:()=>p});var n=r(27378),a=r(40624);const l={tabItem:"tabItem_wHwb"};var i=Object.defineProperty,o=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable,u=(e,t,r)=>t in e?i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,d=(e,t)=>{for(var r in t||(t={}))s.call(t,r)&&u(e,r,t[r]);if(o)for(var r of o(t))c.call(t,r)&&u(e,r,t[r]);return e};function p({children:e,hidden:t,className:r}){return n.createElement("div",d({role:"tabpanel",className:(0,a.Z)(l.tabItem,r)},{hidden:t}),e)}},48375:(e,t,r)=>{r.d(t,{Z:()=>A});var n=r(27378),a=r(40624),l=r(12112),i=r(3620),o=r(69490),s=r(14953),c=r(27886),u=r(7106),d=Object.defineProperty,p=Object.defineProperties,h=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable,m=(e,t,r)=>t in e?d(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))f.call(t,r)&&m(e,r,t[r]);if(b)for(var r of b(t))v.call(t,r)&&m(e,r,t[r]);return e},x=(e,t)=>p(e,h(t));function j(e){var t,r;return null!=(r=null==(t=n.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(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.`)})))?void 0:t.filter(Boolean))?r:[]}function y(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=null!=t?t:function(e){return j(e).map((({props:{value:e,label:t,attributes:r,default:n}})=>({value:e,label:t,attributes:r,default:n})))}(r);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,r])}function w({value:e,tabValues:t}){return t.some((t=>t.value===e))}function S({queryString:e=!1,groupId:t}){const r=(0,i.k6)(),a=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)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 null!=t?t:null}({queryString:e,groupId:t});return[(0,s._X)(a),(0,n.useCallback)((e=>{if(!a)return;const t=new URLSearchParams(r.location.search);t.set(a,e),r.replace(x(g({},r.location),{search:t.toString()}))}),[a,r])]}function O(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,l=y(e),[i,s]=(0,n.useState)((()=>function({defaultValue:e,tabValues:t}){var r;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!w({value:e,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const n=null!=(r=t.find((e=>e.default)))?r:t[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[c,d]=S({queryString:r,groupId:a}),[p,h]=function({groupId:e}){const t=function(e){return e?`docusaurus.tab.${e}`:null}(e),[r,a]=(0,u.Nk)(t);return[r,(0,n.useCallback)((e=>{t&&a.set(e)}),[t,a])]}({groupId:a}),b=(()=>{const e=null!=c?c:p;return w({value:e,tabValues:l})?e:null})();(0,o.Z)((()=>{b&&s(b)}),[b]);return{selectedValue:i,selectValue:(0,n.useCallback)((e=>{if(!w({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),d(e),h(e)}),[d,h,l]),tabValues:l}}var k=r(14185);const E={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};var C=Object.defineProperty,I=Object.defineProperties,N=Object.getOwnPropertyDescriptors,D=Object.getOwnPropertySymbols,T=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable,P=(e,t,r)=>t in e?C(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,R=(e,t)=>{for(var r in t||(t={}))T.call(t,r)&&P(e,r,t[r]);if(D)for(var r of D(t))_.call(t,r)&&P(e,r,t[r]);return e},V=(e,t)=>I(e,N(t));function Z({className:e,block:t,selectedValue:r,selectValue:i,tabValues:o}){const s=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),u=e=>{const t=e.currentTarget,n=s.indexOf(t),a=o[n].value;a!==r&&(c(t),i(a))},d=e=>{var t,r;let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const r=s.indexOf(e.currentTarget)+1;n=null!=(t=s[r])?t:s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;n=null!=(r=s[t])?r:s[s.length-1];break}}null==n||n.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},e)},o.map((({value:e,label:t,attributes:l})=>n.createElement("li",V(R({role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,key:e,ref:e=>s.push(e),onKeyDown:d,onClick:u},l),{className:(0,a.Z)("tabs__item",E.tabItem,null==l?void 0:l.className,{"tabs__item--active":r===e})}),null!=t?t:e))))}function J({lazy:e,children:t,selectedValue:r}){const a=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){const e=a.find((e=>e.props.value===r));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},a.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function M(e){const t=O(e);return n.createElement("div",{className:(0,a.Z)("tabs-container",E.tabList)},n.createElement(Z,R(R({},e),t)),n.createElement(J,R(R({},e),t)))}function A(e){const t=(0,k.Z)();return n.createElement(M,R({key:String(t)},e),j(e.children))}},71426:(e,t,r)=>{var n=r(27378),a=Symbol.for("react.element"),l=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,o=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,r){var n,l={},c=null,u=null;for(n in void 0!==r&&(c=""+r),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,n)&&!s.hasOwnProperty(n)&&(l[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps)void 0===l[n]&&(l[n]=t[n]);return{$$typeof:a,type:e,key:c,ref:u,props:l,_owner:o.current}}t.Fragment=l,t.jsx=c,t.jsxs=c},24246:(e,t,r)=>{e.exports=r(71426)},23311:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/debugging-chrome-remote-debugger-09207af31fea81d1d97a81a0d96774ba.jpg"},26434:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/debugging-safari-developer-tools-a67219e1ea0f852bbb150c988b00c3cf.jpg"},71670:(e,t,r)=>{r.d(t,{Z:()=>o,a:()=>i});var n=r(27378);const a={},l=n.createContext(a);function i(e){const t=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8d3fc5c6.091bf9b7.js.LICENSE.txt b/assets/js/8d3fc5c6.df240f3f.js.LICENSE.txt similarity index 100% rename from assets/js/8d3fc5c6.091bf9b7.js.LICENSE.txt rename to assets/js/8d3fc5c6.df240f3f.js.LICENSE.txt diff --git a/assets/js/935f2afb.42487ea9.js b/assets/js/935f2afb.42487ea9.js new file mode 100644 index 00000000000..6bf24eab4bc --- /dev/null +++ b/assets/js/935f2afb.42487ea9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[80053],{1109:e=>{e.exports=JSON.parse('{"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":"UI \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 \u5f00\u53d1\u8005\u5de5\u5177","href":"/docs/next/react-devtools","docId":"react-devtools","unlisted":false},{"type":"link","label":"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801","href":"/docs/next/native-debugging","docId":"native-debugging","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},{"type":"link","label":"\u5728 Hermes \u4e2d\u8fdb\u884c\u6027\u80fd\u5206\u6790","href":"/docs/next/profile-hermes","docId":"profile-hermes","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":"\u539f\u751f\u6a21\u5757","items":[{"type":"link","label":"\u539f\u751f\u6a21\u5757\u7b80\u4ecb","href":"/docs/next/native-modules-intro","docId":"native-modules-intro","unlisted":false},{"type":"link","label":"Android \u539f\u751f\u6a21\u5757","href":"/docs/next/native-modules-android","docId":"native-modules-android","unlisted":false},{"type":"link","label":"iOS \u539f\u751f\u6a21\u5757","href":"/docs/next/native-modules-ios","docId":"native-modules-ios","unlisted":false},{"type":"link","label":"\u539f\u751f\u6a21\u5757\u914d\u7f6e","href":"/docs/next/native-modules-setup","docId":"native-modules-setup","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u539f\u751f UI \u7ec4\u4ef6","items":[{"type":"link","label":"Android \u539f\u751fUI\u7ec4\u4ef6","href":"/docs/next/native-components-android","docId":"native-components-android","unlisted":false},{"type":"link","label":"iOS \u539f\u751fUI\u7ec4\u4ef6","href":"/docs/next/native-components-ios","docId":"native-components-ios","unlisted":false},{"type":"link","label":"\u76f4\u63a5\u64cd\u4f5c","href":"/docs/next/direct-manipulation","docId":"direct-manipulation","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u65b0\u67b6\u6784\u4ecb\u7ecd","items":[{"type":"link","label":"\u65b0\u67b6\u6784\u4ecb\u7ecd","href":"/docs/next/the-new-architecture/landing-page","docId":"the-new-architecture/landing-page","unlisted":false},{"type":"link","label":"\u4e3a\u4f55\u8981\u8bbe\u8ba1\u65b0\u67b6\u6784","href":"/docs/next/the-new-architecture/why","docId":"the-new-architecture/why","unlisted":false},{"type":"link","label":"\u521b\u5efa\u542f\u7528\u65b0\u67b6\u6784\u7684\u5e94\u7528","href":"/docs/next/the-new-architecture/use-app-template","docId":"the-new-architecture/use-app-template","unlisted":false},{"type":"category","label":"\u6838\u5fc3\u8bbe\u8ba1","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u65b0\u67b6\u6784\u7684\u4e24\u5927\u652f\u67f1","href":"/docs/next/the-new-architecture/pillars","docId":"the-new-architecture/pillars","unlisted":false},{"type":"link","label":"TurboModules","href":"/docs/next/the-new-architecture/pillars-turbomodules","docId":"the-new-architecture/pillars-turbomodules","unlisted":false},{"type":"link","label":"Fabric \u7ec4\u4ef6","href":"/docs/next/the-new-architecture/pillars-fabric-components","docId":"the-new-architecture/pillars-fabric-components","unlisted":false},{"type":"link","label":"Codegen","href":"/docs/next/the-new-architecture/pillars-codegen","docId":"the-new-architecture/pillars-codegen","unlisted":false}]},{"type":"category","label":"C++","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"C++ Turbo \u539f\u751f\u6a21\u5757","href":"/docs/next/the-new-architecture/cxx-cxxturbomodules","docId":"the-new-architecture/cxx-cxxturbomodules","unlisted":false},{"type":"link","label":"\u652f\u6301\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b","href":"/docs/next/the-new-architecture/cxx-custom-types","docId":"the-new-architecture/cxx-custom-types","unlisted":false}]},{"type":"category","label":"\u5411\u540e\u517c\u5bb9\u6027","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u5411\u540e\u517c\u5bb9\u7684\u610f\u4e49","href":"/docs/next/the-new-architecture/backward-compatibility","docId":"the-new-architecture/backward-compatibility","unlisted":false},{"type":"link","label":"\u4f7f Turbo \u6a21\u5757\u4e0e\u4f20\u7edf\u539f\u751f\u6a21\u5757\u517c\u5bb9","href":"/docs/next/the-new-architecture/backward-compatibility-turbomodules","docId":"the-new-architecture/backward-compatibility-turbomodules","unlisted":false},{"type":"link","label":"\u4f7f Fabric \u7ec4\u4ef6\u4e0e\u4f20\u7edf\u539f\u751f\u7ec4\u4ef6\u517c\u5bb9","href":"/docs/next/the-new-architecture/backward-compatibility-fabric-components","docId":"the-new-architecture/backward-compatibility-fabric-components","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u65b0\u67b6\u6784\u8fc1\u79fb\u6307\u5357","items":[{"type":"link","label":"\u8fc1\u79fb\u5230\u65b0\u67b6\u6784","href":"/docs/next/new-architecture-intro","docId":"new-architecture-intro","unlisted":false},{"type":"category","label":"\u5728\u7b2c\u4e09\u65b9\u5e93\u4e2d\u542f\u7528","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u5728\u5e93\u4e2d\u542f\u7528\u7684\u9884\u5907\u5de5\u4f5c","href":"/docs/next/new-architecture-library-intro","docId":"new-architecture-library-intro","unlisted":false},{"type":"link","label":"\u5728 Android \u5e93\u4e2d\u542f\u7528","href":"/docs/next/new-architecture-library-android","docId":"new-architecture-library-android","unlisted":false},{"type":"link","label":"\u5728 iOS \u5e93\u4e2d\u542f\u7528","href":"/docs/next/new-architecture-library-ios","docId":"new-architecture-library-ios","unlisted":false}]},{"type":"link","label":"\u5728\u5e94\u7528\u4e2d\u542f\u7528\u7684\u9884\u5907\u5de5\u4f5c","href":"/docs/next/new-architecture-app-intro","docId":"new-architecture-app-intro","unlisted":false},{"type":"link","label":"React 18 \u4e0e React Native","href":"/docs/next/react-18-and-react-native","docId":"react-18-and-react-native","unlisted":false},{"type":"link","label":"\u5e38\u89c1\u95ee\u9898","href":"/docs/next/new-architecture-troubleshooting","docId":"new-architecture-troubleshooting","unlisted":false},{"type":"link","label":"Appendix","href":"/docs/next/new-architecture-appendix","docId":"new-architecture-appendix","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}],"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"},"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-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"},"direct-manipulation":{"id":"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"},"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-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"},"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-components-android":{"id":"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"},"native-components-ios":{"id":"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"},"native-debugging":{"id":"native-debugging","title":"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801","description":"Projects with Native Code Only","sidebar":"docs"},"native-modules-android":{"id":"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"},"native-modules-intro":{"id":"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"},"native-modules-ios":{"id":"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"},"native-modules-setup":{"id":"native-modules-setup","title":"\u539f\u751f\u6a21\u5757\u914d\u7f6e","description":"\u539f\u751f\u6a21\u5757\u901a\u5e38\u4f5c\u4e3a npm \u5305\u5206\u53d1\uff0c\u9664\u4e86\u5e38\u89c4\u7684 JavaScript \u5916\uff0c\u5b83\u4eec\u8fd8\u4f1a\u5305\u542b\u6bcf\u4e2a\u5e73\u53f0\u7684\u4e00\u4e9b\u672c\u5730\u4ee3\u7801\u3002\u8981\u4e86\u89e3\u66f4\u591a\u5173\u4e8e npm \u5305\u7684\u4fe1\u606f\uff0c\u4f60\u53ef\u80fd\u4f1a\u53d1\u73b0\u8fd9\u4e2a\u6307\u5357\u5f88\u6709\u7528\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","sidebar":"docs"},"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-appendix":{"id":"new-architecture-appendix","title":"Appendix","description":"\u4e00\u3001\u672f\u8bed","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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.","sidebar":"docs"},"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.","sidebar":"docs"},"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","sidebar":"docs"},"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":"PressEvent object is returned in the callback as a result of user press interaction, for example onPress in Button component.","sidebar":"\u7ec4\u4ef6"},"profile-hermes":{"id":"profile-hermes","title":"\u5728 Hermes \u4e2d\u8fdb\u884c\u6027\u80fd\u5206\u6790","description":"\u4f60\u53ef\u4ee5\u4f7f\u7528Hermes\u5728React Native\u5e94\u7528\u4e2d\u53ef\u89c6\u5316JavaScript\u7684\u6027\u80fd\u3002Hermes\u662f\u4e00\u4e2a\u5c0f\u578b\u4e14\u8f7b\u91cf\u7684JavaScript\u5f15\u64ce\uff08\u4f60\u53ef\u4ee5\u5728\u8fd9\u91cc\u9605\u8bfb\u66f4\u591a\u6709\u5173\u5728React 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\u7684JavaScript\u6027\u80fd\u7684\u65b9\u5f0f\u3002","sidebar":"docs"},"profiling":{"id":"profiling","title":"Profiling","description":"Use the built-in profiler to get detailed information about work done in the JavaScript thread and main thread side-by-side. Access it by selecting Perf Monitor from the Debug menu.","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","sidebar":"docs"},"react-devtools":{"id":"react-devtools","title":"React \u5f00\u53d1\u8005\u5de5\u5177","description":"\u4f60\u53ef\u4ee5\u4f7f\u7528\u72ec\u7acb\u7248 React \u5f00\u53d1\u8005\u5de5\u5177(\u4e0d\u662f chrome \u7684\u63d2\u4ef6)\u6765\u8c03\u8bd5 React \u7ec4\u4ef6\u5c42\u6b21\u7ed3\u6784\u3002\u8981\u4f7f\u7528\u5b83\uff0c\u8bf7\u5168\u5c40\u5b89\u88c5react-devtools\u5305:","sidebar":"docs"},"react-native-gradle-plugin":{"id":"react-native-gradle-plugin","title":"React Native Gradle Plugin","description":"This guide describes how to configure the React Native Gradle Plugin (often referred as RNGP), when building your React Native application for Android.","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 accepts numeric pixel values to describe how far to extend a rectangular area. These values are added to the original area\'s size to expand it.","sidebar":"\u7ec4\u4ef6"},"rectorsize":{"id":"rectorsize","title":"RectOrSize Object Type","description":"RectOrSize accepts numeric pixel values to describe how far to extend a rectangular area. These values are added to the original area\'s size to expand it."},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","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","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","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","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","sidebar":"docs"},"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."},"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\u3002There\'s currently two ways for upgrading your React Native project: by using React Native CLI or manually with Upgrade Helper.","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":"Vibrates the device.","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/935f2afb.98911ab7.js b/assets/js/935f2afb.98911ab7.js deleted file mode 100644 index cb01fd98060..00000000000 --- a/assets/js/935f2afb.98911ab7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[80053],{1109:e=>{e.exports=JSON.parse('{"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":"UI \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 \u5f00\u53d1\u8005\u5de5\u5177","href":"/docs/next/react-devtools","docId":"react-devtools","unlisted":false},{"type":"link","label":"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801","href":"/docs/next/native-debugging","docId":"native-debugging","unlisted":false},{"type":"link","label":"Debugging Release Builds","href":"/docs/next/debugging-release-builds","docId":"debugging-release-builds","unlisted":false},{"type":"link","label":"Other Debugging Methods","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},{"type":"link","label":"\u5728 Hermes \u4e2d\u8fdb\u884c\u6027\u80fd\u5206\u6790","href":"/docs/next/profile-hermes","docId":"profile-hermes","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":"\u539f\u751f\u6a21\u5757","items":[{"type":"link","label":"\u539f\u751f\u6a21\u5757\u7b80\u4ecb","href":"/docs/next/native-modules-intro","docId":"native-modules-intro","unlisted":false},{"type":"link","label":"Android \u539f\u751f\u6a21\u5757","href":"/docs/next/native-modules-android","docId":"native-modules-android","unlisted":false},{"type":"link","label":"iOS \u539f\u751f\u6a21\u5757","href":"/docs/next/native-modules-ios","docId":"native-modules-ios","unlisted":false},{"type":"link","label":"\u539f\u751f\u6a21\u5757\u914d\u7f6e","href":"/docs/next/native-modules-setup","docId":"native-modules-setup","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u539f\u751f UI \u7ec4\u4ef6","items":[{"type":"link","label":"Android \u539f\u751fUI\u7ec4\u4ef6","href":"/docs/next/native-components-android","docId":"native-components-android","unlisted":false},{"type":"link","label":"iOS \u539f\u751fUI\u7ec4\u4ef6","href":"/docs/next/native-components-ios","docId":"native-components-ios","unlisted":false},{"type":"link","label":"\u76f4\u63a5\u64cd\u4f5c","href":"/docs/next/direct-manipulation","docId":"direct-manipulation","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u65b0\u67b6\u6784\u4ecb\u7ecd","items":[{"type":"link","label":"\u65b0\u67b6\u6784\u4ecb\u7ecd","href":"/docs/next/the-new-architecture/landing-page","docId":"the-new-architecture/landing-page","unlisted":false},{"type":"link","label":"\u4e3a\u4f55\u8981\u8bbe\u8ba1\u65b0\u67b6\u6784","href":"/docs/next/the-new-architecture/why","docId":"the-new-architecture/why","unlisted":false},{"type":"link","label":"\u521b\u5efa\u542f\u7528\u65b0\u67b6\u6784\u7684\u5e94\u7528","href":"/docs/next/the-new-architecture/use-app-template","docId":"the-new-architecture/use-app-template","unlisted":false},{"type":"category","label":"\u6838\u5fc3\u8bbe\u8ba1","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u65b0\u67b6\u6784\u7684\u4e24\u5927\u652f\u67f1","href":"/docs/next/the-new-architecture/pillars","docId":"the-new-architecture/pillars","unlisted":false},{"type":"link","label":"TurboModules","href":"/docs/next/the-new-architecture/pillars-turbomodules","docId":"the-new-architecture/pillars-turbomodules","unlisted":false},{"type":"link","label":"Fabric \u7ec4\u4ef6","href":"/docs/next/the-new-architecture/pillars-fabric-components","docId":"the-new-architecture/pillars-fabric-components","unlisted":false},{"type":"link","label":"Codegen","href":"/docs/next/the-new-architecture/pillars-codegen","docId":"the-new-architecture/pillars-codegen","unlisted":false}]},{"type":"category","label":"C++","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"C++ Turbo \u539f\u751f\u6a21\u5757","href":"/docs/next/the-new-architecture/cxx-cxxturbomodules","docId":"the-new-architecture/cxx-cxxturbomodules","unlisted":false},{"type":"link","label":"\u652f\u6301\u81ea\u5b9a\u4e49 C++ \u7c7b\u578b","href":"/docs/next/the-new-architecture/cxx-custom-types","docId":"the-new-architecture/cxx-custom-types","unlisted":false}]},{"type":"category","label":"\u5411\u540e\u517c\u5bb9\u6027","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u5411\u540e\u517c\u5bb9\u7684\u610f\u4e49","href":"/docs/next/the-new-architecture/backward-compatibility","docId":"the-new-architecture/backward-compatibility","unlisted":false},{"type":"link","label":"\u4f7f Turbo \u6a21\u5757\u4e0e\u4f20\u7edf\u539f\u751f\u6a21\u5757\u517c\u5bb9","href":"/docs/next/the-new-architecture/backward-compatibility-turbomodules","docId":"the-new-architecture/backward-compatibility-turbomodules","unlisted":false},{"type":"link","label":"\u4f7f Fabric \u7ec4\u4ef6\u4e0e\u4f20\u7edf\u539f\u751f\u7ec4\u4ef6\u517c\u5bb9","href":"/docs/next/the-new-architecture/backward-compatibility-fabric-components","docId":"the-new-architecture/backward-compatibility-fabric-components","unlisted":false}]}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u65b0\u67b6\u6784\u8fc1\u79fb\u6307\u5357","items":[{"type":"link","label":"\u8fc1\u79fb\u5230\u65b0\u67b6\u6784","href":"/docs/next/new-architecture-intro","docId":"new-architecture-intro","unlisted":false},{"type":"category","label":"\u5728\u7b2c\u4e09\u65b9\u5e93\u4e2d\u542f\u7528","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u5728\u5e93\u4e2d\u542f\u7528\u7684\u9884\u5907\u5de5\u4f5c","href":"/docs/next/new-architecture-library-intro","docId":"new-architecture-library-intro","unlisted":false},{"type":"link","label":"\u5728 Android \u5e93\u4e2d\u542f\u7528","href":"/docs/next/new-architecture-library-android","docId":"new-architecture-library-android","unlisted":false},{"type":"link","label":"\u5728 iOS \u5e93\u4e2d\u542f\u7528","href":"/docs/next/new-architecture-library-ios","docId":"new-architecture-library-ios","unlisted":false}]},{"type":"link","label":"\u5728\u5e94\u7528\u4e2d\u542f\u7528\u7684\u9884\u5907\u5de5\u4f5c","href":"/docs/next/new-architecture-app-intro","docId":"new-architecture-app-intro","unlisted":false},{"type":"link","label":"React 18 \u4e0e React Native","href":"/docs/next/react-18-and-react-native","docId":"react-18-and-react-native","unlisted":false},{"type":"link","label":"\u5e38\u89c1\u95ee\u9898","href":"/docs/next/new-architecture-troubleshooting","docId":"new-architecture-troubleshooting","unlisted":false},{"type":"link","label":"Appendix","href":"/docs/next/new-architecture-appendix","docId":"new-architecture-appendix","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}],"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"},"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-release-builds":{"id":"debugging-release-builds","title":"Debugging Release Builds","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"},"direct-manipulation":{"id":"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"},"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-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"},"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-components-android":{"id":"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"},"native-components-ios":{"id":"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"},"native-debugging":{"id":"native-debugging","title":"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801","description":"Projects with Native Code Only","sidebar":"docs"},"native-modules-android":{"id":"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"},"native-modules-intro":{"id":"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"},"native-modules-ios":{"id":"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"},"native-modules-setup":{"id":"native-modules-setup","title":"\u539f\u751f\u6a21\u5757\u914d\u7f6e","description":"\u539f\u751f\u6a21\u5757\u901a\u5e38\u4f5c\u4e3a npm \u5305\u5206\u53d1\uff0c\u9664\u4e86\u5e38\u89c4\u7684 JavaScript \u5916\uff0c\u5b83\u4eec\u8fd8\u4f1a\u5305\u542b\u6bcf\u4e2a\u5e73\u53f0\u7684\u4e00\u4e9b\u672c\u5730\u4ee3\u7801\u3002\u8981\u4e86\u89e3\u66f4\u591a\u5173\u4e8e npm \u5305\u7684\u4fe1\u606f\uff0c\u4f60\u53ef\u80fd\u4f1a\u53d1\u73b0\u8fd9\u4e2a\u6307\u5357\u5f88\u6709\u7528\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","sidebar":"docs"},"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-appendix":{"id":"new-architecture-appendix","title":"Appendix","description":"\u4e00\u3001\u672f\u8bed","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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.","sidebar":"docs"},"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.","sidebar":"docs"},"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","sidebar":"docs"},"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":"Other Debugging Methods","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":"PressEvent object is returned in the callback as a result of user press interaction, for example onPress in Button component.","sidebar":"\u7ec4\u4ef6"},"profile-hermes":{"id":"profile-hermes","title":"\u5728 Hermes \u4e2d\u8fdb\u884c\u6027\u80fd\u5206\u6790","description":"\u4f60\u53ef\u4ee5\u4f7f\u7528Hermes\u5728React Native\u5e94\u7528\u4e2d\u53ef\u89c6\u5316JavaScript\u7684\u6027\u80fd\u3002Hermes\u662f\u4e00\u4e2a\u5c0f\u578b\u4e14\u8f7b\u91cf\u7684JavaScript\u5f15\u64ce\uff08\u4f60\u53ef\u4ee5\u5728\u8fd9\u91cc\u9605\u8bfb\u66f4\u591a\u6709\u5173\u5728React 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\u7684JavaScript\u6027\u80fd\u7684\u65b9\u5f0f\u3002","sidebar":"docs"},"profiling":{"id":"profiling","title":"Profiling","description":"Use the built-in profiler to get detailed information about work done in the JavaScript thread and main thread side-by-side. Access it by selecting Perf Monitor from the Debug menu.","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","sidebar":"docs"},"react-devtools":{"id":"react-devtools","title":"React \u5f00\u53d1\u8005\u5de5\u5177","description":"\u4f60\u53ef\u4ee5\u4f7f\u7528\u72ec\u7acb\u7248 React \u5f00\u53d1\u8005\u5de5\u5177(\u4e0d\u662f chrome \u7684\u63d2\u4ef6)\u6765\u8c03\u8bd5 React \u7ec4\u4ef6\u5c42\u6b21\u7ed3\u6784\u3002\u8981\u4f7f\u7528\u5b83\uff0c\u8bf7\u5168\u5c40\u5b89\u88c5react-devtools\u5305:","sidebar":"docs"},"react-native-gradle-plugin":{"id":"react-native-gradle-plugin","title":"React Native Gradle Plugin","description":"This guide describes how to configure the React Native Gradle Plugin (often referred as RNGP), when building your React Native application for Android.","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 accepts numeric pixel values to describe how far to extend a rectangular area. These values are added to the original area\'s size to expand it.","sidebar":"\u7ec4\u4ef6"},"rectorsize":{"id":"rectorsize","title":"RectOrSize Object Type","description":"RectOrSize accepts numeric pixel values to describe how far to extend a rectangular area. These values are added to the original area\'s size to expand it."},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","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","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","sidebar":"docs"},"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","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","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","sidebar":"docs"},"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."},"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\u3002There\'s currently two ways for upgrading your React Native project: by using React Native CLI or manually with Upgrade Helper.","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":"Vibrates the device.","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/a7719d3c.91898ae7.js b/assets/js/a7719d3c.91898ae7.js new file mode 100644 index 00000000000..b4063b60f85 --- /dev/null +++ b/assets/js/a7719d3c.91898ae7.js @@ -0,0 +1,2 @@ +/*! For license information please see a7719d3c.91898ae7.js.LICENSE.txt */ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[98550],{93505:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>u,default:()=>b,frontMatter:()=>s,metadata:()=>c,toc:()=>p});var r=t(24246),a=t(71670),l=t(48375),o=t(86386),i=t(11674);const s={id:"debugging-release-builds",title:"\u8c03\u8bd5\u53d1\u884c\u7248\u672c"},u=void 0,c={id:"debugging-release-builds",title:"\u8c03\u8bd5\u53d1\u884c\u7248\u672c",description:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a",source:"@site/../cndocs/debugging-release-builds.md",sourceDirName:".",slug:"/debugging-release-builds",permalink:"/docs/next/debugging-release-builds",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/debugging-release-builds.md",tags:[],version:"current",frontMatter:{id:"debugging-release-builds",title:"\u8c03\u8bd5\u53d1\u884c\u7248\u672c"},sidebar:"docs",previous:{title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",permalink:"/docs/next/native-debugging"},next:{title:"\u5176\u4ed6\u8c03\u8bd5\u65b9\u6cd5",permalink:"/docs/next/other-debugging-methods"}},d={},p=[{value:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a",id:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a",level:2},{value:"\u542f\u7528\u6e90\u6620\u5c04\uff08source map\uff09",id:"\u542f\u7528\u6e90\u6620\u5c04source-map",level:3},{value:"\u4f7f\u7528 metro-symbolicate",id:"\u4f7f\u7528-metro-symbolicate",level:3},{value:"\u6e90\u6620\u5c04\u6ce8\u610f\u4e8b\u9879",id:"\u6e90\u6620\u5c04\u6ce8\u610f\u4e8b\u9879",level:3}];function m(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a",children:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u53d1\u5e03\u7248\u672c\u4e2d\uff0cReact Native \u5e94\u7528\u5982\u679c\u89e6\u53d1\u4e86\u672a\u5904\u7406\u7684\u5f02\u5e38\uff0c\u5176\u8f93\u51fa\u53ef\u80fd\u4f1a\u88ab\u6df7\u6dc6\u5e76\u4e14\u96be\u4ee5\u9605\u8bfb\u3002"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"07-15 10:58:25.820 18979 18998 E AndroidRuntime: FATAL EXCEPTION: mqt_native_modules\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: Process: com.awesomeproject, PID: 18979 07-15 10:58:25.820 18979 18998 E AndroidRuntime: com.facebook.react.common.JavascriptException: Failed, js engine: hermes, stack:\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: p@1:132161\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: p@1:132084\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: f@1:131854\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: anonymous@1:131119\n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u5728\u4e0a\u8ff0\u5806\u6808\u8ddf\u8e2a\u4e2d\uff0c\u7c7b\u4f3c",(0,r.jsx)(n.code,{children:"p@1:132161"}),"\u7684\u6761\u76ee\u662f\u7ecf\u8fc7\u538b\u7f29\u7684\u51fd\u6570\u540d\u79f0\u548c\u5b57\u8282\u7801\u504f\u79fb\u91cf\u3002\u4e3a\u4e86\u8c03\u8bd5\u8fd9\u4e9b\u8c03\u7528\uff0c\u6211\u4eec\u5e0c\u671b\u5c06\u5b83\u4eec\u8f6c\u6362\u4e3a\u6587\u4ef6\u3001\u884c\u548c\u51fd\u6570\u540d\u79f0\uff0c\u4f8b\u5982",(0,r.jsx)(n.code,{children:"AwesomeProject/App.js:54:initializeMap"}),"\u3002\u8fd9\u88ab\u79f0\u4e3a",(0,r.jsx)(n.strong,{children:"\u7b26\u53f7\u5316"}),"\u3002"]}),"\n",(0,r.jsxs)(n.p,{children:["\u60a8\u53ef\u4ee5\u901a\u8fc7\u5c06\u5806\u6808\u8ddf\u8e2a\u548c\u751f\u6210\u7684\u6e90\u6620\u5c04\u4f20\u9012\u7ed9",(0,r.jsx)(n.a,{href:"http://npmjs.com/package/metro-symbolicate",children:(0,r.jsx)(n.code,{children:"metro-symbolicate"})}),"\u6765\u5bf9\u4e0a\u8ff0\u7c7b\u4f3c\u7684\u7ecf\u8fc7\u538b\u7f29\u7684\u51fd\u6570\u540d\u79f0\u548c\u5b57\u8282\u7801\u8fdb\u884c\u7b26\u53f7\u5316\u3002"]}),"\n",(0,r.jsx)(n.h3,{id:"\u542f\u7528\u6e90\u6620\u5c04source-map",children:"\u542f\u7528\u6e90\u6620\u5c04\uff08source map\uff09"}),"\n",(0,r.jsx)(n.p,{children:"\u6e90\u6620\u5c04\u662f\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a\u6240\u5fc5\u9700\u7684\u3002\u8bf7\u786e\u4fdd\u5728\u76ee\u6807\u5e73\u53f0\u7684\u6784\u5efa\u914d\u7f6e\u4e2d\u542f\u7528\u4e86\u6e90\u6620\u5c04\u3002"}),"\n",(0,r.jsxs)(l.Z,{groupId:"platform",queryString:!0,defaultValue:i.Z.defaultPlatform,values:i.Z.platforms,className:"pill-tabs",children:[(0,r.jsxs)(o.Z,{value:"android",children:[(0,r.jsx)(n.admonition,{type:"info",children:(0,r.jsx)(n.p,{children:"\u5728 Android \u4e0a\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u5df2\u7ecf\u542f\u7528\u4e86\u6e90\u6620\u5c04\u3002"})}),(0,r.jsxs)(n.p,{children:["\u8981\u542f\u7528\u6e90\u6620\u5c04\u751f\u6210\uff0c\u8bf7\u786e\u4fdd\u5728 ",(0,r.jsx)(n.code,{children:"android/app/build.gradle"})," \u4e2d\u5305\u542b\u4ee5\u4e0b ",(0,r.jsx)(n.code,{children:"hermesFlags"}),"\u3002"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-groovy",children:'react {\n hermesFlags = ["-O", "-output-source-map"]\n}\n'})}),(0,r.jsx)(n.p,{children:"\u5982\u679c\u64cd\u4f5c\u6b63\u786e\uff0c\u60a8\u5e94\u8be5\u5728 Metro \u6784\u5efa\u8f93\u51fa\u671f\u95f4\u770b\u5230\u6e90\u6620\u5c04\u7684\u8f93\u51fa\u4f4d\u7f6e\u3002"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-text",children:"Writing bundle output to:, android/app/build/generated/assets/react/release/index.android.bundle\nWriting sourcemap output to:, android/app/build/intermediates/sourcemaps/react/release/index.android.bundle.packager.map\n"})})]}),(0,r.jsxs)(o.Z,{value:"ios",children:[(0,r.jsx)(n.admonition,{type:"info",children:(0,r.jsx)(n.p,{children:"\u5728iOS\u4e0a\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u7981\u7528\u6e90\u6620\u5c04\u3002\u8bf7\u6309\u4ee5\u4e0b\u8bf4\u660e\u542f\u7528\u5b83\u4eec\u3002"})}),(0,r.jsx)(n.p,{children:"\u8981\u542f\u7528\u6e90\u6620\u5c04\u751f\u6210\uff1a"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u6253\u5f00 Xcode \u5e76\u7f16\u8f91\u201cBundle React Native code and images\u201d\u6784\u5efa\u9636\u6bb5\u3002"}),"\n",(0,r.jsxs)(n.li,{children:["\u5728\u5176\u4ed6\u5bfc\u51fa\u9879\u4e4b\u4e0a\uff0c\u6dfb\u52a0\u5177\u6709\u6240\u9700\u8f93\u51fa\u8def\u5f84\u7684 ",(0,r.jsx)(n.code,{children:"SOURCEMAP_FILE"})," \u6761\u76ee\u3002"]}),"\n"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'+ SOURCEMAP_FILE="$(pwd)/../main.jsbundle.map";\n WITH_ENVIRONMENT="../node_modules/react-native/scripts/xcode/with-environment.sh"\n'})}),(0,r.jsx)(n.p,{children:"\u5982\u679c\u64cd\u4f5c\u6b63\u786e\uff0c\u60a8\u5e94\u8be5\u5728 Metro \u6784\u5efa\u8f93\u51fa\u671f\u95f4\u770b\u5230\u6e90\u6620\u5c04\u7684\u8f93\u51fa\u4f4d\u7f6e\u3002"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-text",children:"Writing bundle output to:, Build/Intermediates.noindex/ArchiveIntermediates/application/BuildProductsPath/Release-iphoneos/main.jsbundle\nWriting sourcemap output to:, Build/Intermediates.noindex/ArchiveIntermediates/application/BuildProductsPath/Release-iphoneos/main.jsbundle.map\n"})})]})]}),"\n",(0,r.jsxs)(n.h3,{id:"\u4f7f\u7528-metro-symbolicate",children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"metro-symbolicate"})]}),"\n",(0,r.jsx)(n.p,{children:"\u6709\u4e86\u751f\u6210\u7684\u6e90\u6620\u5c04\uff0c\u73b0\u5728\u53ef\u4ee5\u7ffb\u8bd1\u6211\u4eec\u7684\u5806\u6808\u8ddf\u8e2a\u4e86\u3002"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"# \u6253\u5370\u4f7f\u7528\u8bf4\u660e\nnpx metro-symbolicate\n\n# \u4ece\u5305\u542b\u5806\u6808\u8ddf\u8e2a\u7684\u6587\u4ef6\u4e2d\nnpx metro-symbolicate android/app/build/generated/sourcemaps/react/release/index.android.bundle.map < stacktrace.txt\n\n# \u4ece adb logcat\uff08Android\uff09\nadb logcat -d | npx metro-symbolicate android/app/build/generated/sourcemaps/react/release/index.android.bundle.map\n"})}),"\n",(0,r.jsx)(n.h3,{id:"\u6e90\u6620\u5c04\u6ce8\u610f\u4e8b\u9879",children:"\u6e90\u6620\u5c04\u6ce8\u610f\u4e8b\u9879"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u6784\u5efa\u8fc7\u7a0b\u53ef\u80fd\u4f1a\u751f\u6210\u591a\u4e2a\u6e90\u6620\u5c04\u3002\u786e\u4fdd\u4f7f\u7528\u793a\u4f8b\u4e2d\u663e\u793a\u7684\u4f4d\u7f6e\u7684\u6e90\u6620\u5c04\u3002"}),"\n",(0,r.jsx)(n.li,{children:"\u786e\u4fdd\u60a8\u4f7f\u7528\u7684\u6e90\u6620\u5c04\u5bf9\u5e94\u4e8e\u5d29\u6e83\u5e94\u7528\u7684\u786e\u5207\u63d0\u4ea4\u3002\u6e90\u4ee3\u7801\u7684\u5c0f\u6539\u52a8\u53ef\u80fd\u5bfc\u81f4\u504f\u79fb\u7684\u5de8\u5927\u5dee\u5f02\u3002"}),"\n",(0,r.jsxs)(n.li,{children:["\u5982\u679c ",(0,r.jsx)(n.code,{children:"metro-symbolicate"})," \u7acb\u5373\u6210\u529f\u9000\u51fa\uff0c\u8bf7\u786e\u4fdd\u8f93\u5165\u6765\u81ea\u7ba1\u9053\u6216\u91cd\u5b9a\u5411\uff0c\u800c\u4e0d\u662f\u7ec8\u7aef\u3002"]}),"\n"]})]})}function b(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(m,{...e})}):m(e)}},11674:(e,n,t)=>{t.d(n,{Z:()=>o});var r=t(63445);const a=!!r.Z.canUseDOM&&navigator.platform.startsWith("Mac"),l=!!r.Z.canUseDOM&&navigator.platform.startsWith("Win"),o={defaultGuide:"native",defaultOs:a?"macos":l?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:a?"ios":"android",defaultSyntax:"functional",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"}]}},86386:(e,n,t)=>{t.d(n,{Z:()=>p});var r=t(27378),a=t(40624);const l={tabItem:"tabItem_wHwb"};var o=Object.defineProperty,i=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable,c=(e,n,t)=>n in e?o(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,d=(e,n)=>{for(var t in n||(n={}))s.call(n,t)&&c(e,t,n[t]);if(i)for(var t of i(n))u.call(n,t)&&c(e,t,n[t]);return e};function p({children:e,hidden:n,className:t}){return r.createElement("div",d({role:"tabpanel",className:(0,a.Z)(l.tabItem,t)},{hidden:n}),e)}},48375:(e,n,t)=>{t.d(n,{Z:()=>q});var r=t(27378),a=t(40624),l=t(12112),o=t(3620),i=t(69490),s=t(14953),u=t(27886),c=t(7106),d=Object.defineProperty,p=Object.defineProperties,m=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertySymbols,h=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable,v=(e,n,t)=>n in e?d(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,g=(e,n)=>{for(var t in n||(n={}))h.call(n,t)&&v(e,t,n[t]);if(b)for(var t of b(n))f.call(n,t)&&v(e,t,n[t]);return e},x=(e,n)=>p(e,m(n));function j(e){var n,t;return null!=(t=null==(n=r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.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.`)})))?void 0:n.filter(Boolean))?t:[]}function y(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=null!=n?n:function(e){return j(e).map((({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r})))}(t);return function(e){const n=(0,u.l)(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 w({value:e,tabValues:n}){return n.some((n=>n.value===e))}function O({queryString:e=!1,groupId:n}){const t=(0,o.k6)(),a=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 null!=n?n:null}({queryString:e,groupId:n});return[(0,s._X)(a),(0,r.useCallback)((e=>{if(!a)return;const n=new URLSearchParams(t.location.search);n.set(a,e),t.replace(x(g({},t.location),{search:n.toString()}))}),[a,t])]}function E(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,l=y(e),[o,s]=(0,r.useState)((()=>function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!w({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 r=null!=(t=n.find((e=>e.default)))?t:n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:l}))),[u,d]=O({queryString:t,groupId:a}),[p,m]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[t,a]=(0,c.Nk)(n);return[t,(0,r.useCallback)((e=>{n&&a.set(e)}),[n,a])]}({groupId:a}),b=(()=>{const e=null!=u?u:p;return w({value:e,tabValues:l})?e:null})();(0,i.Z)((()=>{b&&s(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!w({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),d(e),m(e)}),[d,m,l]),tabValues:l}}var I=t(14185);const k={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};var P=Object.defineProperty,_=Object.defineProperties,N=Object.getOwnPropertyDescriptors,S=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable,V=(e,n,t)=>n in e?P(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,R=(e,n)=>{for(var t in n||(n={}))A.call(n,t)&&V(e,t,n[t]);if(S)for(var t of S(n))T.call(n,t)&&V(e,t,n[t]);return e},C=(e,n)=>_(e,N(n));function Z({className:e,block:n,selectedValue:t,selectValue:o,tabValues:i}){const s=[],{blockElementScrollPositionUntilNextRender:u}=(0,l.o5)(),c=e=>{const n=e.currentTarget,r=s.indexOf(n),a=i[r].value;a!==t&&(u(n),o(a))},d=e=>{var n,t;let r=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=s.indexOf(e.currentTarget)+1;r=null!=(n=s[t])?n:s[0];break}case"ArrowLeft":{const n=s.indexOf(e.currentTarget)-1;r=null!=(t=s[n])?t:s[s.length-1];break}}null==r||r.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":n},e)},i.map((({value:e,label:n,attributes:l})=>r.createElement("li",C(R({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,key:e,ref:e=>s.push(e),onKeyDown:d,onClick:c},l),{className:(0,a.Z)("tabs__item",k.tabItem,null==l?void 0:l.className,{"tabs__item--active":t===e})}),null!=n?n:e))))}function D({lazy:e,children:n,selectedValue:t}){const a=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=a.find((e=>e.props.value===t));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},a.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==t}))))}function M(e){const n=E(e);return r.createElement("div",{className:(0,a.Z)("tabs-container",k.tabList)},r.createElement(Z,R(R({},e),n)),r.createElement(D,R(R({},e),n)))}function q(e){const n=(0,I.Z)();return r.createElement(M,R({key:String(n)},e),j(e.children))}},71426:(e,n,t)=>{var r=t(27378),a=Symbol.for("react.element"),l=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,i=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function u(e,n,t){var r,l={},u=null,c=null;for(r in void 0!==t&&(u=""+t),void 0!==n.key&&(u=""+n.key),void 0!==n.ref&&(c=n.ref),n)o.call(n,r)&&!s.hasOwnProperty(r)&&(l[r]=n[r]);if(e&&e.defaultProps)for(r in n=e.defaultProps)void 0===l[r]&&(l[r]=n[r]);return{$$typeof:a,type:e,key:u,ref:c,props:l,_owner:i.current}}n.Fragment=l,n.jsx=u,n.jsxs=u},24246:(e,n,t)=>{e.exports=t(71426)},71670:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>o});var r=t(27378);const a={},l=r.createContext(a);function o(e){const n=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a7719d3c.dec14c28.js.LICENSE.txt b/assets/js/a7719d3c.91898ae7.js.LICENSE.txt similarity index 100% rename from assets/js/a7719d3c.dec14c28.js.LICENSE.txt rename to assets/js/a7719d3c.91898ae7.js.LICENSE.txt diff --git a/assets/js/a7719d3c.dec14c28.js b/assets/js/a7719d3c.dec14c28.js deleted file mode 100644 index d5a6688cf29..00000000000 --- a/assets/js/a7719d3c.dec14c28.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see a7719d3c.dec14c28.js.LICENSE.txt */ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[98550],{93505:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>u,default:()=>b,frontMatter:()=>s,metadata:()=>c,toc:()=>p});var r=t(24246),a=t(71670),l=t(48375),o=t(86386),i=t(11674);const s={id:"debugging-release-builds",title:"Debugging Release Builds"},u=void 0,c={id:"debugging-release-builds",title:"Debugging Release Builds",description:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a",source:"@site/../cndocs/debugging-release-builds.md",sourceDirName:".",slug:"/debugging-release-builds",permalink:"/docs/next/debugging-release-builds",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/debugging-release-builds.md",tags:[],version:"current",frontMatter:{id:"debugging-release-builds",title:"Debugging Release Builds"},sidebar:"docs",previous:{title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",permalink:"/docs/next/native-debugging"},next:{title:"Other Debugging Methods",permalink:"/docs/next/other-debugging-methods"}},d={},p=[{value:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a",id:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a",level:2},{value:"\u542f\u7528\u6e90\u6620\u5c04\uff08source map\uff09",id:"\u542f\u7528\u6e90\u6620\u5c04source-map",level:3},{value:"\u4f7f\u7528 metro-symbolicate",id:"\u4f7f\u7528-metro-symbolicate",level:3},{value:"\u6e90\u6620\u5c04\u6ce8\u610f\u4e8b\u9879",id:"\u6e90\u6620\u5c04\u6ce8\u610f\u4e8b\u9879",level:3}];function m(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a",children:"\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u53d1\u5e03\u7248\u672c\u4e2d\uff0cReact Native \u5e94\u7528\u5982\u679c\u89e6\u53d1\u4e86\u672a\u5904\u7406\u7684\u5f02\u5e38\uff0c\u5176\u8f93\u51fa\u53ef\u80fd\u4f1a\u88ab\u6df7\u6dc6\u5e76\u4e14\u96be\u4ee5\u9605\u8bfb\u3002"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"07-15 10:58:25.820 18979 18998 E AndroidRuntime: FATAL EXCEPTION: mqt_native_modules\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: Process: com.awesomeproject, PID: 18979 07-15 10:58:25.820 18979 18998 E AndroidRuntime: com.facebook.react.common.JavascriptException: Failed, js engine: hermes, stack:\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: p@1:132161\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: p@1:132084\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: f@1:131854\n07-15 10:58:25.820 18979 18998 E AndroidRuntime: anonymous@1:131119\n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u5728\u4e0a\u8ff0\u5806\u6808\u8ddf\u8e2a\u4e2d\uff0c\u7c7b\u4f3c",(0,r.jsx)(n.code,{children:"p@1:132161"}),"\u7684\u6761\u76ee\u662f\u7ecf\u8fc7\u538b\u7f29\u7684\u51fd\u6570\u540d\u79f0\u548c\u5b57\u8282\u7801\u504f\u79fb\u91cf\u3002\u4e3a\u4e86\u8c03\u8bd5\u8fd9\u4e9b\u8c03\u7528\uff0c\u6211\u4eec\u5e0c\u671b\u5c06\u5b83\u4eec\u8f6c\u6362\u4e3a\u6587\u4ef6\u3001\u884c\u548c\u51fd\u6570\u540d\u79f0\uff0c\u4f8b\u5982",(0,r.jsx)(n.code,{children:"AwesomeProject/App.js:54:initializeMap"}),"\u3002\u8fd9\u88ab\u79f0\u4e3a",(0,r.jsx)(n.strong,{children:"\u7b26\u53f7\u5316"}),"\u3002"]}),"\n",(0,r.jsxs)(n.p,{children:["\u60a8\u53ef\u4ee5\u901a\u8fc7\u5c06\u5806\u6808\u8ddf\u8e2a\u548c\u751f\u6210\u7684\u6e90\u6620\u5c04\u4f20\u9012\u7ed9",(0,r.jsx)(n.a,{href:"http://npmjs.com/package/metro-symbolicate",children:(0,r.jsx)(n.code,{children:"metro-symbolicate"})}),"\u6765\u5bf9\u4e0a\u8ff0\u7c7b\u4f3c\u7684\u7ecf\u8fc7\u538b\u7f29\u7684\u51fd\u6570\u540d\u79f0\u548c\u5b57\u8282\u7801\u8fdb\u884c\u7b26\u53f7\u5316\u3002"]}),"\n",(0,r.jsx)(n.h3,{id:"\u542f\u7528\u6e90\u6620\u5c04source-map",children:"\u542f\u7528\u6e90\u6620\u5c04\uff08source map\uff09"}),"\n",(0,r.jsx)(n.p,{children:"\u6e90\u6620\u5c04\u662f\u7b26\u53f7\u5316\u5806\u6808\u8ddf\u8e2a\u6240\u5fc5\u9700\u7684\u3002\u8bf7\u786e\u4fdd\u5728\u76ee\u6807\u5e73\u53f0\u7684\u6784\u5efa\u914d\u7f6e\u4e2d\u542f\u7528\u4e86\u6e90\u6620\u5c04\u3002"}),"\n",(0,r.jsxs)(l.Z,{groupId:"platform",queryString:!0,defaultValue:i.Z.defaultPlatform,values:i.Z.platforms,className:"pill-tabs",children:[(0,r.jsxs)(o.Z,{value:"android",children:[(0,r.jsx)(n.admonition,{type:"info",children:(0,r.jsx)(n.p,{children:"\u5728 Android \u4e0a\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u5df2\u7ecf\u542f\u7528\u4e86\u6e90\u6620\u5c04\u3002"})}),(0,r.jsxs)(n.p,{children:["\u8981\u542f\u7528\u6e90\u6620\u5c04\u751f\u6210\uff0c\u8bf7\u786e\u4fdd\u5728 ",(0,r.jsx)(n.code,{children:"android/app/build.gradle"})," \u4e2d\u5305\u542b\u4ee5\u4e0b ",(0,r.jsx)(n.code,{children:"hermesFlags"}),"\u3002"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-groovy",children:'react {\n hermesFlags = ["-O", "-output-source-map"]\n}\n'})}),(0,r.jsx)(n.p,{children:"\u5982\u679c\u64cd\u4f5c\u6b63\u786e\uff0c\u60a8\u5e94\u8be5\u5728 Metro \u6784\u5efa\u8f93\u51fa\u671f\u95f4\u770b\u5230\u6e90\u6620\u5c04\u7684\u8f93\u51fa\u4f4d\u7f6e\u3002"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-text",children:"Writing bundle output to:, android/app/build/generated/assets/react/release/index.android.bundle\nWriting sourcemap output to:, android/app/build/intermediates/sourcemaps/react/release/index.android.bundle.packager.map\n"})})]}),(0,r.jsxs)(o.Z,{value:"ios",children:[(0,r.jsx)(n.admonition,{type:"info",children:(0,r.jsx)(n.p,{children:"\u5728iOS\u4e0a\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u7981\u7528\u6e90\u6620\u5c04\u3002\u8bf7\u4f7f\u7528\u4ee5\u4e0b\u8bf4\u660e\u542f\u7528\u5b83\u4eec\u3002"})}),(0,r.jsx)(n.p,{children:"\u8981\u542f\u7528\u6e90\u6620\u5c04\u751f\u6210\uff1a"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u6253\u5f00 Xcode \u5e76\u7f16\u8f91\u201cBundle React Native code and images\u201d\u6784\u5efa\u9636\u6bb5\u3002"}),"\n",(0,r.jsxs)(n.li,{children:["\u5728\u5176\u4ed6\u5bfc\u51fa\u9879\u4e4b\u4e0a\uff0c\u6dfb\u52a0\u5177\u6709\u6240\u9700\u8f93\u51fa\u8def\u5f84\u7684 ",(0,r.jsx)(n.code,{children:"SOURCEMAP_FILE"})," \u6761\u76ee\u3002"]}),"\n"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'+ SOURCEMAP_FILE="$(pwd)/../main.jsbundle.map";\n WITH_ENVIRONMENT="../node_modules/react-native/scripts/xcode/with-environment.sh"\n'})}),(0,r.jsx)(n.p,{children:"\u5982\u679c\u64cd\u4f5c\u6b63\u786e\uff0c\u60a8\u5e94\u8be5\u5728 Metro \u6784\u5efa\u8f93\u51fa\u671f\u95f4\u770b\u5230\u6e90\u6620\u5c04\u7684\u8f93\u51fa\u4f4d\u7f6e\u3002"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-text",children:"Writing bundle output to:, Build/Intermediates.noindex/ArchiveIntermediates/application/BuildProductsPath/Release-iphoneos/main.jsbundle\nWriting sourcemap output to:, Build/Intermediates.noindex/ArchiveIntermediates/application/BuildProductsPath/Release-iphoneos/main.jsbundle.map\n"})})]})]}),"\n",(0,r.jsxs)(n.h3,{id:"\u4f7f\u7528-metro-symbolicate",children:["\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"metro-symbolicate"})]}),"\n",(0,r.jsx)(n.p,{children:"\u6709\u4e86\u751f\u6210\u7684\u6e90\u6620\u5c04\uff0c\u73b0\u5728\u53ef\u4ee5\u7ffb\u8bd1\u6211\u4eec\u7684\u5806\u6808\u8ddf\u8e2a\u4e86\u3002"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"# \u6253\u5370\u4f7f\u7528\u8bf4\u660e\nnpx metro-symbolicate\n\n# \u4ece\u5305\u542b\u5806\u6808\u8ddf\u8e2a\u7684\u6587\u4ef6\u4e2d\nnpx metro-symbolicate android/app/build/generated/sourcemaps/react/release/index.android.bundle.map < stacktrace.txt\n\n# \u4ece adb logcat\uff08Android\uff09\nadb logcat -d | npx metro-symbolicate android/app/build/generated/sourcemaps/react/release/index.android.bundle.map\n"})}),"\n",(0,r.jsx)(n.h3,{id:"\u6e90\u6620\u5c04\u6ce8\u610f\u4e8b\u9879",children:"\u6e90\u6620\u5c04\u6ce8\u610f\u4e8b\u9879"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u6784\u5efa\u8fc7\u7a0b\u53ef\u80fd\u4f1a\u751f\u6210\u591a\u4e2a\u6e90\u6620\u5c04\u3002\u786e\u4fdd\u4f7f\u7528\u793a\u4f8b\u4e2d\u663e\u793a\u7684\u4f4d\u7f6e\u7684\u6e90\u6620\u5c04\u3002"}),"\n",(0,r.jsx)(n.li,{children:"\u786e\u4fdd\u60a8\u4f7f\u7528\u7684\u6e90\u6620\u5c04\u5bf9\u5e94\u4e8e\u5d29\u6e83\u5e94\u7528\u7684\u786e\u5207\u63d0\u4ea4\u3002\u6e90\u4ee3\u7801\u7684\u5c0f\u6539\u52a8\u53ef\u80fd\u5bfc\u81f4\u504f\u79fb\u7684\u5de8\u5927\u5dee\u5f02\u3002"}),"\n",(0,r.jsxs)(n.li,{children:["\u5982\u679c ",(0,r.jsx)(n.code,{children:"metro-symbolicate"})," \u7acb\u5373\u6210\u529f\u9000\u51fa\uff0c\u8bf7\u786e\u4fdd\u8f93\u5165\u6765\u81ea\u7ba1\u9053\u6216\u91cd\u5b9a\u5411\uff0c\u800c\u4e0d\u662f\u7ec8\u7aef\u3002"]}),"\n"]})]})}function b(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(m,{...e})}):m(e)}},11674:(e,n,t)=>{t.d(n,{Z:()=>o});var r=t(63445);const a=!!r.Z.canUseDOM&&navigator.platform.startsWith("Mac"),l=!!r.Z.canUseDOM&&navigator.platform.startsWith("Win"),o={defaultGuide:"native",defaultOs:a?"macos":l?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:a?"ios":"android",defaultSyntax:"functional",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"}]}},86386:(e,n,t)=>{t.d(n,{Z:()=>p});var r=t(27378),a=t(40624);const l={tabItem:"tabItem_wHwb"};var o=Object.defineProperty,i=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable,c=(e,n,t)=>n in e?o(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,d=(e,n)=>{for(var t in n||(n={}))s.call(n,t)&&c(e,t,n[t]);if(i)for(var t of i(n))u.call(n,t)&&c(e,t,n[t]);return e};function p({children:e,hidden:n,className:t}){return r.createElement("div",d({role:"tabpanel",className:(0,a.Z)(l.tabItem,t)},{hidden:n}),e)}},48375:(e,n,t)=>{t.d(n,{Z:()=>q});var r=t(27378),a=t(40624),l=t(12112),o=t(3620),i=t(69490),s=t(14953),u=t(27886),c=t(7106),d=Object.defineProperty,p=Object.defineProperties,m=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertySymbols,h=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable,g=(e,n,t)=>n in e?d(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,v=(e,n)=>{for(var t in n||(n={}))h.call(n,t)&&g(e,t,n[t]);if(b)for(var t of b(n))f.call(n,t)&&g(e,t,n[t]);return e},x=(e,n)=>p(e,m(n));function j(e){var n,t;return null!=(t=null==(n=r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.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.`)})))?void 0:n.filter(Boolean))?t:[]}function y(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=null!=n?n:function(e){return j(e).map((({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r})))}(t);return function(e){const n=(0,u.l)(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 w({value:e,tabValues:n}){return n.some((n=>n.value===e))}function O({queryString:e=!1,groupId:n}){const t=(0,o.k6)(),a=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 null!=n?n:null}({queryString:e,groupId:n});return[(0,s._X)(a),(0,r.useCallback)((e=>{if(!a)return;const n=new URLSearchParams(t.location.search);n.set(a,e),t.replace(x(v({},t.location),{search:n.toString()}))}),[a,t])]}function E(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,l=y(e),[o,s]=(0,r.useState)((()=>function({defaultValue:e,tabValues:n}){var t;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!w({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 r=null!=(t=n.find((e=>e.default)))?t:n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:l}))),[u,d]=O({queryString:t,groupId:a}),[p,m]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[t,a]=(0,c.Nk)(n);return[t,(0,r.useCallback)((e=>{n&&a.set(e)}),[n,a])]}({groupId:a}),b=(()=>{const e=null!=u?u:p;return w({value:e,tabValues:l})?e:null})();(0,i.Z)((()=>{b&&s(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!w({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),d(e),m(e)}),[d,m,l]),tabValues:l}}var I=t(14185);const k={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};var P=Object.defineProperty,_=Object.defineProperties,N=Object.getOwnPropertyDescriptors,S=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,R=Object.prototype.propertyIsEnumerable,T=(e,n,t)=>n in e?P(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,V=(e,n)=>{for(var t in n||(n={}))A.call(n,t)&&T(e,t,n[t]);if(S)for(var t of S(n))R.call(n,t)&&T(e,t,n[t]);return e},D=(e,n)=>_(e,N(n));function C({className:e,block:n,selectedValue:t,selectValue:o,tabValues:i}){const s=[],{blockElementScrollPositionUntilNextRender:u}=(0,l.o5)(),c=e=>{const n=e.currentTarget,r=s.indexOf(n),a=i[r].value;a!==t&&(u(n),o(a))},d=e=>{var n,t;let r=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=s.indexOf(e.currentTarget)+1;r=null!=(n=s[t])?n:s[0];break}case"ArrowLeft":{const n=s.indexOf(e.currentTarget)-1;r=null!=(t=s[n])?t:s[s.length-1];break}}null==r||r.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":n},e)},i.map((({value:e,label:n,attributes:l})=>r.createElement("li",D(V({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,key:e,ref:e=>s.push(e),onKeyDown:d,onClick:c},l),{className:(0,a.Z)("tabs__item",k.tabItem,null==l?void 0:l.className,{"tabs__item--active":t===e})}),null!=n?n:e))))}function M({lazy:e,children:n,selectedValue:t}){const a=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=a.find((e=>e.props.value===t));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},a.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==t}))))}function Z(e){const n=E(e);return r.createElement("div",{className:(0,a.Z)("tabs-container",k.tabList)},r.createElement(C,V(V({},e),n)),r.createElement(M,V(V({},e),n)))}function q(e){const n=(0,I.Z)();return r.createElement(Z,V({key:String(n)},e),j(e.children))}},71426:(e,n,t)=>{var r=t(27378),a=Symbol.for("react.element"),l=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,i=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function u(e,n,t){var r,l={},u=null,c=null;for(r in void 0!==t&&(u=""+t),void 0!==n.key&&(u=""+n.key),void 0!==n.ref&&(c=n.ref),n)o.call(n,r)&&!s.hasOwnProperty(r)&&(l[r]=n[r]);if(e&&e.defaultProps)for(r in n=e.defaultProps)void 0===l[r]&&(l[r]=n[r]);return{$$typeof:a,type:e,key:u,ref:c,props:l,_owner:i.current}}n.Fragment=l,n.jsx=u,n.jsxs=u},24246:(e,n,t)=>{e.exports=t(71426)},71670:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>o});var r=t(27378);const a={},l=r.createContext(a);function o(e){const n=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b42b2a17.134a7efc.js b/assets/js/b42b2a17.134a7efc.js new file mode 100644 index 00000000000..f00ba266899 --- /dev/null +++ b/assets/js/b42b2a17.134a7efc.js @@ -0,0 +1,2 @@ +/*! For license information please see b42b2a17.134a7efc.js.LICENSE.txt */ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[77552],{53227:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>h});var s=n(24246),i=n(71670);const o={id:"testing-overview",title:"Testing",author:"Vojtech Novak",authorURL:"https://twitter.com/vonovak",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."},r=void 0,a={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.",source:"@site/../cndocs/testing-overview.md",sourceDirName:".",slug:"/testing-overview",permalink:"/docs/next/testing-overview",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/testing-overview.md",tags:[],version:"current",frontMatter:{id:"testing-overview",title:"Testing",author:"Vojtech Novak",authorURL:"https://twitter.com/vonovak",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",previous:{title:"\u5176\u4ed6\u8c03\u8bd5\u65b9\u6cd5",permalink:"/docs/next/other-debugging-methods"},next:{title:"\u6027\u80fd\u7efc\u8ff0",permalink:"/docs/next/performance"}},c={},h=[{value:"Why Test",id:"why-test",level:2},{value:"Static Analysis",id:"static-analysis",level:2},{value:"Writing Testable Code",id:"writing-testable-code",level:2},{value:"Writing Tests",id:"writing-tests",level:2},{value:"Structuring Tests",id:"structuring-tests",level:3},{value:"Unit tests",id:"unit-tests",level:2},{value:"Mocking",id:"mocking",level:3},{value:"Integration Tests",id:"integration-tests",level:2},{value:"Component Tests",id:"component-tests",level:2},{value:"Testing User Interactions",id:"testing-user-interactions",level:3},{value:"Testing Rendered Output",id:"testing-rendered-output",level:3},{value:"End-to-End Tests",id:"end-to-end-tests",level:2},{value:"Summary",id:"summary",level:2},{value:"Links",id:"links",level:3}];function l(e){const t={a:"a",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"As your codebase expands, small errors and edge cases you don\u2019t expect can cascade into larger failures. Bugs lead to bad user experience and ultimately, business losses. One way to prevent fragile programming is to test your code before releasing it into the wild."}),"\n",(0,s.jsx)(t.p,{children:"In this guide, we will cover different, automated ways to ensure your app works as expected, ranging from static analysis to end-to-end tests."}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/diagram_testing.svg",alt:"Testing is a cycle of fixing, testing, and either passing to release or failing back into testing."}),"\n",(0,s.jsx)(t.h2,{id:"why-test",children:"Why Test"}),"\n",(0,s.jsx)(t.p,{children:"We're humans, and humans make mistakes. Testing is important because it helps you uncover these mistakes and verifies that your code is working. Perhaps even more importantly, testing ensures that your code continues to work in the future as you add new features, refactor the existing ones, or upgrade major dependencies of your project."}),"\n",(0,s.jsx)(t.p,{children:"There is more value in testing than you might realize. One of the best ways to fix a bug in your code is to write a failing test that exposes it. Then when you fix the bug and re-run the test, if it passes it means the bug is fixed, never reintroduced into the code base."}),"\n",(0,s.jsx)(t.p,{children:"Tests can also serve as documentation for new people joining your team. For people who have never seen a codebase before, reading tests can help them understand how the existing code works."}),"\n",(0,s.jsxs)(t.p,{children:["Last but not least, more automated testing means less time spent with manual ",(0,s.jsx)("abbr",{title:"Quality Assurance",children:"QA"}),", freeing up valuable time."]}),"\n",(0,s.jsx)(t.h2,{id:"static-analysis",children:"Static Analysis"}),"\n",(0,s.jsx)(t.p,{children:"The first step to improve your code quality is to start using static analysis tools. Static analysis checks your code for errors as you write it, but without running any of that code."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Linters"})," analyze code to catch common errors such as unused code and to help avoid pitfalls, to flag style guide no-nos like using tabs instead of spaces (or vice versa, depending on your configuration)."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Type checking"})," ensures that the construct you\u2019re passing to a function matches what the function was designed to accept, preventing passing a string to a counting function that expects a number, for instance."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["React Native comes with two such tools configured out of the box: ",(0,s.jsx)(t.a,{href:"https://eslint.org/",children:"ESLint"})," for linting and ",(0,s.jsx)(t.a,{href:"https://flow.org/en/docs/",children:"Flow"})," for type checking. You can also use ",(0,s.jsx)(t.a,{href:"typescript",children:"TypeScript"}),", which is a typed language that compiles to plain JavaScript."]}),"\n",(0,s.jsx)(t.h2,{id:"writing-testable-code",children:"Writing Testable Code"}),"\n",(0,s.jsx)(t.p,{children:"To start with tests, you first need to write code that is testable. Consider an aircraft manufacturing process - before any model first takes off to show that all of its complex systems work well together, individual parts are tested to guarantee they are safe and function correctly. For example, wings are tested by bending them under extreme load; engine parts are tested for their durability; the windshield is tested against simulated bird impact."}),"\n",(0,s.jsx)(t.p,{children:"Software is similar. Instead of writing your entire program in one huge file with many lines of code, you write your code in multiple small modules that you can test more thoroughly than if you tested the assembled whole. In this way, writing testable code is intertwined with writing clean, modular code."}),"\n",(0,s.jsx)(t.p,{children:"To make your app more testable, start by separating the view part of your app\u2014your React components\u2014from your business logic and app state (regardless of whether you use Redux, MobX or other solutions). This way, you can keep your business logic testing\u2014which shouldn\u2019t rely on your React components\u2014independent of the components themselves, whose job is primarily rendering your app\u2019s UI!"}),"\n",(0,s.jsx)(t.p,{children:"Theoretically, you could go so far as to move all logic and data fetching out of your components. This way your components would be solely dedicated to rendering. Your state would be entirely independent of your components. Your app\u2019s logic would work without any React components at all!"}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:"We encourage you to further explore the topic of testable code in other learning resources."}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"writing-tests",children:"Writing Tests"}),"\n",(0,s.jsxs)(t.p,{children:["After writing testable code, it\u2019s time to write some actual tests! The default template of React Native ships with ",(0,s.jsx)(t.a,{href:"https://jestjs.io",children:"Jest"})," testing framework. It includes a preset that's tailored to this environment so you can get productive without tweaking the configuration and mocks straight away\u2014",(0,s.jsx)(t.a,{href:"#mocking",children:"more on mocks"})," shortly. You can use Jest to write all types of tests featured in this guide."]}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:"If you do test-driven development, you actually write tests first! That way, testability of your code is given."}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"structuring-tests",children:"Structuring Tests"}),"\n",(0,s.jsx)(t.p,{children:"Your tests should be short and ideally test only one thing. Let's start with an example unit test written with Jest:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-js",children:"it('given a date in the past, colorForDueDate() returns red', () => {\n expect(colorForDueDate('2000-10-20')).toBe('red');\n});\n"})}),"\n",(0,s.jsxs)(t.p,{children:["The test is described by the string passed to the ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api#testname-fn-timeout",children:(0,s.jsx)(t.code,{children:"it"})})," function. Take good care writing the description so that it\u2019s clear what is being tested. Do your best to cover the following:"]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Given"})," - some precondition"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"When"})," - some action executed by the function that you\u2019re testing"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Then"})," - the expected outcome"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"This is also known as AAA (Arrange, Act, Assert)."}),"\n",(0,s.jsxs)(t.p,{children:["Jest offers ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api#describename-fn",children:(0,s.jsx)(t.code,{children:"describe"})})," function to help structure your tests. Use ",(0,s.jsx)(t.code,{children:"describe"})," to group together all tests that belong to one functionality. Describes can be nested, if you need that. Other functions you'll commonly use are ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api#beforeeachfn-timeout",children:(0,s.jsx)(t.code,{children:"beforeEach"})})," or ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api#beforeallfn-timeout",children:(0,s.jsx)(t.code,{children:"beforeAll"})})," that you can use for setting up the objects you're testing. Read more in the ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api",children:"Jest api reference"}),"."]}),"\n",(0,s.jsx)(t.p,{children:"If your test has many steps or many expectations, you probably want to split it into multiple smaller ones. Also, ensure that your tests are completely independent of one another. Each test in your suite must be executable on its own without first running some other test. Conversely, if you run all your tests together, the first test must not influence the output of the second one."}),"\n",(0,s.jsxs)(t.p,{children:["Lastly, as developers we like when our code works great and doesn't crash. With tests, this is often the opposite. Think of a failed test as of a ",(0,s.jsx)(t.em,{children:"good thing!"})," When a test fails, it often means something is not right. This gives you an opportunity to fix the problem before it impacts the users."]}),"\n",(0,s.jsx)(t.h2,{id:"unit-tests",children:"Unit tests"}),"\n",(0,s.jsx)(t.p,{children:"Unit tests cover the smallest parts of code, like individual functions or classes."}),"\n",(0,s.jsx)(t.p,{children:"When the object being tested has any dependencies, you\u2019ll often need to mock them out, as described in the next paragraph."}),"\n",(0,s.jsxs)(t.p,{children:["The great thing about unit tests is that they are quick to write and run. Therefore, as you work, you get fast feedback about whether your tests are passing. Jest even has an option to continuously run tests that are related to code you\u2019re editing: ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/cli#watch",children:"Watch mode"}),"."]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-unit.svg",alt:" "}),"\n",(0,s.jsx)(t.h3,{id:"mocking",children:"Mocking"}),"\n",(0,s.jsx)(t.p,{children:"Sometimes, when your tested objects have external dependencies, you\u2019ll want to \u201cmock them out.\u201d \u201cMocking\u201d is when you replace some dependency of your code with your own implementation."}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:"Generally, using real objects in your tests is better than using mocks but there are situations where this is not possible. For example: when your JS unit test relies on a native module written in Java or Objective-C."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Imagine you\u2019re writing an app that shows the current weather in your city and you\u2019re using some external service or other dependency that provides you with the weather information. If the service tells you that it\u2019s raining, you want to show an image with a rainy cloud. You don\u2019t want to call that service in your tests, because:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"It could make the tests slow and unstable (because of the network requests involved)"}),"\n",(0,s.jsx)(t.li,{children:"The service may return different data every time you run the test"}),"\n",(0,s.jsx)(t.li,{children:"Third party services can go offline when you really need to run tests!"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Therefore, you can provide a mock implementation of the service, effectively replacing thousands of lines of code and some internet-connected thermometers!"}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsxs)(t.p,{children:["Jest comes with ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/mock-functions#mocking-modules",children:"support for mocking"})," from function level all the way to module level mocking."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"integration-tests",children:"Integration Tests"}),"\n",(0,s.jsx)(t.p,{children:"When writing larger software systems, individual pieces of it need to interact with each other. In unit testing, if your unit depends on another one, you\u2019ll sometimes end up mocking the dependency, replacing it with a fake one."}),"\n",(0,s.jsx)(t.p,{children:"In integration testing, real individual units are combined (same as in your app) and tested together to ensure that their cooperation works as expected. This is not to say that mocking does not happen here: you\u2019ll still need mocks (for example, to mock communication with a weather service), but you'll need them much less than in unit testing."}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:'Please note that the terminology around what integration testing means is not always consistent. Also, the line between what is a unit test and what is an integration test may not always be clear. For this guide, your test falls into "integration testing" if it:'}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Combines several modules of your app as described above"}),"\n",(0,s.jsx)(t.li,{children:"Uses an external system"}),"\n",(0,s.jsx)(t.li,{children:"Makes a network call to other application (such as the weather service API)"}),"\n",(0,s.jsxs)(t.li,{children:["Does any kind of file or database ",(0,s.jsx)("abbr",{title:"Input/Output",children:"I/O"})]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-integration.svg",alt:" "}),"\n",(0,s.jsx)(t.h2,{id:"component-tests",children:"Component Tests"}),"\n",(0,s.jsx)(t.p,{children:"React components are responsible for rendering your app, and users will directly interact with their output. Even if your app's business logic has high testing coverage and is correct, without component tests you may still deliver a broken UI to your users. Component tests could fall into both unit and integration testing, but because they are such a core part of React Native, we'll cover them separately."}),"\n",(0,s.jsx)(t.p,{children:"For testing React components, there are two things you may want to test:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Interaction: to ensure the component behaves correctly when interacted with by a user (eg. when user presses a button)"}),"\n",(0,s.jsx)(t.li,{children:"Rendering: to ensure the component render output used by React is correct (eg. the button's appearance and placement in the UI)"}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["For example, if you have a button that has an ",(0,s.jsx)(t.code,{children:"onPress"})," listener, you want to test that the button both appears correctly and that tapping the button is correctly handled by the component."]}),"\n",(0,s.jsx)(t.p,{children:"There are several libraries that can help you testing these:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["React\u2019s ",(0,s.jsx)(t.a,{href:"https://zh-hans.reactjs.org/docs/test-renderer.html",children:"Test Renderer"}),", developed alongside its core, provides a React renderer that can be used to render React components to pure JavaScript objects, without depending on the DOM or a native mobile environment."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://github.com/callstack/react-native-testing-library",children:(0,s.jsx)(t.code,{children:"react-native-testing-library"})})," builds on top of React\u2019s test renderer and adds ",(0,s.jsx)(t.code,{children:"fireEvent"})," and ",(0,s.jsx)(t.code,{children:"query"})," APIs described in the next paragraph."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://www.native-testing-library.com/",children:(0,s.jsx)(t.code,{children:"@testing-library/react-native"})})," is another alternative that also builds on top of React\u2019s test renderer and adds ",(0,s.jsx)(t.code,{children:"fireEvent"})," and ",(0,s.jsx)(t.code,{children:"query"})," APIs described in the next paragraph."]}),"\n"]}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsxs)(t.p,{children:["Component tests are only JavaScript tests running in Node.js environment. They do ",(0,s.jsx)(t.em,{children:"not"})," take into account any iOS, Android, or other platform code which is backing the React Native components. It follows that they cannot give you a 100% confidence that everything works for the user. If there is a bug in the iOS or Android code, they will not find it."]}),"\n"]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-component.svg",alt:" "}),"\n",(0,s.jsx)(t.h3,{id:"testing-user-interactions",children:"Testing User Interactions"}),"\n",(0,s.jsxs)(t.p,{children:["Aside from rendering some UI, your components handle events like ",(0,s.jsx)(t.code,{children:"onChangeText"})," for ",(0,s.jsx)(t.code,{children:"TextInput"})," or ",(0,s.jsx)(t.code,{children:"onPress"})," for ",(0,s.jsx)(t.code,{children:"Button"}),". They may also contain other functions and event callbacks. Consider the following example:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-jsx",children:"function GroceryShoppingList() {\n const [groceryItem, setGroceryItem] = useState('');\n const [items, setItems] = useState([]);\n\n const addNewItemToShoppingList = useCallback(() => {\n setItems([groceryItem, ...items]);\n setGroceryItem('');\n }, [groceryItem, items]);\n\n return (\n <>\n setGroceryItem(text)}\n />\n \n {items.map((item) => (\n {item}\n ))}\n \n );\n}\n"})}),"\n",(0,s.jsx)(t.p,{children:"When testing user interactions, test the component from the user perspective\u2014what's on the page? What changes when interacted with?"}),"\n",(0,s.jsx)(t.p,{children:"As a rule of thumb, prefer using things users can see or hear:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["make assertions using rendered text or ",(0,s.jsx)(t.a,{href:"accessibility#accessibility-properties",children:"accessibility helpers"})]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Conversely, you should avoid:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"making assertions on component props or state"}),"\n",(0,s.jsx)(t.li,{children:"testID queries"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Avoid testing implementation details like props or state\u2014while such tests work, they are not oriented toward how users will interact with the component and tend to break by refactoring (for example when you'd like to rename some things or rewrite class component using hooks)."}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsxs)(t.p,{children:["React class components are especially prone to testing their implementation details such as internal state, props or event handlers. To avoid testing implementation details, prefer using function components with Hooks, which make relying on component internals ",(0,s.jsx)(t.em,{children:"harder"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["Component testing libraries such as ",(0,s.jsx)(t.a,{href:"https://github.com/callstack/react-native-testing-library",children:(0,s.jsx)(t.code,{children:"react-native-testing-library"})})," facilitate writing user-centric tests by careful choice of provided APIs. The following example uses ",(0,s.jsx)(t.code,{children:"fireEvent"})," methods ",(0,s.jsx)(t.code,{children:"changeText"})," and ",(0,s.jsx)(t.code,{children:"press"})," that simulate a user interacting with the component and a query function ",(0,s.jsx)(t.code,{children:"getAllByText"})," that finds matching ",(0,s.jsx)(t.code,{children:"Text"})," nodes in the rendered output."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-jsx",children:"test('given empty GroceryShoppingList, user can add an item to it', () => {\n const { getByPlaceholder, getByText, getAllByText } = render(\n \n );\n\n fireEvent.changeText(\n getByPlaceholder('Enter grocery item'),\n 'banana'\n );\n fireEvent.press(getByText('Add the item to list'));\n\n const bananaElements = getAllByText('banana');\n expect(bananaElements).toHaveLength(1); // expect 'banana' to be on the list\n});\n"})}),"\n",(0,s.jsxs)(t.p,{children:["This example is not testing how some state changes when you call a function. It tests what happens when a user changes text in the ",(0,s.jsx)(t.code,{children:"TextInput"})," and presses the ",(0,s.jsx)(t.code,{children:"Button"}),"!"]}),"\n",(0,s.jsx)(t.h3,{id:"testing-rendered-output",children:"Testing Rendered Output"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/snapshot-testing",children:"Snapshot testing"})," is an advanced kind of testing enabled by Jest. It is a very powerful and low-level tool, so extra attention is advised when using it."]}),"\n",(0,s.jsxs)(t.p,{children:['A "component snapshot" is a JSX-like string created by a custom React serializer built into Jest. This serializer lets Jest translate React component trees to string that\'s human-readable. Put another way: a component snapshot is a textual representation of your component\u2019s render output ',(0,s.jsx)(t.em,{children:"generated"})," during a test run. It may look like this:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-jsx",children:'\n Welcome to React Native!\n\n'})}),"\n",(0,s.jsxs)(t.p,{children:["With snapshot testing, you typically first implement your component and then run the snapshot test. The snapshot test then creates a snapshot and saves it to a file in your repo as a reference snapshot. ",(0,s.jsx)(t.strong,{children:"The file is then committed and checked during code review"}),". Any future changes to the component render output will change its snapshot, which will cause the test to fail. You then need to update the stored reference snapshot for the test to pass. That change again needs to be committed and reviewed."]}),"\n",(0,s.jsx)(t.p,{children:"Snapshots have several weak points:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"For you as a developer or reviewer, it can be hard to tell whether a change in snapshot is intended or whether it's evidence of a bug. Especially large snapshots can quickly become hard to understand and their added value becomes low."}),"\n",(0,s.jsx)(t.li,{children:"When snapshot is created, at that point it is considered to be correct-even in the case when the rendered output is actually wrong."}),"\n",(0,s.jsxs)(t.li,{children:["When a snapshot fails, it's tempting to update it using the ",(0,s.jsx)(t.code,{children:"--updateSnapshot"})," jest option without taking proper care to investigate whether the change is expected. Certain developer discipline is thus needed."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Snapshots themselves do not ensure that your component render logic is correct, they are merely good at guarding against unexpected changes and for checking that the components in the React tree under test receive the expected props (styles and etc.)."}),"\n",(0,s.jsxs)(t.p,{children:["We recommend that you only use small snapshots (see ",(0,s.jsxs)(t.a,{href:"https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/no-large-snapshots.md",children:[(0,s.jsx)(t.code,{children:"no-large-snapshots"})," rule"]}),"). If you want to test a ",(0,s.jsx)(t.em,{children:"change"})," between two React component states, use ",(0,s.jsx)(t.a,{href:"https://github.com/jest-community/snapshot-diff",children:(0,s.jsx)(t.code,{children:"snapshot-diff"})}),". When in doubt, prefer explicit expectations as described in the previous paragraph."]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-snapshot.svg",alt:" "}),"\n",(0,s.jsx)(t.h2,{id:"end-to-end-tests",children:"End-to-End Tests"}),"\n",(0,s.jsx)(t.p,{children:"In end-to-end (E2E) tests, you verify your app is working as expected on a device (or a simulator / emulator) from the user perspective."}),"\n",(0,s.jsx)(t.p,{children:"This is done by building your app in the release configuration and running the tests against it. In E2E tests, you no longer think about React components, React Native APIs, Redux stores or any business logic. That is not the purpose of E2E tests and those are not even accessible to you during E2E testing."}),"\n",(0,s.jsxs)(t.p,{children:["Instead, E2E testing libraries allow you to find and control elements in the screen of your app: for example, you can ",(0,s.jsx)(t.em,{children:"actually"})," tap buttons or insert text into ",(0,s.jsx)(t.code,{children:"TextInputs"})," the same way a real user would. Then you can make assertions about whether or not a certain element exists in the app\u2019s screen, whether or not it\u2019s visible, what text it contains, and so on."]}),"\n",(0,s.jsx)(t.p,{children:"E2E tests give you the highest possible confidence that part of your app is working. The tradeoffs include:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"writing them is more time consuming compared to the other types of tests"}),"\n",(0,s.jsx)(t.li,{children:"they are slower to run"}),"\n",(0,s.jsx)(t.li,{children:'they are more prone to flakiness (a "flaky" test is a test which randomly passes and fails without any change to code)'}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Try to cover the vital parts of your app with E2E tests: authentication flow, core functionalities, payments, etc. Use faster JS tests for the non-vital parts of your app. The more tests you add, the higher your confidence, but also, the more time you'll spend maintaining and running them. Consider the tradeoffs and decide what's best for you."}),"\n",(0,s.jsxs)(t.p,{children:["There are several E2E testing tools available: in the React Native community, ",(0,s.jsx)(t.a,{href:"https://github.com/wix/detox/",children:"Detox"})," is a popular framework because it\u2019s tailored for React Native apps. Another popular library in the space of iOS and Android apps is ",(0,s.jsx)(t.a,{href:"http://appium.io/",children:"Appium"}),"."]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-e2e.svg",alt:" "}),"\n",(0,s.jsx)(t.h2,{id:"summary",children:"Summary"}),"\n",(0,s.jsx)(t.p,{children:"We hope you enjoyed reading and learned something from this guide. There are many ways you can test your apps. It may be hard to decide what to use at first. However, we believe it all will make sense once you start adding tests to your awesome React Native app. So what are you waiting for? Get your coverage up!"}),"\n",(0,s.jsx)(t.h3,{id:"links",children:"Links"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://zh-hans.reactjs.org/docs/testing.html",children:"React testing overview"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/callstack/react-native-testing-library",children:(0,s.jsx)(t.code,{children:"react-native-testing-library"})})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://www.native-testing-library.com/",children:(0,s.jsx)(t.code,{children:"@testing-library/react-native"})})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/tutorial-react-native",children:"Jest docs"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/wix/detox/",children:"Detox"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"http://appium.io/",children:"Appium"})}),"\n"]}),"\n",(0,s.jsx)(t.hr,{}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsxs)(t.em,{children:["This guide originally authored and contributed in full by ",(0,s.jsx)(t.a,{href:"https://twitter.com/vonovak",children:"Vojtech Novak"}),"."]})})]})}function d(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},71426:(e,t,n)=>{var s=n(27378),i=Symbol.for("react.element"),o=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,a=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function h(e,t,n){var s,o={},h=null,l=null;for(s in void 0!==n&&(h=""+n),void 0!==t.key&&(h=""+t.key),void 0!==t.ref&&(l=t.ref),t)r.call(t,s)&&!c.hasOwnProperty(s)&&(o[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps)void 0===o[s]&&(o[s]=t[s]);return{$$typeof:i,type:e,key:h,ref:l,props:o,_owner:a.current}}t.Fragment=o,t.jsx=h,t.jsxs=h},24246:(e,t,n)=>{e.exports=n(71426)},71670:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var s=n(27378);const i={},o=s.createContext(i);function r(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b42b2a17.147732a2.js.LICENSE.txt b/assets/js/b42b2a17.134a7efc.js.LICENSE.txt similarity index 100% rename from assets/js/b42b2a17.147732a2.js.LICENSE.txt rename to assets/js/b42b2a17.134a7efc.js.LICENSE.txt diff --git a/assets/js/b42b2a17.147732a2.js b/assets/js/b42b2a17.147732a2.js deleted file mode 100644 index 7319443a8f0..00000000000 --- a/assets/js/b42b2a17.147732a2.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see b42b2a17.147732a2.js.LICENSE.txt */ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[77552],{53227:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>h});var s=n(24246),i=n(71670);const o={id:"testing-overview",title:"Testing",author:"Vojtech Novak",authorURL:"https://twitter.com/vonovak",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."},r=void 0,a={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.",source:"@site/../cndocs/testing-overview.md",sourceDirName:".",slug:"/testing-overview",permalink:"/docs/next/testing-overview",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/testing-overview.md",tags:[],version:"current",frontMatter:{id:"testing-overview",title:"Testing",author:"Vojtech Novak",authorURL:"https://twitter.com/vonovak",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",previous:{title:"Other Debugging Methods",permalink:"/docs/next/other-debugging-methods"},next:{title:"\u6027\u80fd\u7efc\u8ff0",permalink:"/docs/next/performance"}},c={},h=[{value:"Why Test",id:"why-test",level:2},{value:"Static Analysis",id:"static-analysis",level:2},{value:"Writing Testable Code",id:"writing-testable-code",level:2},{value:"Writing Tests",id:"writing-tests",level:2},{value:"Structuring Tests",id:"structuring-tests",level:3},{value:"Unit tests",id:"unit-tests",level:2},{value:"Mocking",id:"mocking",level:3},{value:"Integration Tests",id:"integration-tests",level:2},{value:"Component Tests",id:"component-tests",level:2},{value:"Testing User Interactions",id:"testing-user-interactions",level:3},{value:"Testing Rendered Output",id:"testing-rendered-output",level:3},{value:"End-to-End Tests",id:"end-to-end-tests",level:2},{value:"Summary",id:"summary",level:2},{value:"Links",id:"links",level:3}];function l(e){const t={a:"a",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"As your codebase expands, small errors and edge cases you don\u2019t expect can cascade into larger failures. Bugs lead to bad user experience and ultimately, business losses. One way to prevent fragile programming is to test your code before releasing it into the wild."}),"\n",(0,s.jsx)(t.p,{children:"In this guide, we will cover different, automated ways to ensure your app works as expected, ranging from static analysis to end-to-end tests."}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/diagram_testing.svg",alt:"Testing is a cycle of fixing, testing, and either passing to release or failing back into testing."}),"\n",(0,s.jsx)(t.h2,{id:"why-test",children:"Why Test"}),"\n",(0,s.jsx)(t.p,{children:"We're humans, and humans make mistakes. Testing is important because it helps you uncover these mistakes and verifies that your code is working. Perhaps even more importantly, testing ensures that your code continues to work in the future as you add new features, refactor the existing ones, or upgrade major dependencies of your project."}),"\n",(0,s.jsx)(t.p,{children:"There is more value in testing than you might realize. One of the best ways to fix a bug in your code is to write a failing test that exposes it. Then when you fix the bug and re-run the test, if it passes it means the bug is fixed, never reintroduced into the code base."}),"\n",(0,s.jsx)(t.p,{children:"Tests can also serve as documentation for new people joining your team. For people who have never seen a codebase before, reading tests can help them understand how the existing code works."}),"\n",(0,s.jsxs)(t.p,{children:["Last but not least, more automated testing means less time spent with manual ",(0,s.jsx)("abbr",{title:"Quality Assurance",children:"QA"}),", freeing up valuable time."]}),"\n",(0,s.jsx)(t.h2,{id:"static-analysis",children:"Static Analysis"}),"\n",(0,s.jsx)(t.p,{children:"The first step to improve your code quality is to start using static analysis tools. Static analysis checks your code for errors as you write it, but without running any of that code."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Linters"})," analyze code to catch common errors such as unused code and to help avoid pitfalls, to flag style guide no-nos like using tabs instead of spaces (or vice versa, depending on your configuration)."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Type checking"})," ensures that the construct you\u2019re passing to a function matches what the function was designed to accept, preventing passing a string to a counting function that expects a number, for instance."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["React Native comes with two such tools configured out of the box: ",(0,s.jsx)(t.a,{href:"https://eslint.org/",children:"ESLint"})," for linting and ",(0,s.jsx)(t.a,{href:"https://flow.org/en/docs/",children:"Flow"})," for type checking. You can also use ",(0,s.jsx)(t.a,{href:"typescript",children:"TypeScript"}),", which is a typed language that compiles to plain JavaScript."]}),"\n",(0,s.jsx)(t.h2,{id:"writing-testable-code",children:"Writing Testable Code"}),"\n",(0,s.jsx)(t.p,{children:"To start with tests, you first need to write code that is testable. Consider an aircraft manufacturing process - before any model first takes off to show that all of its complex systems work well together, individual parts are tested to guarantee they are safe and function correctly. For example, wings are tested by bending them under extreme load; engine parts are tested for their durability; the windshield is tested against simulated bird impact."}),"\n",(0,s.jsx)(t.p,{children:"Software is similar. Instead of writing your entire program in one huge file with many lines of code, you write your code in multiple small modules that you can test more thoroughly than if you tested the assembled whole. In this way, writing testable code is intertwined with writing clean, modular code."}),"\n",(0,s.jsx)(t.p,{children:"To make your app more testable, start by separating the view part of your app\u2014your React components\u2014from your business logic and app state (regardless of whether you use Redux, MobX or other solutions). This way, you can keep your business logic testing\u2014which shouldn\u2019t rely on your React components\u2014independent of the components themselves, whose job is primarily rendering your app\u2019s UI!"}),"\n",(0,s.jsx)(t.p,{children:"Theoretically, you could go so far as to move all logic and data fetching out of your components. This way your components would be solely dedicated to rendering. Your state would be entirely independent of your components. Your app\u2019s logic would work without any React components at all!"}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:"We encourage you to further explore the topic of testable code in other learning resources."}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"writing-tests",children:"Writing Tests"}),"\n",(0,s.jsxs)(t.p,{children:["After writing testable code, it\u2019s time to write some actual tests! The default template of React Native ships with ",(0,s.jsx)(t.a,{href:"https://jestjs.io",children:"Jest"})," testing framework. It includes a preset that's tailored to this environment so you can get productive without tweaking the configuration and mocks straight away\u2014",(0,s.jsx)(t.a,{href:"#mocking",children:"more on mocks"})," shortly. You can use Jest to write all types of tests featured in this guide."]}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:"If you do test-driven development, you actually write tests first! That way, testability of your code is given."}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"structuring-tests",children:"Structuring Tests"}),"\n",(0,s.jsx)(t.p,{children:"Your tests should be short and ideally test only one thing. Let's start with an example unit test written with Jest:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-js",children:"it('given a date in the past, colorForDueDate() returns red', () => {\n expect(colorForDueDate('2000-10-20')).toBe('red');\n});\n"})}),"\n",(0,s.jsxs)(t.p,{children:["The test is described by the string passed to the ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api#testname-fn-timeout",children:(0,s.jsx)(t.code,{children:"it"})})," function. Take good care writing the description so that it\u2019s clear what is being tested. Do your best to cover the following:"]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Given"})," - some precondition"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"When"})," - some action executed by the function that you\u2019re testing"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Then"})," - the expected outcome"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"This is also known as AAA (Arrange, Act, Assert)."}),"\n",(0,s.jsxs)(t.p,{children:["Jest offers ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api#describename-fn",children:(0,s.jsx)(t.code,{children:"describe"})})," function to help structure your tests. Use ",(0,s.jsx)(t.code,{children:"describe"})," to group together all tests that belong to one functionality. Describes can be nested, if you need that. Other functions you'll commonly use are ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api#beforeeachfn-timeout",children:(0,s.jsx)(t.code,{children:"beforeEach"})})," or ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api#beforeallfn-timeout",children:(0,s.jsx)(t.code,{children:"beforeAll"})})," that you can use for setting up the objects you're testing. Read more in the ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api",children:"Jest api reference"}),"."]}),"\n",(0,s.jsx)(t.p,{children:"If your test has many steps or many expectations, you probably want to split it into multiple smaller ones. Also, ensure that your tests are completely independent of one another. Each test in your suite must be executable on its own without first running some other test. Conversely, if you run all your tests together, the first test must not influence the output of the second one."}),"\n",(0,s.jsxs)(t.p,{children:["Lastly, as developers we like when our code works great and doesn't crash. With tests, this is often the opposite. Think of a failed test as of a ",(0,s.jsx)(t.em,{children:"good thing!"})," When a test fails, it often means something is not right. This gives you an opportunity to fix the problem before it impacts the users."]}),"\n",(0,s.jsx)(t.h2,{id:"unit-tests",children:"Unit tests"}),"\n",(0,s.jsx)(t.p,{children:"Unit tests cover the smallest parts of code, like individual functions or classes."}),"\n",(0,s.jsx)(t.p,{children:"When the object being tested has any dependencies, you\u2019ll often need to mock them out, as described in the next paragraph."}),"\n",(0,s.jsxs)(t.p,{children:["The great thing about unit tests is that they are quick to write and run. Therefore, as you work, you get fast feedback about whether your tests are passing. Jest even has an option to continuously run tests that are related to code you\u2019re editing: ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/cli#watch",children:"Watch mode"}),"."]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-unit.svg",alt:" "}),"\n",(0,s.jsx)(t.h3,{id:"mocking",children:"Mocking"}),"\n",(0,s.jsx)(t.p,{children:"Sometimes, when your tested objects have external dependencies, you\u2019ll want to \u201cmock them out.\u201d \u201cMocking\u201d is when you replace some dependency of your code with your own implementation."}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:"Generally, using real objects in your tests is better than using mocks but there are situations where this is not possible. For example: when your JS unit test relies on a native module written in Java or Objective-C."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Imagine you\u2019re writing an app that shows the current weather in your city and you\u2019re using some external service or other dependency that provides you with the weather information. If the service tells you that it\u2019s raining, you want to show an image with a rainy cloud. You don\u2019t want to call that service in your tests, because:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"It could make the tests slow and unstable (because of the network requests involved)"}),"\n",(0,s.jsx)(t.li,{children:"The service may return different data every time you run the test"}),"\n",(0,s.jsx)(t.li,{children:"Third party services can go offline when you really need to run tests!"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Therefore, you can provide a mock implementation of the service, effectively replacing thousands of lines of code and some internet-connected thermometers!"}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsxs)(t.p,{children:["Jest comes with ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/mock-functions#mocking-modules",children:"support for mocking"})," from function level all the way to module level mocking."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"integration-tests",children:"Integration Tests"}),"\n",(0,s.jsx)(t.p,{children:"When writing larger software systems, individual pieces of it need to interact with each other. In unit testing, if your unit depends on another one, you\u2019ll sometimes end up mocking the dependency, replacing it with a fake one."}),"\n",(0,s.jsx)(t.p,{children:"In integration testing, real individual units are combined (same as in your app) and tested together to ensure that their cooperation works as expected. This is not to say that mocking does not happen here: you\u2019ll still need mocks (for example, to mock communication with a weather service), but you'll need them much less than in unit testing."}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:'Please note that the terminology around what integration testing means is not always consistent. Also, the line between what is a unit test and what is an integration test may not always be clear. For this guide, your test falls into "integration testing" if it:'}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Combines several modules of your app as described above"}),"\n",(0,s.jsx)(t.li,{children:"Uses an external system"}),"\n",(0,s.jsx)(t.li,{children:"Makes a network call to other application (such as the weather service API)"}),"\n",(0,s.jsxs)(t.li,{children:["Does any kind of file or database ",(0,s.jsx)("abbr",{title:"Input/Output",children:"I/O"})]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-integration.svg",alt:" "}),"\n",(0,s.jsx)(t.h2,{id:"component-tests",children:"Component Tests"}),"\n",(0,s.jsx)(t.p,{children:"React components are responsible for rendering your app, and users will directly interact with their output. Even if your app's business logic has high testing coverage and is correct, without component tests you may still deliver a broken UI to your users. Component tests could fall into both unit and integration testing, but because they are such a core part of React Native, we'll cover them separately."}),"\n",(0,s.jsx)(t.p,{children:"For testing React components, there are two things you may want to test:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Interaction: to ensure the component behaves correctly when interacted with by a user (eg. when user presses a button)"}),"\n",(0,s.jsx)(t.li,{children:"Rendering: to ensure the component render output used by React is correct (eg. the button's appearance and placement in the UI)"}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["For example, if you have a button that has an ",(0,s.jsx)(t.code,{children:"onPress"})," listener, you want to test that the button both appears correctly and that tapping the button is correctly handled by the component."]}),"\n",(0,s.jsx)(t.p,{children:"There are several libraries that can help you testing these:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["React\u2019s ",(0,s.jsx)(t.a,{href:"https://zh-hans.reactjs.org/docs/test-renderer.html",children:"Test Renderer"}),", developed alongside its core, provides a React renderer that can be used to render React components to pure JavaScript objects, without depending on the DOM or a native mobile environment."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://github.com/callstack/react-native-testing-library",children:(0,s.jsx)(t.code,{children:"react-native-testing-library"})})," builds on top of React\u2019s test renderer and adds ",(0,s.jsx)(t.code,{children:"fireEvent"})," and ",(0,s.jsx)(t.code,{children:"query"})," APIs described in the next paragraph."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://www.native-testing-library.com/",children:(0,s.jsx)(t.code,{children:"@testing-library/react-native"})})," is another alternative that also builds on top of React\u2019s test renderer and adds ",(0,s.jsx)(t.code,{children:"fireEvent"})," and ",(0,s.jsx)(t.code,{children:"query"})," APIs described in the next paragraph."]}),"\n"]}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsxs)(t.p,{children:["Component tests are only JavaScript tests running in Node.js environment. They do ",(0,s.jsx)(t.em,{children:"not"})," take into account any iOS, Android, or other platform code which is backing the React Native components. It follows that they cannot give you a 100% confidence that everything works for the user. If there is a bug in the iOS or Android code, they will not find it."]}),"\n"]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-component.svg",alt:" "}),"\n",(0,s.jsx)(t.h3,{id:"testing-user-interactions",children:"Testing User Interactions"}),"\n",(0,s.jsxs)(t.p,{children:["Aside from rendering some UI, your components handle events like ",(0,s.jsx)(t.code,{children:"onChangeText"})," for ",(0,s.jsx)(t.code,{children:"TextInput"})," or ",(0,s.jsx)(t.code,{children:"onPress"})," for ",(0,s.jsx)(t.code,{children:"Button"}),". They may also contain other functions and event callbacks. Consider the following example:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-jsx",children:"function GroceryShoppingList() {\n const [groceryItem, setGroceryItem] = useState('');\n const [items, setItems] = useState([]);\n\n const addNewItemToShoppingList = useCallback(() => {\n setItems([groceryItem, ...items]);\n setGroceryItem('');\n }, [groceryItem, items]);\n\n return (\n <>\n setGroceryItem(text)}\n />\n \n {items.map((item) => (\n {item}\n ))}\n \n );\n}\n"})}),"\n",(0,s.jsx)(t.p,{children:"When testing user interactions, test the component from the user perspective\u2014what's on the page? What changes when interacted with?"}),"\n",(0,s.jsx)(t.p,{children:"As a rule of thumb, prefer using things users can see or hear:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["make assertions using rendered text or ",(0,s.jsx)(t.a,{href:"accessibility#accessibility-properties",children:"accessibility helpers"})]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Conversely, you should avoid:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"making assertions on component props or state"}),"\n",(0,s.jsx)(t.li,{children:"testID queries"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Avoid testing implementation details like props or state\u2014while such tests work, they are not oriented toward how users will interact with the component and tend to break by refactoring (for example when you'd like to rename some things or rewrite class component using hooks)."}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsxs)(t.p,{children:["React class components are especially prone to testing their implementation details such as internal state, props or event handlers. To avoid testing implementation details, prefer using function components with Hooks, which make relying on component internals ",(0,s.jsx)(t.em,{children:"harder"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["Component testing libraries such as ",(0,s.jsx)(t.a,{href:"https://github.com/callstack/react-native-testing-library",children:(0,s.jsx)(t.code,{children:"react-native-testing-library"})})," facilitate writing user-centric tests by careful choice of provided APIs. The following example uses ",(0,s.jsx)(t.code,{children:"fireEvent"})," methods ",(0,s.jsx)(t.code,{children:"changeText"})," and ",(0,s.jsx)(t.code,{children:"press"})," that simulate a user interacting with the component and a query function ",(0,s.jsx)(t.code,{children:"getAllByText"})," that finds matching ",(0,s.jsx)(t.code,{children:"Text"})," nodes in the rendered output."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-jsx",children:"test('given empty GroceryShoppingList, user can add an item to it', () => {\n const { getByPlaceholder, getByText, getAllByText } = render(\n \n );\n\n fireEvent.changeText(\n getByPlaceholder('Enter grocery item'),\n 'banana'\n );\n fireEvent.press(getByText('Add the item to list'));\n\n const bananaElements = getAllByText('banana');\n expect(bananaElements).toHaveLength(1); // expect 'banana' to be on the list\n});\n"})}),"\n",(0,s.jsxs)(t.p,{children:["This example is not testing how some state changes when you call a function. It tests what happens when a user changes text in the ",(0,s.jsx)(t.code,{children:"TextInput"})," and presses the ",(0,s.jsx)(t.code,{children:"Button"}),"!"]}),"\n",(0,s.jsx)(t.h3,{id:"testing-rendered-output",children:"Testing Rendered Output"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/snapshot-testing",children:"Snapshot testing"})," is an advanced kind of testing enabled by Jest. It is a very powerful and low-level tool, so extra attention is advised when using it."]}),"\n",(0,s.jsxs)(t.p,{children:['A "component snapshot" is a JSX-like string created by a custom React serializer built into Jest. This serializer lets Jest translate React component trees to string that\'s human-readable. Put another way: a component snapshot is a textual representation of your component\u2019s render output ',(0,s.jsx)(t.em,{children:"generated"})," during a test run. It may look like this:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-jsx",children:'\n Welcome to React Native!\n\n'})}),"\n",(0,s.jsxs)(t.p,{children:["With snapshot testing, you typically first implement your component and then run the snapshot test. The snapshot test then creates a snapshot and saves it to a file in your repo as a reference snapshot. ",(0,s.jsx)(t.strong,{children:"The file is then committed and checked during code review"}),". Any future changes to the component render output will change its snapshot, which will cause the test to fail. You then need to update the stored reference snapshot for the test to pass. That change again needs to be committed and reviewed."]}),"\n",(0,s.jsx)(t.p,{children:"Snapshots have several weak points:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"For you as a developer or reviewer, it can be hard to tell whether a change in snapshot is intended or whether it's evidence of a bug. Especially large snapshots can quickly become hard to understand and their added value becomes low."}),"\n",(0,s.jsx)(t.li,{children:"When snapshot is created, at that point it is considered to be correct-even in the case when the rendered output is actually wrong."}),"\n",(0,s.jsxs)(t.li,{children:["When a snapshot fails, it's tempting to update it using the ",(0,s.jsx)(t.code,{children:"--updateSnapshot"})," jest option without taking proper care to investigate whether the change is expected. Certain developer discipline is thus needed."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Snapshots themselves do not ensure that your component render logic is correct, they are merely good at guarding against unexpected changes and for checking that the components in the React tree under test receive the expected props (styles and etc.)."}),"\n",(0,s.jsxs)(t.p,{children:["We recommend that you only use small snapshots (see ",(0,s.jsxs)(t.a,{href:"https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/no-large-snapshots.md",children:[(0,s.jsx)(t.code,{children:"no-large-snapshots"})," rule"]}),"). If you want to test a ",(0,s.jsx)(t.em,{children:"change"})," between two React component states, use ",(0,s.jsx)(t.a,{href:"https://github.com/jest-community/snapshot-diff",children:(0,s.jsx)(t.code,{children:"snapshot-diff"})}),". When in doubt, prefer explicit expectations as described in the previous paragraph."]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-snapshot.svg",alt:" "}),"\n",(0,s.jsx)(t.h2,{id:"end-to-end-tests",children:"End-to-End Tests"}),"\n",(0,s.jsx)(t.p,{children:"In end-to-end (E2E) tests, you verify your app is working as expected on a device (or a simulator / emulator) from the user perspective."}),"\n",(0,s.jsx)(t.p,{children:"This is done by building your app in the release configuration and running the tests against it. In E2E tests, you no longer think about React components, React Native APIs, Redux stores or any business logic. That is not the purpose of E2E tests and those are not even accessible to you during E2E testing."}),"\n",(0,s.jsxs)(t.p,{children:["Instead, E2E testing libraries allow you to find and control elements in the screen of your app: for example, you can ",(0,s.jsx)(t.em,{children:"actually"})," tap buttons or insert text into ",(0,s.jsx)(t.code,{children:"TextInputs"})," the same way a real user would. Then you can make assertions about whether or not a certain element exists in the app\u2019s screen, whether or not it\u2019s visible, what text it contains, and so on."]}),"\n",(0,s.jsx)(t.p,{children:"E2E tests give you the highest possible confidence that part of your app is working. The tradeoffs include:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"writing them is more time consuming compared to the other types of tests"}),"\n",(0,s.jsx)(t.li,{children:"they are slower to run"}),"\n",(0,s.jsx)(t.li,{children:'they are more prone to flakiness (a "flaky" test is a test which randomly passes and fails without any change to code)'}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Try to cover the vital parts of your app with E2E tests: authentication flow, core functionalities, payments, etc. Use faster JS tests for the non-vital parts of your app. The more tests you add, the higher your confidence, but also, the more time you'll spend maintaining and running them. Consider the tradeoffs and decide what's best for you."}),"\n",(0,s.jsxs)(t.p,{children:["There are several E2E testing tools available: in the React Native community, ",(0,s.jsx)(t.a,{href:"https://github.com/wix/detox/",children:"Detox"})," is a popular framework because it\u2019s tailored for React Native apps. Another popular library in the space of iOS and Android apps is ",(0,s.jsx)(t.a,{href:"http://appium.io/",children:"Appium"}),"."]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-e2e.svg",alt:" "}),"\n",(0,s.jsx)(t.h2,{id:"summary",children:"Summary"}),"\n",(0,s.jsx)(t.p,{children:"We hope you enjoyed reading and learned something from this guide. There are many ways you can test your apps. It may be hard to decide what to use at first. However, we believe it all will make sense once you start adding tests to your awesome React Native app. So what are you waiting for? Get your coverage up!"}),"\n",(0,s.jsx)(t.h3,{id:"links",children:"Links"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://zh-hans.reactjs.org/docs/testing.html",children:"React testing overview"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/callstack/react-native-testing-library",children:(0,s.jsx)(t.code,{children:"react-native-testing-library"})})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://www.native-testing-library.com/",children:(0,s.jsx)(t.code,{children:"@testing-library/react-native"})})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/tutorial-react-native",children:"Jest docs"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/wix/detox/",children:"Detox"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"http://appium.io/",children:"Appium"})}),"\n"]}),"\n",(0,s.jsx)(t.hr,{}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsxs)(t.em,{children:["This guide originally authored and contributed in full by ",(0,s.jsx)(t.a,{href:"https://twitter.com/vonovak",children:"Vojtech Novak"}),"."]})})]})}function d(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},71426:(e,t,n)=>{var s=n(27378),i=Symbol.for("react.element"),o=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,a=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function h(e,t,n){var s,o={},h=null,l=null;for(s in void 0!==n&&(h=""+n),void 0!==t.key&&(h=""+t.key),void 0!==t.ref&&(l=t.ref),t)r.call(t,s)&&!c.hasOwnProperty(s)&&(o[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps)void 0===o[s]&&(o[s]=t[s]);return{$$typeof:i,type:e,key:h,ref:l,props:o,_owner:a.current}}t.Fragment=o,t.jsx=h,t.jsxs=h},24246:(e,t,n)=>{e.exports=n(71426)},71670:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var s=n(27378);const i={},o=s.createContext(i);function r(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f6d3c175.061f6d41.js b/assets/js/f6d3c175.061f6d41.js deleted file mode 100644 index 97f6bc7324d..00000000000 --- a/assets/js/f6d3c175.061f6d41.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see f6d3c175.061f6d41.js.LICENSE.txt */ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[62826],{5666:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var r=n(24246),a=n(71670);n(48375),n(86386),n(11674);const l={id:"native-debugging",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"},o=void 0,i={id:"native-debugging",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",description:"Projects with Native Code Only",source:"@site/../cndocs/native-debugging.md",sourceDirName:".",slug:"/native-debugging",permalink:"/docs/next/native-debugging",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/native-debugging.md",tags:[],version:"current",frontMatter:{id:"native-debugging",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"},sidebar:"docs",previous:{title:"React \u5f00\u53d1\u8005\u5de5\u5177",permalink:"/docs/next/react-devtools"},next:{title:"Debugging Release Builds",permalink:"/docs/next/debugging-release-builds"}},s={},u=[{value:"\u8bbf\u95ee\u63a7\u5236\u53f0\u65e5\u5fd7",id:"\u8bbf\u95ee\u63a7\u5236\u53f0\u65e5\u5fd7",level:2},{value:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",id:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",level:2}];function c(e){const t={admonition:"admonition",code:"code",h2:"h2",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"banner-native-code-required",children:[(0,r.jsx)("h3",{children:"Projects with Native Code Only"}),(0,r.jsx)("p",{children:(0,r.jsxs)(t.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,r.jsx)("a",{href:"https://docs.expo.dev/workflow/prebuild/",target:"_blank",children:"prebuild"})," to use this API."]})})]}),"\n",(0,r.jsx)(t.h2,{id:"\u8bbf\u95ee\u63a7\u5236\u53f0\u65e5\u5fd7",children:"\u8bbf\u95ee\u63a7\u5236\u53f0\u65e5\u5fd7"}),"\n",(0,r.jsx)(t.p,{children:"\u5728\u8fd0\u884c RN \u5e94\u7528\u65f6\uff0c\u53ef\u4ee5\u5728\u7ec8\u7aef\u4e2d\u8fd0\u884c\u5982\u4e0b\u547d\u4ee4\u6765\u67e5\u770b\u63a7\u5236\u53f0\u7684\u65e5\u5fd7\uff1a"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-sh",children:"$ npx react-native log-ios\n$ npx react-native log-android\n"})}),"\n",(0,r.jsxs)(t.p,{children:["\u6b64\u5916\uff0c\u4f60\u4e5f\u53ef\u4ee5\u5728 iOS \u6a21\u62df\u5668\u7684\u83dc\u5355\u4e2d\u9009\u62e9",(0,r.jsx)(t.code,{children:"Debug \u2192 Open System Log..."}),"\u6765\u67e5\u770b\u3002\u5982\u679c\u662f Android \u5e94\u7528\uff0c\u65e0\u8bba\u662f\u8fd0\u884c\u5728\u6a21\u62df\u5668\u6216\u662f\u771f\u673a\u4e0a\uff0c\u90fd\u53ef\u4ee5\u901a\u8fc7\u5728\u7ec8\u7aef\u547d\u4ee4\u884c\u91cc\u8fd0\u884c",(0,r.jsx)(t.code,{children:"adb logcat *:S ReactNative:V ReactNativeJS:V"}),"\u547d\u4ee4\u6765\u67e5\u770b\u3002"]}),"\n",(0,r.jsx)(t.admonition,{type:"info",children:(0,r.jsx)(t.p,{children:"If you're using Expo CLI, console logs already appear in the same terminal output as the bundler."})}),"\n",(0,r.jsx)(t.h2,{id:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",children:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"}),"\n",(0,r.jsx)(t.p,{children:"\u5728\u548c\u539f\u751f\u4ee3\u7801\u6253\u4ea4\u9053\u65f6\uff08\u6bd4\u5982\u7f16\u5199\u539f\u751f\u6a21\u5757\uff09\uff0c\u53ef\u4ee5\u76f4\u63a5\u4ece Android Studio \u6216\u662f Xcode \u4e2d\u542f\u52a8\u5e94\u7528\uff0c\u5e76\u5229\u7528\u8fd9\u4e9b IDE \u7684\u5185\u7f6e\u529f\u80fd\u6765\u8c03\u8bd5\uff08\u6bd4\u5982\u8bbe\u7f6e\u65ad\u70b9\uff09\u3002\u8fd9\u4e00\u65b9\u9762\u548c\u5f00\u53d1\u539f\u751f\u5e94\u7528\u5e76\u65e0\u4e8c\u81f4\u3002"})]})}function d(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},11674:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(63445);const a=!!r.Z.canUseDOM&&navigator.platform.startsWith("Mac"),l=!!r.Z.canUseDOM&&navigator.platform.startsWith("Win"),o={defaultGuide:"native",defaultOs:a?"macos":l?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:a?"ios":"android",defaultSyntax:"functional",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"}]}},86386:(e,t,n)=>{n.d(t,{Z:()=>p});var r=n(27378),a=n(40624);const l={tabItem:"tabItem_wHwb"};var o=Object.defineProperty,i=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable,c=(e,t,n)=>t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,d=(e,t)=>{for(var n in t||(t={}))s.call(t,n)&&c(e,n,t[n]);if(i)for(var n of i(t))u.call(t,n)&&c(e,n,t[n]);return e};function p({children:e,hidden:t,className:n}){return r.createElement("div",d({role:"tabpanel",className:(0,a.Z)(l.tabItem,n)},{hidden:t}),e)}},48375:(e,t,n)=>{n.d(t,{Z:()=>L});var r=n(27378),a=n(40624),l=n(12112),o=n(3620),i=n(69490),s=n(14953),u=n(27886),c=n(7106),d=Object.defineProperty,p=Object.defineProperties,b=Object.getOwnPropertyDescriptors,f=Object.getOwnPropertySymbols,v=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable,h=(e,t,n)=>t in e?d(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,g=(e,t)=>{for(var n in t||(t={}))v.call(t,n)&&h(e,n,t[n]);if(f)for(var n of f(t))m.call(t,n)&&h(e,n,t[n]);return e},y=(e,t)=>p(e,b(t));function w(e){var t,n;return null!=(n=null==(t=r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(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.`)})))?void 0:t.filter(Boolean))?n:[]}function x(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=null!=t?t:function(e){return w(e).map((({props:{value:e,label:t,attributes:n,default:r}})=>({value:e,label:t,attributes:n,default:r})))}(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function O({value:e,tabValues:t}){return t.some((t=>t.value===e))}function j({queryString:e=!1,groupId:t}){const n=(0,o.k6)(),a=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)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 null!=t?t:null}({queryString:e,groupId:t});return[(0,s._X)(a),(0,r.useCallback)((e=>{if(!a)return;const t=new URLSearchParams(n.location.search);t.set(a,e),n.replace(y(g({},n.location),{search:t.toString()}))}),[a,n])]}function E(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=x(e),[o,s]=(0,r.useState)((()=>function({defaultValue:e,tabValues:t}){var n;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!O({value:e,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const r=null!=(n=t.find((e=>e.default)))?n:t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[u,d]=j({queryString:n,groupId:a}),[p,b]=function({groupId:e}){const t=function(e){return e?`docusaurus.tab.${e}`:null}(e),[n,a]=(0,c.Nk)(t);return[n,(0,r.useCallback)((e=>{t&&a.set(e)}),[t,a])]}({groupId:a}),f=(()=>{const e=null!=u?u:p;return O({value:e,tabValues:l})?e:null})();(0,i.Z)((()=>{f&&s(f)}),[f]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!O({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),d(e),b(e)}),[d,b,l]),tabValues:l}}var k=n(14185);const I={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};var S=Object.defineProperty,_=Object.defineProperties,P=Object.getOwnPropertyDescriptors,N=Object.getOwnPropertySymbols,V=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable,D=(e,t,n)=>t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,C=(e,t)=>{for(var n in t||(t={}))V.call(t,n)&&D(e,n,t[n]);if(N)for(var n of N(t))T.call(t,n)&&D(e,n,t[n]);return e},q=(e,t)=>_(e,P(t));function A({className:e,block:t,selectedValue:n,selectValue:o,tabValues:i}){const s=[],{blockElementScrollPositionUntilNextRender:u}=(0,l.o5)(),c=e=>{const t=e.currentTarget,r=s.indexOf(t),a=i[r].value;a!==n&&(u(t),o(a))},d=e=>{var t,n;let r=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const n=s.indexOf(e.currentTarget)+1;r=null!=(t=s[n])?t:s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;r=null!=(n=s[t])?n:s[s.length-1];break}}null==r||r.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},e)},i.map((({value:e,label:t,attributes:l})=>r.createElement("li",q(C({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,key:e,ref:e=>s.push(e),onKeyDown:d,onClick:c},l),{className:(0,a.Z)("tabs__item",I.tabItem,null==l?void 0:l.className,{"tabs__item--active":n===e})}),null!=t?t:e))))}function R({lazy:e,children:t,selectedValue:n}){const a=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){const e=a.find((e=>e.props.value===n));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},a.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function Z(e){const t=E(e);return r.createElement("div",{className:(0,a.Z)("tabs-container",I.tabList)},r.createElement(A,C(C({},e),t)),r.createElement(R,C(C({},e),t)))}function L(e){const t=(0,k.Z)();return r.createElement(Z,C({key:String(t)},e),w(e.children))}},71426:(e,t,n)=>{var r=n(27378),a=Symbol.for("react.element"),l=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,i=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,l={},u=null,c=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(c=t.ref),t)o.call(t,r)&&!s.hasOwnProperty(r)&&(l[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===l[r]&&(l[r]=t[r]);return{$$typeof:a,type:e,key:u,ref:c,props:l,_owner:i.current}}t.Fragment=l,t.jsx=u,t.jsxs=u},24246:(e,t,n)=>{e.exports=n(71426)},71670:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>o});var r=n(27378);const a={},l=r.createContext(a);function o(e){const t=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f6d3c175.9fa40605.js b/assets/js/f6d3c175.9fa40605.js new file mode 100644 index 00000000000..1686c5bdb6b --- /dev/null +++ b/assets/js/f6d3c175.9fa40605.js @@ -0,0 +1,2 @@ +/*! For license information please see f6d3c175.9fa40605.js.LICENSE.txt */ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[62826],{5666:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var r=n(24246),a=n(71670);n(48375),n(86386),n(11674);const l={id:"native-debugging",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"},o=void 0,i={id:"native-debugging",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",description:"Projects with Native Code Only",source:"@site/../cndocs/native-debugging.md",sourceDirName:".",slug:"/native-debugging",permalink:"/docs/next/native-debugging",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/native-debugging.md",tags:[],version:"current",frontMatter:{id:"native-debugging",title:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"},sidebar:"docs",previous:{title:"React \u5f00\u53d1\u8005\u5de5\u5177",permalink:"/docs/next/react-devtools"},next:{title:"\u8c03\u8bd5\u53d1\u884c\u7248\u672c",permalink:"/docs/next/debugging-release-builds"}},s={},u=[{value:"\u8bbf\u95ee\u63a7\u5236\u53f0\u65e5\u5fd7",id:"\u8bbf\u95ee\u63a7\u5236\u53f0\u65e5\u5fd7",level:2},{value:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",id:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",level:2}];function c(e){const t={admonition:"admonition",code:"code",h2:"h2",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"banner-native-code-required",children:[(0,r.jsx)("h3",{children:"Projects with Native Code Only"}),(0,r.jsx)("p",{children:(0,r.jsxs)(t.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,r.jsx)("a",{href:"https://docs.expo.dev/workflow/prebuild/",target:"_blank",children:"prebuild"})," to use this API."]})})]}),"\n",(0,r.jsx)(t.h2,{id:"\u8bbf\u95ee\u63a7\u5236\u53f0\u65e5\u5fd7",children:"\u8bbf\u95ee\u63a7\u5236\u53f0\u65e5\u5fd7"}),"\n",(0,r.jsx)(t.p,{children:"\u5728\u8fd0\u884c RN \u5e94\u7528\u65f6\uff0c\u53ef\u4ee5\u5728\u7ec8\u7aef\u4e2d\u8fd0\u884c\u5982\u4e0b\u547d\u4ee4\u6765\u67e5\u770b\u63a7\u5236\u53f0\u7684\u65e5\u5fd7\uff1a"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-sh",children:"$ npx react-native log-ios\n$ npx react-native log-android\n"})}),"\n",(0,r.jsxs)(t.p,{children:["\u6b64\u5916\uff0c\u4f60\u4e5f\u53ef\u4ee5\u5728 iOS \u6a21\u62df\u5668\u7684\u83dc\u5355\u4e2d\u9009\u62e9",(0,r.jsx)(t.code,{children:"Debug \u2192 Open System Log..."}),"\u6765\u67e5\u770b\u3002\u5982\u679c\u662f Android \u5e94\u7528\uff0c\u65e0\u8bba\u662f\u8fd0\u884c\u5728\u6a21\u62df\u5668\u6216\u662f\u771f\u673a\u4e0a\uff0c\u90fd\u53ef\u4ee5\u901a\u8fc7\u5728\u7ec8\u7aef\u547d\u4ee4\u884c\u91cc\u8fd0\u884c",(0,r.jsx)(t.code,{children:"adb logcat *:S ReactNative:V ReactNativeJS:V"}),"\u547d\u4ee4\u6765\u67e5\u770b\u3002"]}),"\n",(0,r.jsx)(t.admonition,{type:"info",children:(0,r.jsx)(t.p,{children:"If you're using Expo CLI, console logs already appear in the same terminal output as the bundler."})}),"\n",(0,r.jsx)(t.h2,{id:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801",children:"\u8c03\u8bd5\u539f\u751f\u4ee3\u7801"}),"\n",(0,r.jsx)(t.p,{children:"\u5728\u548c\u539f\u751f\u4ee3\u7801\u6253\u4ea4\u9053\u65f6\uff08\u6bd4\u5982\u7f16\u5199\u539f\u751f\u6a21\u5757\uff09\uff0c\u53ef\u4ee5\u76f4\u63a5\u4ece Android Studio \u6216\u662f Xcode \u4e2d\u542f\u52a8\u5e94\u7528\uff0c\u5e76\u5229\u7528\u8fd9\u4e9b IDE \u7684\u5185\u7f6e\u529f\u80fd\u6765\u8c03\u8bd5\uff08\u6bd4\u5982\u8bbe\u7f6e\u65ad\u70b9\uff09\u3002\u8fd9\u4e00\u65b9\u9762\u548c\u5f00\u53d1\u539f\u751f\u5e94\u7528\u5e76\u65e0\u4e8c\u81f4\u3002"})]})}function d(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},11674:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(63445);const a=!!r.Z.canUseDOM&&navigator.platform.startsWith("Mac"),l=!!r.Z.canUseDOM&&navigator.platform.startsWith("Win"),o={defaultGuide:"native",defaultOs:a?"macos":l?"windows":"linux",defaultPackageManager:"npm",defaultPlatform:a?"ios":"android",defaultSyntax:"functional",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"}]}},86386:(e,t,n)=>{n.d(t,{Z:()=>p});var r=n(27378),a=n(40624);const l={tabItem:"tabItem_wHwb"};var o=Object.defineProperty,i=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable,c=(e,t,n)=>t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,d=(e,t)=>{for(var n in t||(t={}))s.call(t,n)&&c(e,n,t[n]);if(i)for(var n of i(t))u.call(t,n)&&c(e,n,t[n]);return e};function p({children:e,hidden:t,className:n}){return r.createElement("div",d({role:"tabpanel",className:(0,a.Z)(l.tabItem,n)},{hidden:t}),e)}},48375:(e,t,n)=>{n.d(t,{Z:()=>L});var r=n(27378),a=n(40624),l=n(12112),o=n(3620),i=n(69490),s=n(14953),u=n(27886),c=n(7106),d=Object.defineProperty,p=Object.defineProperties,b=Object.getOwnPropertyDescriptors,f=Object.getOwnPropertySymbols,v=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable,h=(e,t,n)=>t in e?d(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,g=(e,t)=>{for(var n in t||(t={}))v.call(t,n)&&h(e,n,t[n]);if(f)for(var n of f(t))m.call(t,n)&&h(e,n,t[n]);return e},y=(e,t)=>p(e,b(t));function w(e){var t,n;return null!=(n=null==(t=r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(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.`)})))?void 0:t.filter(Boolean))?n:[]}function x(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=null!=t?t:function(e){return w(e).map((({props:{value:e,label:t,attributes:n,default:r}})=>({value:e,label:t,attributes:n,default:r})))}(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function O({value:e,tabValues:t}){return t.some((t=>t.value===e))}function j({queryString:e=!1,groupId:t}){const n=(0,o.k6)(),a=function({queryString:e=!1,groupId:t}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)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 null!=t?t:null}({queryString:e,groupId:t});return[(0,s._X)(a),(0,r.useCallback)((e=>{if(!a)return;const t=new URLSearchParams(n.location.search);t.set(a,e),n.replace(y(g({},n.location),{search:t.toString()}))}),[a,n])]}function E(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=x(e),[o,s]=(0,r.useState)((()=>function({defaultValue:e,tabValues:t}){var n;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!O({value:e,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const r=null!=(n=t.find((e=>e.default)))?n:t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[u,d]=j({queryString:n,groupId:a}),[p,b]=function({groupId:e}){const t=function(e){return e?`docusaurus.tab.${e}`:null}(e),[n,a]=(0,c.Nk)(t);return[n,(0,r.useCallback)((e=>{t&&a.set(e)}),[t,a])]}({groupId:a}),f=(()=>{const e=null!=u?u:p;return O({value:e,tabValues:l})?e:null})();(0,i.Z)((()=>{f&&s(f)}),[f]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!O({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),d(e),b(e)}),[d,b,l]),tabValues:l}}var k=n(14185);const I={tabList:"tabList_J5MA",tabItem:"tabItem_l0OV"};var S=Object.defineProperty,_=Object.defineProperties,P=Object.getOwnPropertyDescriptors,N=Object.getOwnPropertySymbols,V=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable,C=(e,t,n)=>t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,D=(e,t)=>{for(var n in t||(t={}))V.call(t,n)&&C(e,n,t[n]);if(N)for(var n of N(t))T.call(t,n)&&C(e,n,t[n]);return e},q=(e,t)=>_(e,P(t));function A({className:e,block:t,selectedValue:n,selectValue:o,tabValues:i}){const s=[],{blockElementScrollPositionUntilNextRender:u}=(0,l.o5)(),c=e=>{const t=e.currentTarget,r=s.indexOf(t),a=i[r].value;a!==n&&(u(t),o(a))},d=e=>{var t,n;let r=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const n=s.indexOf(e.currentTarget)+1;r=null!=(t=s[n])?t:s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;r=null!=(n=s[t])?n:s[s.length-1];break}}null==r||r.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},e)},i.map((({value:e,label:t,attributes:l})=>r.createElement("li",q(D({role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,key:e,ref:e=>s.push(e),onKeyDown:d,onClick:c},l),{className:(0,a.Z)("tabs__item",I.tabItem,null==l?void 0:l.className,{"tabs__item--active":n===e})}),null!=t?t:e))))}function R({lazy:e,children:t,selectedValue:n}){const a=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){const e=a.find((e=>e.props.value===n));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},a.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function Z(e){const t=E(e);return r.createElement("div",{className:(0,a.Z)("tabs-container",I.tabList)},r.createElement(A,D(D({},e),t)),r.createElement(R,D(D({},e),t)))}function L(e){const t=(0,k.Z)();return r.createElement(Z,D({key:String(t)},e),w(e.children))}},71426:(e,t,n)=>{var r=n(27378),a=Symbol.for("react.element"),l=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,i=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,l={},u=null,c=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(c=t.ref),t)o.call(t,r)&&!s.hasOwnProperty(r)&&(l[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===l[r]&&(l[r]=t[r]);return{$$typeof:a,type:e,key:u,ref:c,props:l,_owner:i.current}}t.Fragment=l,t.jsx=u,t.jsxs=u},24246:(e,t,n)=>{e.exports=n(71426)},71670:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>o});var r=n(27378);const a={},l=r.createContext(a);function o(e){const t=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f6d3c175.061f6d41.js.LICENSE.txt b/assets/js/f6d3c175.9fa40605.js.LICENSE.txt similarity index 100% rename from assets/js/f6d3c175.061f6d41.js.LICENSE.txt rename to assets/js/f6d3c175.9fa40605.js.LICENSE.txt diff --git a/assets/js/fe826c2c.571884b5.js b/assets/js/fe826c2c.571884b5.js deleted file mode 100644 index 43c7aa95df0..00000000000 --- a/assets/js/fe826c2c.571884b5.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see fe826c2c.571884b5.js.LICENSE.txt */ -"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[32546],{39828:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>h});var s=n(24246),i=n(71670);const o={id:"testing-overview",title:"Testing",author:"Vojtech Novak",authorURL:"https://twitter.com/vonovak",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."},r=void 0,a={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.",source:"@site/versioned_docs/version-0.74/testing-overview.md",sourceDirName:".",slug:"/testing-overview",permalink:"/docs/testing-overview",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/testing-overview.md",tags:[],version:"0.74",frontMatter:{id:"testing-overview",title:"Testing",author:"Vojtech Novak",authorURL:"https://twitter.com/vonovak",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",previous:{title:"Other Debugging Methods",permalink:"/docs/other-debugging-methods"},next:{title:"\u6027\u80fd\u7efc\u8ff0",permalink:"/docs/performance"}},c={},h=[{value:"Why Test",id:"why-test",level:2},{value:"Static Analysis",id:"static-analysis",level:2},{value:"Writing Testable Code",id:"writing-testable-code",level:2},{value:"Writing Tests",id:"writing-tests",level:2},{value:"Structuring Tests",id:"structuring-tests",level:3},{value:"Unit tests",id:"unit-tests",level:2},{value:"Mocking",id:"mocking",level:3},{value:"Integration Tests",id:"integration-tests",level:2},{value:"Component Tests",id:"component-tests",level:2},{value:"Testing User Interactions",id:"testing-user-interactions",level:3},{value:"Testing Rendered Output",id:"testing-rendered-output",level:3},{value:"End-to-End Tests",id:"end-to-end-tests",level:2},{value:"Summary",id:"summary",level:2},{value:"Links",id:"links",level:3}];function l(e){const t={a:"a",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"As your codebase expands, small errors and edge cases you don\u2019t expect can cascade into larger failures. Bugs lead to bad user experience and ultimately, business losses. One way to prevent fragile programming is to test your code before releasing it into the wild."}),"\n",(0,s.jsx)(t.p,{children:"In this guide, we will cover different, automated ways to ensure your app works as expected, ranging from static analysis to end-to-end tests."}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/diagram_testing.svg",alt:"Testing is a cycle of fixing, testing, and either passing to release or failing back into testing."}),"\n",(0,s.jsx)(t.h2,{id:"why-test",children:"Why Test"}),"\n",(0,s.jsx)(t.p,{children:"We're humans, and humans make mistakes. Testing is important because it helps you uncover these mistakes and verifies that your code is working. Perhaps even more importantly, testing ensures that your code continues to work in the future as you add new features, refactor the existing ones, or upgrade major dependencies of your project."}),"\n",(0,s.jsx)(t.p,{children:"There is more value in testing than you might realize. One of the best ways to fix a bug in your code is to write a failing test that exposes it. Then when you fix the bug and re-run the test, if it passes it means the bug is fixed, never reintroduced into the code base."}),"\n",(0,s.jsx)(t.p,{children:"Tests can also serve as documentation for new people joining your team. For people who have never seen a codebase before, reading tests can help them understand how the existing code works."}),"\n",(0,s.jsxs)(t.p,{children:["Last but not least, more automated testing means less time spent with manual ",(0,s.jsx)("abbr",{title:"Quality Assurance",children:"QA"}),", freeing up valuable time."]}),"\n",(0,s.jsx)(t.h2,{id:"static-analysis",children:"Static Analysis"}),"\n",(0,s.jsx)(t.p,{children:"The first step to improve your code quality is to start using static analysis tools. Static analysis checks your code for errors as you write it, but without running any of that code."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Linters"})," analyze code to catch common errors such as unused code and to help avoid pitfalls, to flag style guide no-nos like using tabs instead of spaces (or vice versa, depending on your configuration)."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Type checking"})," ensures that the construct you\u2019re passing to a function matches what the function was designed to accept, preventing passing a string to a counting function that expects a number, for instance."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["React Native comes with two such tools configured out of the box: ",(0,s.jsx)(t.a,{href:"https://eslint.org/",children:"ESLint"})," for linting and ",(0,s.jsx)(t.a,{href:"https://flow.org/en/docs/",children:"Flow"})," for type checking. You can also use ",(0,s.jsx)(t.a,{href:"typescript",children:"TypeScript"}),", which is a typed language that compiles to plain JavaScript."]}),"\n",(0,s.jsx)(t.h2,{id:"writing-testable-code",children:"Writing Testable Code"}),"\n",(0,s.jsx)(t.p,{children:"To start with tests, you first need to write code that is testable. Consider an aircraft manufacturing process - before any model first takes off to show that all of its complex systems work well together, individual parts are tested to guarantee they are safe and function correctly. For example, wings are tested by bending them under extreme load; engine parts are tested for their durability; the windshield is tested against simulated bird impact."}),"\n",(0,s.jsx)(t.p,{children:"Software is similar. Instead of writing your entire program in one huge file with many lines of code, you write your code in multiple small modules that you can test more thoroughly than if you tested the assembled whole. In this way, writing testable code is intertwined with writing clean, modular code."}),"\n",(0,s.jsx)(t.p,{children:"To make your app more testable, start by separating the view part of your app\u2014your React components\u2014from your business logic and app state (regardless of whether you use Redux, MobX or other solutions). This way, you can keep your business logic testing\u2014which shouldn\u2019t rely on your React components\u2014independent of the components themselves, whose job is primarily rendering your app\u2019s UI!"}),"\n",(0,s.jsx)(t.p,{children:"Theoretically, you could go so far as to move all logic and data fetching out of your components. This way your components would be solely dedicated to rendering. Your state would be entirely independent of your components. Your app\u2019s logic would work without any React components at all!"}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:"We encourage you to further explore the topic of testable code in other learning resources."}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"writing-tests",children:"Writing Tests"}),"\n",(0,s.jsxs)(t.p,{children:["After writing testable code, it\u2019s time to write some actual tests! The default template of React Native ships with ",(0,s.jsx)(t.a,{href:"https://jestjs.io",children:"Jest"})," testing framework. It includes a preset that's tailored to this environment so you can get productive without tweaking the configuration and mocks straight away\u2014",(0,s.jsx)(t.a,{href:"#mocking",children:"more on mocks"})," shortly. You can use Jest to write all types of tests featured in this guide."]}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:"If you do test-driven development, you actually write tests first! That way, testability of your code is given."}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"structuring-tests",children:"Structuring Tests"}),"\n",(0,s.jsx)(t.p,{children:"Your tests should be short and ideally test only one thing. Let's start with an example unit test written with Jest:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-js",children:"it('given a date in the past, colorForDueDate() returns red', () => {\n expect(colorForDueDate('2000-10-20')).toBe('red');\n});\n"})}),"\n",(0,s.jsxs)(t.p,{children:["The test is described by the string passed to the ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api#testname-fn-timeout",children:(0,s.jsx)(t.code,{children:"it"})})," function. Take good care writing the description so that it\u2019s clear what is being tested. Do your best to cover the following:"]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Given"})," - some precondition"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"When"})," - some action executed by the function that you\u2019re testing"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Then"})," - the expected outcome"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"This is also known as AAA (Arrange, Act, Assert)."}),"\n",(0,s.jsxs)(t.p,{children:["Jest offers ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api#describename-fn",children:(0,s.jsx)(t.code,{children:"describe"})})," function to help structure your tests. Use ",(0,s.jsx)(t.code,{children:"describe"})," to group together all tests that belong to one functionality. Describes can be nested, if you need that. Other functions you'll commonly use are ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api#beforeeachfn-timeout",children:(0,s.jsx)(t.code,{children:"beforeEach"})})," or ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api#beforeallfn-timeout",children:(0,s.jsx)(t.code,{children:"beforeAll"})})," that you can use for setting up the objects you're testing. Read more in the ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api",children:"Jest api reference"}),"."]}),"\n",(0,s.jsx)(t.p,{children:"If your test has many steps or many expectations, you probably want to split it into multiple smaller ones. Also, ensure that your tests are completely independent of one another. Each test in your suite must be executable on its own without first running some other test. Conversely, if you run all your tests together, the first test must not influence the output of the second one."}),"\n",(0,s.jsxs)(t.p,{children:["Lastly, as developers we like when our code works great and doesn't crash. With tests, this is often the opposite. Think of a failed test as of a ",(0,s.jsx)(t.em,{children:"good thing!"})," When a test fails, it often means something is not right. This gives you an opportunity to fix the problem before it impacts the users."]}),"\n",(0,s.jsx)(t.h2,{id:"unit-tests",children:"Unit tests"}),"\n",(0,s.jsx)(t.p,{children:"Unit tests cover the smallest parts of code, like individual functions or classes."}),"\n",(0,s.jsx)(t.p,{children:"When the object being tested has any dependencies, you\u2019ll often need to mock them out, as described in the next paragraph."}),"\n",(0,s.jsxs)(t.p,{children:["The great thing about unit tests is that they are quick to write and run. Therefore, as you work, you get fast feedback about whether your tests are passing. Jest even has an option to continuously run tests that are related to code you\u2019re editing: ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/cli#watch",children:"Watch mode"}),"."]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-unit.svg",alt:" "}),"\n",(0,s.jsx)(t.h3,{id:"mocking",children:"Mocking"}),"\n",(0,s.jsx)(t.p,{children:"Sometimes, when your tested objects have external dependencies, you\u2019ll want to \u201cmock them out.\u201d \u201cMocking\u201d is when you replace some dependency of your code with your own implementation."}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:"Generally, using real objects in your tests is better than using mocks but there are situations where this is not possible. For example: when your JS unit test relies on a native module written in Java or Objective-C."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Imagine you\u2019re writing an app that shows the current weather in your city and you\u2019re using some external service or other dependency that provides you with the weather information. If the service tells you that it\u2019s raining, you want to show an image with a rainy cloud. You don\u2019t want to call that service in your tests, because:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"It could make the tests slow and unstable (because of the network requests involved)"}),"\n",(0,s.jsx)(t.li,{children:"The service may return different data every time you run the test"}),"\n",(0,s.jsx)(t.li,{children:"Third party services can go offline when you really need to run tests!"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Therefore, you can provide a mock implementation of the service, effectively replacing thousands of lines of code and some internet-connected thermometers!"}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsxs)(t.p,{children:["Jest comes with ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/mock-functions#mocking-modules",children:"support for mocking"})," from function level all the way to module level mocking."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"integration-tests",children:"Integration Tests"}),"\n",(0,s.jsx)(t.p,{children:"When writing larger software systems, individual pieces of it need to interact with each other. In unit testing, if your unit depends on another one, you\u2019ll sometimes end up mocking the dependency, replacing it with a fake one."}),"\n",(0,s.jsx)(t.p,{children:"In integration testing, real individual units are combined (same as in your app) and tested together to ensure that their cooperation works as expected. This is not to say that mocking does not happen here: you\u2019ll still need mocks (for example, to mock communication with a weather service), but you'll need them much less than in unit testing."}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:'Please note that the terminology around what integration testing means is not always consistent. Also, the line between what is a unit test and what is an integration test may not always be clear. For this guide, your test falls into "integration testing" if it:'}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Combines several modules of your app as described above"}),"\n",(0,s.jsx)(t.li,{children:"Uses an external system"}),"\n",(0,s.jsx)(t.li,{children:"Makes a network call to other application (such as the weather service API)"}),"\n",(0,s.jsxs)(t.li,{children:["Does any kind of file or database ",(0,s.jsx)("abbr",{title:"Input/Output",children:"I/O"})]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-integration.svg",alt:" "}),"\n",(0,s.jsx)(t.h2,{id:"component-tests",children:"Component Tests"}),"\n",(0,s.jsx)(t.p,{children:"React components are responsible for rendering your app, and users will directly interact with their output. Even if your app's business logic has high testing coverage and is correct, without component tests you may still deliver a broken UI to your users. Component tests could fall into both unit and integration testing, but because they are such a core part of React Native, we'll cover them separately."}),"\n",(0,s.jsx)(t.p,{children:"For testing React components, there are two things you may want to test:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Interaction: to ensure the component behaves correctly when interacted with by a user (eg. when user presses a button)"}),"\n",(0,s.jsx)(t.li,{children:"Rendering: to ensure the component render output used by React is correct (eg. the button's appearance and placement in the UI)"}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["For example, if you have a button that has an ",(0,s.jsx)(t.code,{children:"onPress"})," listener, you want to test that the button both appears correctly and that tapping the button is correctly handled by the component."]}),"\n",(0,s.jsx)(t.p,{children:"There are several libraries that can help you testing these:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["React\u2019s ",(0,s.jsx)(t.a,{href:"https://zh-hans.reactjs.org/docs/test-renderer.html",children:"Test Renderer"}),", developed alongside its core, provides a React renderer that can be used to render React components to pure JavaScript objects, without depending on the DOM or a native mobile environment."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://github.com/callstack/react-native-testing-library",children:(0,s.jsx)(t.code,{children:"react-native-testing-library"})})," builds on top of React\u2019s test renderer and adds ",(0,s.jsx)(t.code,{children:"fireEvent"})," and ",(0,s.jsx)(t.code,{children:"query"})," APIs described in the next paragraph."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://www.native-testing-library.com/",children:(0,s.jsx)(t.code,{children:"@testing-library/react-native"})})," is another alternative that also builds on top of React\u2019s test renderer and adds ",(0,s.jsx)(t.code,{children:"fireEvent"})," and ",(0,s.jsx)(t.code,{children:"query"})," APIs described in the next paragraph."]}),"\n"]}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsxs)(t.p,{children:["Component tests are only JavaScript tests running in Node.js environment. They do ",(0,s.jsx)(t.em,{children:"not"})," take into account any iOS, Android, or other platform code which is backing the React Native components. It follows that they cannot give you a 100% confidence that everything works for the user. If there is a bug in the iOS or Android code, they will not find it."]}),"\n"]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-component.svg",alt:" "}),"\n",(0,s.jsx)(t.h3,{id:"testing-user-interactions",children:"Testing User Interactions"}),"\n",(0,s.jsxs)(t.p,{children:["Aside from rendering some UI, your components handle events like ",(0,s.jsx)(t.code,{children:"onChangeText"})," for ",(0,s.jsx)(t.code,{children:"TextInput"})," or ",(0,s.jsx)(t.code,{children:"onPress"})," for ",(0,s.jsx)(t.code,{children:"Button"}),". They may also contain other functions and event callbacks. Consider the following example:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-jsx",children:"function GroceryShoppingList() {\n const [groceryItem, setGroceryItem] = useState('');\n const [items, setItems] = useState([]);\n\n const addNewItemToShoppingList = useCallback(() => {\n setItems([groceryItem, ...items]);\n setGroceryItem('');\n }, [groceryItem, items]);\n\n return (\n <>\n setGroceryItem(text)}\n />\n \n {items.map((item) => (\n {item}\n ))}\n \n );\n}\n"})}),"\n",(0,s.jsx)(t.p,{children:"When testing user interactions, test the component from the user perspective\u2014what's on the page? What changes when interacted with?"}),"\n",(0,s.jsx)(t.p,{children:"As a rule of thumb, prefer using things users can see or hear:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["make assertions using rendered text or ",(0,s.jsx)(t.a,{href:"accessibility#accessibility-properties",children:"accessibility helpers"})]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Conversely, you should avoid:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"making assertions on component props or state"}),"\n",(0,s.jsx)(t.li,{children:"testID queries"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Avoid testing implementation details like props or state\u2014while such tests work, they are not oriented toward how users will interact with the component and tend to break by refactoring (for example when you'd like to rename some things or rewrite class component using hooks)."}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsxs)(t.p,{children:["React class components are especially prone to testing their implementation details such as internal state, props or event handlers. To avoid testing implementation details, prefer using function components with Hooks, which make relying on component internals ",(0,s.jsx)(t.em,{children:"harder"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["Component testing libraries such as ",(0,s.jsx)(t.a,{href:"https://github.com/callstack/react-native-testing-library",children:(0,s.jsx)(t.code,{children:"react-native-testing-library"})})," facilitate writing user-centric tests by careful choice of provided APIs. The following example uses ",(0,s.jsx)(t.code,{children:"fireEvent"})," methods ",(0,s.jsx)(t.code,{children:"changeText"})," and ",(0,s.jsx)(t.code,{children:"press"})," that simulate a user interacting with the component and a query function ",(0,s.jsx)(t.code,{children:"getAllByText"})," that finds matching ",(0,s.jsx)(t.code,{children:"Text"})," nodes in the rendered output."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-jsx",children:"test('given empty GroceryShoppingList, user can add an item to it', () => {\n const { getByPlaceholder, getByText, getAllByText } = render(\n \n );\n\n fireEvent.changeText(\n getByPlaceholder('Enter grocery item'),\n 'banana'\n );\n fireEvent.press(getByText('Add the item to list'));\n\n const bananaElements = getAllByText('banana');\n expect(bananaElements).toHaveLength(1); // expect 'banana' to be on the list\n});\n"})}),"\n",(0,s.jsxs)(t.p,{children:["This example is not testing how some state changes when you call a function. It tests what happens when a user changes text in the ",(0,s.jsx)(t.code,{children:"TextInput"})," and presses the ",(0,s.jsx)(t.code,{children:"Button"}),"!"]}),"\n",(0,s.jsx)(t.h3,{id:"testing-rendered-output",children:"Testing Rendered Output"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/snapshot-testing",children:"Snapshot testing"})," is an advanced kind of testing enabled by Jest. It is a very powerful and low-level tool, so extra attention is advised when using it."]}),"\n",(0,s.jsxs)(t.p,{children:['A "component snapshot" is a JSX-like string created by a custom React serializer built into Jest. This serializer lets Jest translate React component trees to string that\'s human-readable. Put another way: a component snapshot is a textual representation of your component\u2019s render output ',(0,s.jsx)(t.em,{children:"generated"})," during a test run. It may look like this:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-jsx",children:'\n Welcome to React Native!\n\n'})}),"\n",(0,s.jsxs)(t.p,{children:["With snapshot testing, you typically first implement your component and then run the snapshot test. The snapshot test then creates a snapshot and saves it to a file in your repo as a reference snapshot. ",(0,s.jsx)(t.strong,{children:"The file is then committed and checked during code review"}),". Any future changes to the component render output will change its snapshot, which will cause the test to fail. You then need to update the stored reference snapshot for the test to pass. That change again needs to be committed and reviewed."]}),"\n",(0,s.jsx)(t.p,{children:"Snapshots have several weak points:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"For you as a developer or reviewer, it can be hard to tell whether a change in snapshot is intended or whether it's evidence of a bug. Especially large snapshots can quickly become hard to understand and their added value becomes low."}),"\n",(0,s.jsx)(t.li,{children:"When snapshot is created, at that point it is considered to be correct-even in the case when the rendered output is actually wrong."}),"\n",(0,s.jsxs)(t.li,{children:["When a snapshot fails, it's tempting to update it using the ",(0,s.jsx)(t.code,{children:"--updateSnapshot"})," jest option without taking proper care to investigate whether the change is expected. Certain developer discipline is thus needed."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Snapshots themselves do not ensure that your component render logic is correct, they are merely good at guarding against unexpected changes and for checking that the components in the React tree under test receive the expected props (styles and etc.)."}),"\n",(0,s.jsxs)(t.p,{children:["We recommend that you only use small snapshots (see ",(0,s.jsxs)(t.a,{href:"https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/no-large-snapshots.md",children:[(0,s.jsx)(t.code,{children:"no-large-snapshots"})," rule"]}),"). If you want to test a ",(0,s.jsx)(t.em,{children:"change"})," between two React component states, use ",(0,s.jsx)(t.a,{href:"https://github.com/jest-community/snapshot-diff",children:(0,s.jsx)(t.code,{children:"snapshot-diff"})}),". When in doubt, prefer explicit expectations as described in the previous paragraph."]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-snapshot.svg",alt:" "}),"\n",(0,s.jsx)(t.h2,{id:"end-to-end-tests",children:"End-to-End Tests"}),"\n",(0,s.jsx)(t.p,{children:"In end-to-end (E2E) tests, you verify your app is working as expected on a device (or a simulator / emulator) from the user perspective."}),"\n",(0,s.jsx)(t.p,{children:"This is done by building your app in the release configuration and running the tests against it. In E2E tests, you no longer think about React components, React Native APIs, Redux stores or any business logic. That is not the purpose of E2E tests and those are not even accessible to you during E2E testing."}),"\n",(0,s.jsxs)(t.p,{children:["Instead, E2E testing libraries allow you to find and control elements in the screen of your app: for example, you can ",(0,s.jsx)(t.em,{children:"actually"})," tap buttons or insert text into ",(0,s.jsx)(t.code,{children:"TextInputs"})," the same way a real user would. Then you can make assertions about whether or not a certain element exists in the app\u2019s screen, whether or not it\u2019s visible, what text it contains, and so on."]}),"\n",(0,s.jsx)(t.p,{children:"E2E tests give you the highest possible confidence that part of your app is working. The tradeoffs include:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"writing them is more time consuming compared to the other types of tests"}),"\n",(0,s.jsx)(t.li,{children:"they are slower to run"}),"\n",(0,s.jsx)(t.li,{children:'they are more prone to flakiness (a "flaky" test is a test which randomly passes and fails without any change to code)'}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Try to cover the vital parts of your app with E2E tests: authentication flow, core functionalities, payments, etc. Use faster JS tests for the non-vital parts of your app. The more tests you add, the higher your confidence, but also, the more time you'll spend maintaining and running them. Consider the tradeoffs and decide what's best for you."}),"\n",(0,s.jsxs)(t.p,{children:["There are several E2E testing tools available: in the React Native community, ",(0,s.jsx)(t.a,{href:"https://github.com/wix/detox/",children:"Detox"})," is a popular framework because it\u2019s tailored for React Native apps. Another popular library in the space of iOS and Android apps is ",(0,s.jsx)(t.a,{href:"http://appium.io/",children:"Appium"}),"."]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-e2e.svg",alt:" "}),"\n",(0,s.jsx)(t.h2,{id:"summary",children:"Summary"}),"\n",(0,s.jsx)(t.p,{children:"We hope you enjoyed reading and learned something from this guide. There are many ways you can test your apps. It may be hard to decide what to use at first. However, we believe it all will make sense once you start adding tests to your awesome React Native app. So what are you waiting for? Get your coverage up!"}),"\n",(0,s.jsx)(t.h3,{id:"links",children:"Links"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://zh-hans.reactjs.org/docs/testing.html",children:"React testing overview"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/callstack/react-native-testing-library",children:(0,s.jsx)(t.code,{children:"react-native-testing-library"})})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://www.native-testing-library.com/",children:(0,s.jsx)(t.code,{children:"@testing-library/react-native"})})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/tutorial-react-native",children:"Jest docs"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/wix/detox/",children:"Detox"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"http://appium.io/",children:"Appium"})}),"\n"]}),"\n",(0,s.jsx)(t.hr,{}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsxs)(t.em,{children:["This guide originally authored and contributed in full by ",(0,s.jsx)(t.a,{href:"https://twitter.com/vonovak",children:"Vojtech Novak"}),"."]})})]})}function d(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},71426:(e,t,n)=>{var s=n(27378),i=Symbol.for("react.element"),o=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,a=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function h(e,t,n){var s,o={},h=null,l=null;for(s in void 0!==n&&(h=""+n),void 0!==t.key&&(h=""+t.key),void 0!==t.ref&&(l=t.ref),t)r.call(t,s)&&!c.hasOwnProperty(s)&&(o[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps)void 0===o[s]&&(o[s]=t[s]);return{$$typeof:i,type:e,key:h,ref:l,props:o,_owner:a.current}}t.Fragment=o,t.jsx=h,t.jsxs=h},24246:(e,t,n)=>{e.exports=n(71426)},71670:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var s=n(27378);const i={},o=s.createContext(i);function r(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fe826c2c.cf4a7e41.js b/assets/js/fe826c2c.cf4a7e41.js new file mode 100644 index 00000000000..63e7d11c4ba --- /dev/null +++ b/assets/js/fe826c2c.cf4a7e41.js @@ -0,0 +1,2 @@ +/*! For license information please see fe826c2c.cf4a7e41.js.LICENSE.txt */ +"use strict";(self.webpackChunkreact_native_website=self.webpackChunkreact_native_website||[]).push([[32546],{39828:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>h});var s=n(24246),i=n(71670);const o={id:"testing-overview",title:"Testing",author:"Vojtech Novak",authorURL:"https://twitter.com/vonovak",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."},r=void 0,a={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.",source:"@site/versioned_docs/version-0.74/testing-overview.md",sourceDirName:".",slug:"/testing-overview",permalink:"/docs/testing-overview",draft:!1,unlisted:!1,editUrl:"https://github.com/reactnativecn/react-native-website/blob/production/cnwebsite/../cndocs/testing-overview.md",tags:[],version:"0.74",frontMatter:{id:"testing-overview",title:"Testing",author:"Vojtech Novak",authorURL:"https://twitter.com/vonovak",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",previous:{title:"\u5176\u4ed6\u8c03\u8bd5\u65b9\u6cd5",permalink:"/docs/other-debugging-methods"},next:{title:"\u6027\u80fd\u7efc\u8ff0",permalink:"/docs/performance"}},c={},h=[{value:"Why Test",id:"why-test",level:2},{value:"Static Analysis",id:"static-analysis",level:2},{value:"Writing Testable Code",id:"writing-testable-code",level:2},{value:"Writing Tests",id:"writing-tests",level:2},{value:"Structuring Tests",id:"structuring-tests",level:3},{value:"Unit tests",id:"unit-tests",level:2},{value:"Mocking",id:"mocking",level:3},{value:"Integration Tests",id:"integration-tests",level:2},{value:"Component Tests",id:"component-tests",level:2},{value:"Testing User Interactions",id:"testing-user-interactions",level:3},{value:"Testing Rendered Output",id:"testing-rendered-output",level:3},{value:"End-to-End Tests",id:"end-to-end-tests",level:2},{value:"Summary",id:"summary",level:2},{value:"Links",id:"links",level:3}];function l(e){const t={a:"a",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"As your codebase expands, small errors and edge cases you don\u2019t expect can cascade into larger failures. Bugs lead to bad user experience and ultimately, business losses. One way to prevent fragile programming is to test your code before releasing it into the wild."}),"\n",(0,s.jsx)(t.p,{children:"In this guide, we will cover different, automated ways to ensure your app works as expected, ranging from static analysis to end-to-end tests."}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/diagram_testing.svg",alt:"Testing is a cycle of fixing, testing, and either passing to release or failing back into testing."}),"\n",(0,s.jsx)(t.h2,{id:"why-test",children:"Why Test"}),"\n",(0,s.jsx)(t.p,{children:"We're humans, and humans make mistakes. Testing is important because it helps you uncover these mistakes and verifies that your code is working. Perhaps even more importantly, testing ensures that your code continues to work in the future as you add new features, refactor the existing ones, or upgrade major dependencies of your project."}),"\n",(0,s.jsx)(t.p,{children:"There is more value in testing than you might realize. One of the best ways to fix a bug in your code is to write a failing test that exposes it. Then when you fix the bug and re-run the test, if it passes it means the bug is fixed, never reintroduced into the code base."}),"\n",(0,s.jsx)(t.p,{children:"Tests can also serve as documentation for new people joining your team. For people who have never seen a codebase before, reading tests can help them understand how the existing code works."}),"\n",(0,s.jsxs)(t.p,{children:["Last but not least, more automated testing means less time spent with manual ",(0,s.jsx)("abbr",{title:"Quality Assurance",children:"QA"}),", freeing up valuable time."]}),"\n",(0,s.jsx)(t.h2,{id:"static-analysis",children:"Static Analysis"}),"\n",(0,s.jsx)(t.p,{children:"The first step to improve your code quality is to start using static analysis tools. Static analysis checks your code for errors as you write it, but without running any of that code."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Linters"})," analyze code to catch common errors such as unused code and to help avoid pitfalls, to flag style guide no-nos like using tabs instead of spaces (or vice versa, depending on your configuration)."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Type checking"})," ensures that the construct you\u2019re passing to a function matches what the function was designed to accept, preventing passing a string to a counting function that expects a number, for instance."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["React Native comes with two such tools configured out of the box: ",(0,s.jsx)(t.a,{href:"https://eslint.org/",children:"ESLint"})," for linting and ",(0,s.jsx)(t.a,{href:"https://flow.org/en/docs/",children:"Flow"})," for type checking. You can also use ",(0,s.jsx)(t.a,{href:"typescript",children:"TypeScript"}),", which is a typed language that compiles to plain JavaScript."]}),"\n",(0,s.jsx)(t.h2,{id:"writing-testable-code",children:"Writing Testable Code"}),"\n",(0,s.jsx)(t.p,{children:"To start with tests, you first need to write code that is testable. Consider an aircraft manufacturing process - before any model first takes off to show that all of its complex systems work well together, individual parts are tested to guarantee they are safe and function correctly. For example, wings are tested by bending them under extreme load; engine parts are tested for their durability; the windshield is tested against simulated bird impact."}),"\n",(0,s.jsx)(t.p,{children:"Software is similar. Instead of writing your entire program in one huge file with many lines of code, you write your code in multiple small modules that you can test more thoroughly than if you tested the assembled whole. In this way, writing testable code is intertwined with writing clean, modular code."}),"\n",(0,s.jsx)(t.p,{children:"To make your app more testable, start by separating the view part of your app\u2014your React components\u2014from your business logic and app state (regardless of whether you use Redux, MobX or other solutions). This way, you can keep your business logic testing\u2014which shouldn\u2019t rely on your React components\u2014independent of the components themselves, whose job is primarily rendering your app\u2019s UI!"}),"\n",(0,s.jsx)(t.p,{children:"Theoretically, you could go so far as to move all logic and data fetching out of your components. This way your components would be solely dedicated to rendering. Your state would be entirely independent of your components. Your app\u2019s logic would work without any React components at all!"}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:"We encourage you to further explore the topic of testable code in other learning resources."}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"writing-tests",children:"Writing Tests"}),"\n",(0,s.jsxs)(t.p,{children:["After writing testable code, it\u2019s time to write some actual tests! The default template of React Native ships with ",(0,s.jsx)(t.a,{href:"https://jestjs.io",children:"Jest"})," testing framework. It includes a preset that's tailored to this environment so you can get productive without tweaking the configuration and mocks straight away\u2014",(0,s.jsx)(t.a,{href:"#mocking",children:"more on mocks"})," shortly. You can use Jest to write all types of tests featured in this guide."]}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:"If you do test-driven development, you actually write tests first! That way, testability of your code is given."}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"structuring-tests",children:"Structuring Tests"}),"\n",(0,s.jsx)(t.p,{children:"Your tests should be short and ideally test only one thing. Let's start with an example unit test written with Jest:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-js",children:"it('given a date in the past, colorForDueDate() returns red', () => {\n expect(colorForDueDate('2000-10-20')).toBe('red');\n});\n"})}),"\n",(0,s.jsxs)(t.p,{children:["The test is described by the string passed to the ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api#testname-fn-timeout",children:(0,s.jsx)(t.code,{children:"it"})})," function. Take good care writing the description so that it\u2019s clear what is being tested. Do your best to cover the following:"]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Given"})," - some precondition"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"When"})," - some action executed by the function that you\u2019re testing"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Then"})," - the expected outcome"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"This is also known as AAA (Arrange, Act, Assert)."}),"\n",(0,s.jsxs)(t.p,{children:["Jest offers ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api#describename-fn",children:(0,s.jsx)(t.code,{children:"describe"})})," function to help structure your tests. Use ",(0,s.jsx)(t.code,{children:"describe"})," to group together all tests that belong to one functionality. Describes can be nested, if you need that. Other functions you'll commonly use are ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api#beforeeachfn-timeout",children:(0,s.jsx)(t.code,{children:"beforeEach"})})," or ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api#beforeallfn-timeout",children:(0,s.jsx)(t.code,{children:"beforeAll"})})," that you can use for setting up the objects you're testing. Read more in the ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/api",children:"Jest api reference"}),"."]}),"\n",(0,s.jsx)(t.p,{children:"If your test has many steps or many expectations, you probably want to split it into multiple smaller ones. Also, ensure that your tests are completely independent of one another. Each test in your suite must be executable on its own without first running some other test. Conversely, if you run all your tests together, the first test must not influence the output of the second one."}),"\n",(0,s.jsxs)(t.p,{children:["Lastly, as developers we like when our code works great and doesn't crash. With tests, this is often the opposite. Think of a failed test as of a ",(0,s.jsx)(t.em,{children:"good thing!"})," When a test fails, it often means something is not right. This gives you an opportunity to fix the problem before it impacts the users."]}),"\n",(0,s.jsx)(t.h2,{id:"unit-tests",children:"Unit tests"}),"\n",(0,s.jsx)(t.p,{children:"Unit tests cover the smallest parts of code, like individual functions or classes."}),"\n",(0,s.jsx)(t.p,{children:"When the object being tested has any dependencies, you\u2019ll often need to mock them out, as described in the next paragraph."}),"\n",(0,s.jsxs)(t.p,{children:["The great thing about unit tests is that they are quick to write and run. Therefore, as you work, you get fast feedback about whether your tests are passing. Jest even has an option to continuously run tests that are related to code you\u2019re editing: ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/cli#watch",children:"Watch mode"}),"."]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-unit.svg",alt:" "}),"\n",(0,s.jsx)(t.h3,{id:"mocking",children:"Mocking"}),"\n",(0,s.jsx)(t.p,{children:"Sometimes, when your tested objects have external dependencies, you\u2019ll want to \u201cmock them out.\u201d \u201cMocking\u201d is when you replace some dependency of your code with your own implementation."}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:"Generally, using real objects in your tests is better than using mocks but there are situations where this is not possible. For example: when your JS unit test relies on a native module written in Java or Objective-C."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Imagine you\u2019re writing an app that shows the current weather in your city and you\u2019re using some external service or other dependency that provides you with the weather information. If the service tells you that it\u2019s raining, you want to show an image with a rainy cloud. You don\u2019t want to call that service in your tests, because:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"It could make the tests slow and unstable (because of the network requests involved)"}),"\n",(0,s.jsx)(t.li,{children:"The service may return different data every time you run the test"}),"\n",(0,s.jsx)(t.li,{children:"Third party services can go offline when you really need to run tests!"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Therefore, you can provide a mock implementation of the service, effectively replacing thousands of lines of code and some internet-connected thermometers!"}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsxs)(t.p,{children:["Jest comes with ",(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/mock-functions#mocking-modules",children:"support for mocking"})," from function level all the way to module level mocking."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"integration-tests",children:"Integration Tests"}),"\n",(0,s.jsx)(t.p,{children:"When writing larger software systems, individual pieces of it need to interact with each other. In unit testing, if your unit depends on another one, you\u2019ll sometimes end up mocking the dependency, replacing it with a fake one."}),"\n",(0,s.jsx)(t.p,{children:"In integration testing, real individual units are combined (same as in your app) and tested together to ensure that their cooperation works as expected. This is not to say that mocking does not happen here: you\u2019ll still need mocks (for example, to mock communication with a weather service), but you'll need them much less than in unit testing."}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:'Please note that the terminology around what integration testing means is not always consistent. Also, the line between what is a unit test and what is an integration test may not always be clear. For this guide, your test falls into "integration testing" if it:'}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Combines several modules of your app as described above"}),"\n",(0,s.jsx)(t.li,{children:"Uses an external system"}),"\n",(0,s.jsx)(t.li,{children:"Makes a network call to other application (such as the weather service API)"}),"\n",(0,s.jsxs)(t.li,{children:["Does any kind of file or database ",(0,s.jsx)("abbr",{title:"Input/Output",children:"I/O"})]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-integration.svg",alt:" "}),"\n",(0,s.jsx)(t.h2,{id:"component-tests",children:"Component Tests"}),"\n",(0,s.jsx)(t.p,{children:"React components are responsible for rendering your app, and users will directly interact with their output. Even if your app's business logic has high testing coverage and is correct, without component tests you may still deliver a broken UI to your users. Component tests could fall into both unit and integration testing, but because they are such a core part of React Native, we'll cover them separately."}),"\n",(0,s.jsx)(t.p,{children:"For testing React components, there are two things you may want to test:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Interaction: to ensure the component behaves correctly when interacted with by a user (eg. when user presses a button)"}),"\n",(0,s.jsx)(t.li,{children:"Rendering: to ensure the component render output used by React is correct (eg. the button's appearance and placement in the UI)"}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["For example, if you have a button that has an ",(0,s.jsx)(t.code,{children:"onPress"})," listener, you want to test that the button both appears correctly and that tapping the button is correctly handled by the component."]}),"\n",(0,s.jsx)(t.p,{children:"There are several libraries that can help you testing these:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["React\u2019s ",(0,s.jsx)(t.a,{href:"https://zh-hans.reactjs.org/docs/test-renderer.html",children:"Test Renderer"}),", developed alongside its core, provides a React renderer that can be used to render React components to pure JavaScript objects, without depending on the DOM or a native mobile environment."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://github.com/callstack/react-native-testing-library",children:(0,s.jsx)(t.code,{children:"react-native-testing-library"})})," builds on top of React\u2019s test renderer and adds ",(0,s.jsx)(t.code,{children:"fireEvent"})," and ",(0,s.jsx)(t.code,{children:"query"})," APIs described in the next paragraph."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://www.native-testing-library.com/",children:(0,s.jsx)(t.code,{children:"@testing-library/react-native"})})," is another alternative that also builds on top of React\u2019s test renderer and adds ",(0,s.jsx)(t.code,{children:"fireEvent"})," and ",(0,s.jsx)(t.code,{children:"query"})," APIs described in the next paragraph."]}),"\n"]}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsxs)(t.p,{children:["Component tests are only JavaScript tests running in Node.js environment. They do ",(0,s.jsx)(t.em,{children:"not"})," take into account any iOS, Android, or other platform code which is backing the React Native components. It follows that they cannot give you a 100% confidence that everything works for the user. If there is a bug in the iOS or Android code, they will not find it."]}),"\n"]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-component.svg",alt:" "}),"\n",(0,s.jsx)(t.h3,{id:"testing-user-interactions",children:"Testing User Interactions"}),"\n",(0,s.jsxs)(t.p,{children:["Aside from rendering some UI, your components handle events like ",(0,s.jsx)(t.code,{children:"onChangeText"})," for ",(0,s.jsx)(t.code,{children:"TextInput"})," or ",(0,s.jsx)(t.code,{children:"onPress"})," for ",(0,s.jsx)(t.code,{children:"Button"}),". They may also contain other functions and event callbacks. Consider the following example:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-jsx",children:"function GroceryShoppingList() {\n const [groceryItem, setGroceryItem] = useState('');\n const [items, setItems] = useState([]);\n\n const addNewItemToShoppingList = useCallback(() => {\n setItems([groceryItem, ...items]);\n setGroceryItem('');\n }, [groceryItem, items]);\n\n return (\n <>\n setGroceryItem(text)}\n />\n \n {items.map((item) => (\n {item}\n ))}\n \n );\n}\n"})}),"\n",(0,s.jsx)(t.p,{children:"When testing user interactions, test the component from the user perspective\u2014what's on the page? What changes when interacted with?"}),"\n",(0,s.jsx)(t.p,{children:"As a rule of thumb, prefer using things users can see or hear:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["make assertions using rendered text or ",(0,s.jsx)(t.a,{href:"accessibility#accessibility-properties",children:"accessibility helpers"})]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Conversely, you should avoid:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"making assertions on component props or state"}),"\n",(0,s.jsx)(t.li,{children:"testID queries"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Avoid testing implementation details like props or state\u2014while such tests work, they are not oriented toward how users will interact with the component and tend to break by refactoring (for example when you'd like to rename some things or rewrite class component using hooks)."}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsxs)(t.p,{children:["React class components are especially prone to testing their implementation details such as internal state, props or event handlers. To avoid testing implementation details, prefer using function components with Hooks, which make relying on component internals ",(0,s.jsx)(t.em,{children:"harder"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["Component testing libraries such as ",(0,s.jsx)(t.a,{href:"https://github.com/callstack/react-native-testing-library",children:(0,s.jsx)(t.code,{children:"react-native-testing-library"})})," facilitate writing user-centric tests by careful choice of provided APIs. The following example uses ",(0,s.jsx)(t.code,{children:"fireEvent"})," methods ",(0,s.jsx)(t.code,{children:"changeText"})," and ",(0,s.jsx)(t.code,{children:"press"})," that simulate a user interacting with the component and a query function ",(0,s.jsx)(t.code,{children:"getAllByText"})," that finds matching ",(0,s.jsx)(t.code,{children:"Text"})," nodes in the rendered output."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-jsx",children:"test('given empty GroceryShoppingList, user can add an item to it', () => {\n const { getByPlaceholder, getByText, getAllByText } = render(\n \n );\n\n fireEvent.changeText(\n getByPlaceholder('Enter grocery item'),\n 'banana'\n );\n fireEvent.press(getByText('Add the item to list'));\n\n const bananaElements = getAllByText('banana');\n expect(bananaElements).toHaveLength(1); // expect 'banana' to be on the list\n});\n"})}),"\n",(0,s.jsxs)(t.p,{children:["This example is not testing how some state changes when you call a function. It tests what happens when a user changes text in the ",(0,s.jsx)(t.code,{children:"TextInput"})," and presses the ",(0,s.jsx)(t.code,{children:"Button"}),"!"]}),"\n",(0,s.jsx)(t.h3,{id:"testing-rendered-output",children:"Testing Rendered Output"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/snapshot-testing",children:"Snapshot testing"})," is an advanced kind of testing enabled by Jest. It is a very powerful and low-level tool, so extra attention is advised when using it."]}),"\n",(0,s.jsxs)(t.p,{children:['A "component snapshot" is a JSX-like string created by a custom React serializer built into Jest. This serializer lets Jest translate React component trees to string that\'s human-readable. Put another way: a component snapshot is a textual representation of your component\u2019s render output ',(0,s.jsx)(t.em,{children:"generated"})," during a test run. It may look like this:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-jsx",children:'\n Welcome to React Native!\n\n'})}),"\n",(0,s.jsxs)(t.p,{children:["With snapshot testing, you typically first implement your component and then run the snapshot test. The snapshot test then creates a snapshot and saves it to a file in your repo as a reference snapshot. ",(0,s.jsx)(t.strong,{children:"The file is then committed and checked during code review"}),". Any future changes to the component render output will change its snapshot, which will cause the test to fail. You then need to update the stored reference snapshot for the test to pass. That change again needs to be committed and reviewed."]}),"\n",(0,s.jsx)(t.p,{children:"Snapshots have several weak points:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"For you as a developer or reviewer, it can be hard to tell whether a change in snapshot is intended or whether it's evidence of a bug. Especially large snapshots can quickly become hard to understand and their added value becomes low."}),"\n",(0,s.jsx)(t.li,{children:"When snapshot is created, at that point it is considered to be correct-even in the case when the rendered output is actually wrong."}),"\n",(0,s.jsxs)(t.li,{children:["When a snapshot fails, it's tempting to update it using the ",(0,s.jsx)(t.code,{children:"--updateSnapshot"})," jest option without taking proper care to investigate whether the change is expected. Certain developer discipline is thus needed."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Snapshots themselves do not ensure that your component render logic is correct, they are merely good at guarding against unexpected changes and for checking that the components in the React tree under test receive the expected props (styles and etc.)."}),"\n",(0,s.jsxs)(t.p,{children:["We recommend that you only use small snapshots (see ",(0,s.jsxs)(t.a,{href:"https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/no-large-snapshots.md",children:[(0,s.jsx)(t.code,{children:"no-large-snapshots"})," rule"]}),"). If you want to test a ",(0,s.jsx)(t.em,{children:"change"})," between two React component states, use ",(0,s.jsx)(t.a,{href:"https://github.com/jest-community/snapshot-diff",children:(0,s.jsx)(t.code,{children:"snapshot-diff"})}),". When in doubt, prefer explicit expectations as described in the previous paragraph."]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-snapshot.svg",alt:" "}),"\n",(0,s.jsx)(t.h2,{id:"end-to-end-tests",children:"End-to-End Tests"}),"\n",(0,s.jsx)(t.p,{children:"In end-to-end (E2E) tests, you verify your app is working as expected on a device (or a simulator / emulator) from the user perspective."}),"\n",(0,s.jsx)(t.p,{children:"This is done by building your app in the release configuration and running the tests against it. In E2E tests, you no longer think about React components, React Native APIs, Redux stores or any business logic. That is not the purpose of E2E tests and those are not even accessible to you during E2E testing."}),"\n",(0,s.jsxs)(t.p,{children:["Instead, E2E testing libraries allow you to find and control elements in the screen of your app: for example, you can ",(0,s.jsx)(t.em,{children:"actually"})," tap buttons or insert text into ",(0,s.jsx)(t.code,{children:"TextInputs"})," the same way a real user would. Then you can make assertions about whether or not a certain element exists in the app\u2019s screen, whether or not it\u2019s visible, what text it contains, and so on."]}),"\n",(0,s.jsx)(t.p,{children:"E2E tests give you the highest possible confidence that part of your app is working. The tradeoffs include:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"writing them is more time consuming compared to the other types of tests"}),"\n",(0,s.jsx)(t.li,{children:"they are slower to run"}),"\n",(0,s.jsx)(t.li,{children:'they are more prone to flakiness (a "flaky" test is a test which randomly passes and fails without any change to code)'}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Try to cover the vital parts of your app with E2E tests: authentication flow, core functionalities, payments, etc. Use faster JS tests for the non-vital parts of your app. The more tests you add, the higher your confidence, but also, the more time you'll spend maintaining and running them. Consider the tradeoffs and decide what's best for you."}),"\n",(0,s.jsxs)(t.p,{children:["There are several E2E testing tools available: in the React Native community, ",(0,s.jsx)(t.a,{href:"https://github.com/wix/detox/",children:"Detox"})," is a popular framework because it\u2019s tailored for React Native apps. Another popular library in the space of iOS and Android apps is ",(0,s.jsx)(t.a,{href:"http://appium.io/",children:"Appium"}),"."]}),"\n",(0,s.jsx)("img",{src:"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-website@gh-pages/docs/assets/p_tests-e2e.svg",alt:" "}),"\n",(0,s.jsx)(t.h2,{id:"summary",children:"Summary"}),"\n",(0,s.jsx)(t.p,{children:"We hope you enjoyed reading and learned something from this guide. There are many ways you can test your apps. It may be hard to decide what to use at first. However, we believe it all will make sense once you start adding tests to your awesome React Native app. So what are you waiting for? Get your coverage up!"}),"\n",(0,s.jsx)(t.h3,{id:"links",children:"Links"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://zh-hans.reactjs.org/docs/testing.html",children:"React testing overview"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/callstack/react-native-testing-library",children:(0,s.jsx)(t.code,{children:"react-native-testing-library"})})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://www.native-testing-library.com/",children:(0,s.jsx)(t.code,{children:"@testing-library/react-native"})})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://jestjs.io/docs/en/tutorial-react-native",children:"Jest docs"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/wix/detox/",children:"Detox"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"http://appium.io/",children:"Appium"})}),"\n"]}),"\n",(0,s.jsx)(t.hr,{}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsxs)(t.em,{children:["This guide originally authored and contributed in full by ",(0,s.jsx)(t.a,{href:"https://twitter.com/vonovak",children:"Vojtech Novak"}),"."]})})]})}function d(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},71426:(e,t,n)=>{var s=n(27378),i=Symbol.for("react.element"),o=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,a=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function h(e,t,n){var s,o={},h=null,l=null;for(s in void 0!==n&&(h=""+n),void 0!==t.key&&(h=""+t.key),void 0!==t.ref&&(l=t.ref),t)r.call(t,s)&&!c.hasOwnProperty(s)&&(o[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps)void 0===o[s]&&(o[s]=t[s]);return{$$typeof:i,type:e,key:h,ref:l,props:o,_owner:a.current}}t.Fragment=o,t.jsx=h,t.jsxs=h},24246:(e,t,n)=>{e.exports=n(71426)},71670:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var s=n(27378);const i={},o=s.createContext(i);function r(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fe826c2c.571884b5.js.LICENSE.txt b/assets/js/fe826c2c.cf4a7e41.js.LICENSE.txt similarity index 100% rename from assets/js/fe826c2c.571884b5.js.LICENSE.txt rename to assets/js/fe826c2c.cf4a7e41.js.LICENSE.txt diff --git a/assets/js/runtime~main.e10576f3.js b/assets/js/runtime~main.f28e833f.js similarity index 94% rename from assets/js/runtime~main.e10576f3.js rename to assets/js/runtime~main.f28e833f.js index 2b1c48f4846..c7d27ce2988 100644 --- a/assets/js/runtime~main.e10576f3.js +++ b/assets/js/runtime~main.f28e833f.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,d,b,c,f={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={exports:{}};return f[e].call(d.exports,d,d.exports,r),d.exports}r.m=f,e=[],r.O=(a,d,b,c)=>{if(!d){var f=1/0;for(i=0;i=c)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[d,b,c]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,b){if(1&b&&(e=this(e)),8&b)return e;if("object"==typeof e&&e){if(4&b&&e.__esModule)return e;if(16&b&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var f={};a=a||[null,d({}),d([]),d(d)];for(var t=2&b&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach((a=>f[a]=()=>e[a]));return f.default=()=>e,r.d(c,f),c},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,d)=>(r.f[d](e,a),a)),[])),r.u=e=>"assets/js/"+({470:"b54696c0",486:"0a35f6eb",506:"fc751a3d",545:"294e92a9",620:"bc2f7794",760:"dcf691c2",803:"17a8dc81",807:"fb25ba24",815:"8f0d6e5b",933:"1404e73e",1025:"8c28f592",1076:"186a9ba9",1117:"356a0ac6",1249:"1705a2f5",1251:"423de293",1293:"d1d509cf",1447:"bbc0c093",1627:"41988923",1707:"902a5db0",1710:"b5a7fd43",2021:"aa88182b",2071:"6b49554e",2084:"3fb280d9",2107:"6aeefb41",2116:"3a31669b",2421:"293e43ee",2496:"7fc91348",2517:"d01173a8",2531:"147dc28e",2569:"db47402c",2637:"1ba86576",2699:"1448e88e",2730:"c8899d24",2890:"45618ae1",2910:"eb5418d6",2946:"b1228550",3042:"18b93cb3",3142:"243b9aa6",3173:"c10d4556",3222:"52156499",3267:"30bf7e1c",3279:"ba2d52b1",3389:"6f1bcaad",3543:"601330aa",3678:"578ba53f",3700:"6c509596",3919:"f31ddbdd",4146:"c00af2b0",4156:"a2b80c2f",4394:"a2490e07",4395:"5e8e437b",4486:"7a693bfc",4487:"078c5e69",4567:"fd0805d1",4630:"7c812bc0",4729:"2b43cbc0",4730:"d56b8eba",4802:"b6bd4264",4805:"0fc665a3",5103:"8f5764cc",5108:"5887780d",5117:"c759f874",5135:"30fb9325",5193:"9b11a7b5",5243:"332e9e34",5358:"7a423906",5437:"54255f28",5559:"e23b750b",5569:"de7e05af",5801:"f8b1a534",5810:"0667b750",5861:"f7e8b9a1",5881:"362c9549",5917:"3da7314b",6115:"f59ee173",6189:"bbae08e6",6356:"a992a0f8",6496:"0b242e68",6686:"c398a51a",6794:"f4870e22",6839:"b9e9b3a4",6876:"4f61d82b",7069:"37ae9f43",7104:"716c2719",7135:"76e173fc",7259:"2029ef4e",7305:"78406dfc",7432:"d8db4bdd",7440:"0a489978",7526:"061959ba",7736:"713f446b",7776:"28d3cf43",7796:"5f7a6f21",7814:"91786f2d",7861:"8a792504",7874:"36778e0d",7923:"04cee9fd",8018:"7d04e04a",8247:"2c957721",8352:"0181b3db",8384:"9cbfa21b",8589:"3b17f5a4",8730:"e97c1fe7",9480:"3b865f5d",9489:"60eb9b40",9502:"9787e2b5",9522:"bed8702c",9573:"727a66d9",9621:"25524074",9718:"eb50cd7d",9752:"b2115c5a",9805:"e5a951df",9881:"5221567d",10029:"d480b2d8",10042:"daf96af6",10136:"7374b7af",10218:"52633b27",10262:"d79e8bdf",10439:"1791f58f",10514:"bbdeca34",10527:"b8d0a2d1",10572:"ebf19685",10677:"19aaa7d2",10740:"1ea42534",10794:"0ac6d6a1",10914:"cb7060e2",10944:"93583d2d",10955:"27caae05",11009:"08e1c021",11046:"55b63d4c",11092:"dcddf26d",11125:"2cf74606",11157:"037bf98d",11278:"75ebea5a",11283:"29cd52c0",11319:"a3d50c6d",11352:"5f11e2df",11427:"d4077890",11450:"0bb0f3cf",11527:"33c3be35",11590:"8538b042",11676:"a7da7bfd",11715:"bc26c448",11806:"634e5b87",11820:"04e1afbd",11828:"79c31966",11888:"8585b615",12032:"89a085ba",12037:"e6a6f3dc",12100:"c6a0cc74",12101:"3a0563f8",12152:"a728158d",12228:"eb1e27c5",12265:"42dbec43",12544:"69aee15b",12595:"878ba96b",12700:"7f6ca9e0",12811:"8d3fc5c6",12835:"bf77c5df",12862:"6cdb7f96",12871:"af8a22e6",12878:"4cc410e3",13034:"d5ca4adc",13062:"0d626c57",13085:"1f391b9e",13145:"900a3533",13180:"5bb745c9",13190:"1de587e0",13282:"95a8e207",13335:"3b9f8a02",13343:"c42662d8",13445:"97affa7f",13480:"7a6c553e",13489:"91695048",13585:"d2174fb9",13727:"9bf717b1",13757:"57589dde",13983:"86bf3c9e",13985:"70ac8688",14231:"694579f7",14272:"b71414c5",14317:"911052af",14398:"a39c2644",14567:"2dca9575",14580:"c0cfec7b",14734:"b7257cf4",14744:"99cd3a09",14774:"f666756e",14775:"e43bbd8d",14895:"4ed22eea",14968:"0044a2c6",15009:"276ccdc6",15033:"9a1f20dc",15129:"012d05d8",15297:"056867f4",15313:"088c6538",15453:"99403472",15512:"01fb1614",15556:"03d50046",15585:"7d1976ec",16088:"76571efc",16134:"c050f0c1",16582:"80036715",16667:"4396b59e",16699:"260634c1",16768:"e19eb737",16795:"285b3354",16817:"f667452d",16824:"23b2ec0b",16971:"14d4a842",17101:"36fc15ca",17239:"39d9d3b1",17289:"3560f547",17292:"777c6042",17315:"b2e9258a",17389:"2954fac3",17392:"3163195d",17465:"9c00ca68",17469:"eeccbb9d",17833:"426d37cf",17918:"67574dd0",18268:"ac5ffeb9",18320:"1daeb507",18420:"f38a19d0",18485:"9367275a",18518:"a7bd4aaa",18630:"9eda2b4c",18690:"d301ca6f",18768:"7210b988",18809:"e4cd52a9",18848:"ea65614d",18876:"b6ebe4da",18909:"4d9bd555",18910:"5331b8f3",19051:"80f530aa",19071:"ddd72b6a",19148:"024e8286",19161:"8af066b3",19376:"4576eff5",19745:"1d73041c",19769:"8c1e11f0",19854:"2a7802e5",20394:"c28f96f6",20467:"39ae1dcc",20568:"9006e630",20589:"727350a6",20724:"87ab4d1a",20792:"5dffea44",20827:"a86079f0",20839:"36627b26",20919:"1a9dbb4a",20925:"00c36718",20992:"d435efc2",21111:"442912ac",21136:"f9922edf",21162:"16ee311f",21250:"1aa1a063",21268:"77f249ff",21287:"be7b5d27",21496:"8b56192f",21740:"320b7954",21875:"f9145531",21899:"fb578f06",21947:"e5bf6a34",21954:"c3c09026",21958:"aed1fdfa",21980:"37880922",22e3:"b233694f",22107:"2827f11f",22183:"d4be08e6",22372:"b3fd545e",22533:"17ec9470",22567:"4a860d8c",22632:"116594f6",22734:"a7d1ebe1",22754:"3c68b9d2",22799:"85431298",22847:"d05ae094",23163:"3d175bf6",23645:"b7799679",23653:"cf01b66e",23731:"cc2c9ee0",23757:"6f5989c4",23927:"c41cb816",23986:"3b6f8471",24140:"bc659752",24168:"2a6f3007",24193:"ab51e9a4",24261:"2f0f6a05",24522:"af62122e",24747:"c20f03e6",24762:"8c1b243a",24934:"4dd33177",25195:"beab48ee",25205:"31dc03fe",25228:"6184db93",25348:"31aad40d",25464:"01b58810",25476:"a770fe3b",25480:"5deadce3",25483:"68b823fd",25609:"a535188c",25684:"b12657f5",25700:"e20ea0b5",25807:"6820c973",26023:"787a5247",26040:"319045b7",26050:"3d33c646",26310:"3a5cd9a6",26323:"4cbc9dd4",26478:"a6efc48a",26573:"34a3a287",26581:"e60b42c6",26682:"5d7ae6cf",26842:"623d7060",26954:"95722794",27039:"20da3b21",27066:"f59aea7c",27089:"670e8940",27173:"450cda6b",27308:"437c7eac",27334:"d6811676",27416:"35024544",27420:"2581efca",27493:"e6b2312c",27563:"728d2d7a",27571:"ab6173e5",27594:"15800944",27648:"c9eff2b3",27762:"9376381b",27764:"3c18d05a",27768:"ffb79954",27775:"9dc2e4c7",27847:"e4de8e8e",27895:"226a5928",27918:"17896441",28094:"5f226e65",28477:"1c63adb2",28547:"1aab41e5",28548:"db66ee01",28747:"12e81c73",28752:"61182cc0",28802:"a7137c8d",28985:"bfa82433",29148:"22d7af95",29250:"07f65d8b",29277:"347319a3",29511:"f8c20afc",29578:"782d5715",29661:"5e95c892",29766:"e590aaa6",29961:"b87ed5c2",30095:"a135050d",30228:"74f98b1f",30423:"20b2c2b8",30540:"34eb68ef",30600:"174b14fd",30877:"bc22aba8",30981:"30d73f3c",30992:"306d2344",31061:"79448688",31071:"461fa96b",31483:"397ccaa2",31580:"5ac20d8a",31590:"4f1e6f78",31693:"75b8d183",31831:"7d092cc9",31852:"65fb4e8d",32145:"c544f4a4",32156:"5c50ab3a",32215:"849a2d93",32398:"9ad607d8",32403:"c74f51da",32470:"b7112064",32536:"f1ccaf05",32546:"fe826c2c",32580:"a3c2ef0a",32669:"c1e04fa9",32681:"915f3d1c",32940:"21daa31c",33042:"d5a6e29a",33059:"7510cbdd",33128:"af469e1b",33130:"039b8e3d",33183:"b9ffb51b",33465:"3468f004",33499:"c99ef3c8",33580:"9bdf7f32",33630:"190f221c",33752:"86abb156",33760:"1ac276d7",34099:"56b54d0c",34130:"6e348b42",34176:"78b274e1",34411:"c4d53b4e",34496:"8968fb7b",34508:"d1a6a78e",34587:"bbd0c512",34900:"ad5d8c26",34916:"b44c3773",34969:"dc64daf5",35050:"31e0ef60",35203:"fed8e900",35228:"4ea08adb",35483:"416cb7f4",35561:"8800e804",35693:"8aeb1be7",35834:"d33531c0",35853:"043f5d57",35894:"7b293dc3",35908:"26c5b03c",36133:"64df562a",36378:"42b9625c",36562:"1d59c923",36657:"ad4064bb",36687:"5036f758",36713:"13ee8587",36857:"c8789a67",36968:"985e27df",36994:"3ffb6394",37057:"edeb7ca8",37131:"8136ae62",37168:"d09c12db",37252:"d91f58ea",37350:"686b0bca",37401:"67e697ca",37442:"92871e18",37503:"c4d886ef",37845:"0d680d08",37955:"0091494f",37959:"9dbcff21",38007:"b771fa58",38028:"ec45d43c",38050:"88f8cf7d",38293:"0098ae6f",38329:"27161ea7",38360:"fc04664d",38434:"b8cf7f45",38681:"d1a27f99",38694:"c09a614e",38862:"e467d655",39011:"0b3b7529",39097:"eded264f",39112:"437495c6",39166:"02f0afb6",39243:"240f2433",39258:"9b053948",39580:"623cc3b0",39784:"9b1b20cb",39903:"861560fd",39944:"e2626cf4",40073:"ba1860c7",40109:"32b5ea16",40269:"c8cf90b4",40337:"50dd9b79",40455:"b9361f7a",40559:"8d2e0306",40567:"1076b3a4",40657:"1fc8674b",40781:"8041f9fb",40895:"7600c741",41179:"4b4509e1",41202:"d734f793",41219:"02ed4bab",41282:"32c64886",41353:"1cd2432c",41402:"08f736fd",41437:"98b25e1d",41452:"13989100",41571:"b2622f06",41583:"71449ed6",41806:"67da8bf2",41988:"117d6e39",42202:"d4d7e15c",42247:"b63e4b40",42265:"b8796a33",42309:"64187b62",42510:"9644b941",42694:"31b01d6d",42697:"28e9e915",42799:"d28adcd4",42816:"e760573e",42819:"53fa95c6",42847:"7c650e8c",42848:"e62508a7",42885:"80f08778",43163:"45209ae6",43206:"29e01d36",43321:"50f74dc8",43333:"a0a0a2ed",43469:"03a32c63",43579:"5386bed0",43605:"7223e43b",43625:"243fbebc",43671:"8c3ef24b",43780:"5799d0dd",43811:"85e970a9",43875:"17352c84",43986:"4865bf41",44147:"9ec17576",44255:"79408a0e",44356:"4eed3210",44498:"ea4644b7",44531:"ef084d6b",44568:"2b53b872",44577:"3a6fee66",44969:"b87596d5",44970:"c020d3f5",45030:"2fc6fcbc",45173:"cbe6a4fc",45315:"a4970bd4",45360:"f7de2b66",45374:"ac411221",45429:"c721bd5f",45606:"0329a84f",45620:"62f145c9",45754:"9ee19b63",45916:"5487638e",46095:"127efe29",46126:"149005f6",46140:"879f4acb",46147:"63c8cbb7",46188:"1483912b",46251:"76e32d2e",46288:"798845d8",46330:"1082d4d6",46364:"e7700b5c",46411:"bd5fb03c",46442:"cd3a106d",46673:"111e950a",46691:"808208b0",46695:"29393bfa",46752:"13980018",46820:"69697c25",46867:"79d149e1",46926:"cab74b7f",47009:"0b9b9699",47047:"2a144c3d",47209:"1bcfa046",47247:"512830ea",47451:"c7fc39e6",47636:"8c2ad0ca",47651:"f2b40bbf",47787:"ce5cde8f",47864:"98f16971",47964:"5f8ce4cc",48013:"f35dcbe0",48065:"134ae693",48192:"08d358f5",48228:"9ddb20fc",48393:"68ed074c",48445:"472ad214",48464:"db5319b3",48572:"fdd91106",48574:"2bf753d2",48665:"15de7ec3",48682:"b5813517",48738:"cc087f33",48837:"56b30f1b",48869:"af6afb7f",48926:"86316871",49071:"efc55a86",49090:"6928d3e3",49115:"0bcf800a",49214:"6e6ac1cd",49250:"97a57718",49466:"b25f10a0",49637:"d7165f5e",49697:"5f3f388e",49831:"7d8f16e8",50250:"444ce9f1",50350:"238b4d74",50788:"0ba118cc",50901:"20e9fe55",50907:"73da224d",50971:"43abb1af",51134:"e367aa8b",51217:"9cae6ca6",51257:"d043f0f1",51316:"3380ced1",51452:"71e3662e",51475:"deb2d893",51509:"af9b37be",51566:"12e7cb89",51575:"782ec3fc",51644:"87119bda",51675:"0a033318",51698:"64db8c83",51712:"001dcd58",51796:"09a9e026",51800:"698d87d8",51888:"0602bf05",51977:"8e9fc961",52094:"c996deb9",52154:"f1129715",52199:"c77f28be",52274:"3dd00d0d",52347:"79829de9",52357:"c96104f9",52368:"e644f73a",52660:"5510f1b7",52696:"c06e8323",52961:"fcb6886d",53164:"23ee098c",53315:"062a5932",53431:"0fb34189",53725:"cf6e58a7",53958:"fa2e85d3",53975:"bc8995eb",54111:"6fed3a2f",54146:"498677a1",54585:"834474bd",54586:"c64024bf",54690:"4ec5dc72",54777:"811e7138",54986:"fc8b2c25",55078:"aa64b883",55087:"b591ae09",55172:"2df7b45c",55219:"7b3388c5",55270:"1acbe180",55319:"618b84ef",55333:"9ae0af9f",55408:"6d3744bb",55424:"af992987",55559:"8e40a65f",55593:"a7973d5a",55689:"36bb38e9",55705:"138e67e4",55808:"06dba648",55809:"56376c93",55838:"b8c8be29",55894:"25d2a069",55919:"8aa2fcff",55970:"4f73d880",56156:"3f96f959",56322:"3262a2f5",56408:"fd880ad6",56416:"7101161a",56428:"86c68e3d",56445:"517a6efc",56451:"4d7503d3",56464:"475ddf72",56466:"b2cfddf1",56564:"d4bf4b5a",56570:"5eaec2c9",56650:"f313a82c",56669:"0efc406b",56828:"4e81c48e",56945:"5e797937",57100:"ae6fccdb",57135:"7ba605c7",57572:"e2833505",57682:"ac524e79",57834:"d64418bf",57909:"f6da0534",57950:"853aad93",57965:"b0f4752e",58028:"6b8c6e92",58126:"3dfaf92b",58157:"e8780874",58200:"4084a0d2",58213:"de795cee",58232:"eef85b41",58258:"6e9e7da5",58331:"45efb036",58363:"b08e6fd8",58510:"821dce8b",58682:"868c59c1",58724:"e980bfab",58817:"8c81d4b1",58881:"590fe42d",58983:"7f2b816c",59178:"14be3d02",59244:"8c2e6727",59330:"e916fc52",59496:"cdd4e3f0",59513:"15770add",59754:"66494347",59805:"c2a87ab1",59851:"97b28733",59953:"de28e96e",60103:"2fb758e0",60141:"4f1150eb",60247:"326a97e1",60270:"2ac63345",60286:"8cc7edc7",60351:"09de660c",60410:"d88eb93c",60680:"95d3faaa",60728:"08a5ab73",60806:"f135686d",60857:"f0e049cd",60874:"2548f5e5",60908:"c86d871d",60946:"7c4f02d8",60955:"1a297150",60992:"59d809ff",61032:"e0cb77f5",61176:"2549e033",61236:"16a62667",61346:"7e185b3a",61374:"d3c1a4fe",61380:"7890cc65",61515:"9cdfb8c3",61925:"d09b6b40",62039:"61474b2d",62201:"101b7008",62257:"e053db0d",62557:"7332ecd5",62661:"68ef1759",62714:"67a43a2b",62826:"f6d3c175",62934:"729c0f86",63115:"accf606c",63446:"8cf5de12",63733:"a6e22173",63833:"0c9604fb",63978:"12d44b5e",64039:"9baacde1",64070:"3bb14ef7",64073:"a67fb928",64195:"c4f5d8e4",64397:"a43a81e0",64525:"b196f212",64598:"1a44db19",65241:"1d7f05a3",65360:"05cf0320",65544:"e3874c12",65701:"9863d968",65757:"7563de56",65938:"ca213633",65962:"41badbb5",66078:"42a3ef15",66082:"eeead8f6",66115:"abdaff06",66140:"e4de30c0",66152:"dceb5a04",66261:"0cf75f61",66292:"357d2506",66405:"b24d9bb6",66485:"f5d38d41",66701:"3a3f3686",66773:"41b14717",66795:"087b7d76",66837:"edaa9a97",66872:"943dd7cb",66939:"4a70ef18",66976:"a27e6552",67083:"b4a9e2bf",67269:"38eee5c4",67300:"5d515b10",67450:"ec0c998e",67469:"ddd9a697",67575:"c737572b",67610:"02db2b77",67661:"1b274068",67859:"a3929b5f",67953:"2c2b467e",68098:"5ac697d4",68140:"fdd518cf",68226:"345c2f79",68236:"704c7051",68238:"21401b7a",68282:"e7e29711",68311:"6a0d7dd4",68399:"f1d9f180",68570:"7a63ecef",68675:"ba227fd4",68700:"75ef737d",68742:"6137920c",68819:"9714922d",68831:"8c1ce502",68986:"ca006c66",69057:"8f2b33cd",69173:"c3592a68",69188:"cfc2f36a",69241:"c57040ca",69324:"68381642",69392:"d771e5a2",69412:"9e0309bf",69478:"d6c2ba00",69497:"fa11d8ca",69500:"6de3d5b3",69505:"7c6c7a0a",69567:"dc123d29",69570:"3493d660",69628:"12e59f4a",69654:"3f78ddfa",69838:"091cab81",69965:"700c0943",69971:"0ade90c0",70020:"9d97f7b6",70164:"fb71e943",70178:"801550f5",70369:"f73e1de7",70384:"12b28870",70406:"eeda504f",70426:"23d8a97e",70439:"3e3c20b5",70471:"925bf856",70483:"6de08607",70738:"3640f479",70843:"eca1dea2",70876:"db682b59",70984:"4d79d356",71008:"ef80f5d7",71051:"1ed4e501",71078:"e758129e",71115:"cdc8a01e",71134:"a8687ac8",71229:"2736e981",71270:"e26f611b",71292:"7dbd846d",71499:"94041cd4",71553:"929fe6ef",71592:"1821187d",71609:"c9fc4253",71742:"43816d14",71922:"cf645fbf",72177:"f156e6fd",72195:"535592ec",72350:"6a5926c0",72436:"30c7ae5a",72456:"0cb02a81",72508:"6ad22d2d",72526:"da1cd4ff",72647:"9b9dc0e1",72728:"ff0316c2",72830:"9c354e09",72899:"51d1e75a",72942:"51fb9cc7",73016:"71b28fa1",73183:"69f236bd",73206:"4fb4e792",73237:"4885913a",73292:"6127a584",73333:"f068a30d",73349:"787d1332",73451:"fecf6185",73684:"ed353322",73772:"c58d17fc",73778:"d5499c5d",73943:"1a7fe871",74120:"432a68e7",74343:"12bf709d",74410:"461c5b22",74422:"42a13e6c",74440:"1a49fe29",74491:"bff0709d",74531:"2d554375",74571:"578f8908",74617:"4976484d",74647:"e264076a",74834:"9aabffe1",74867:"f78f0390",74874:"90487a84",75073:"2781e23a",75110:"b29e94ce",75157:"3760029d",75216:"91918b05",75248:"49d40500",75283:"53331f41",75325:"f115b6dd",75367:"00b6ea12",75593:"a3f10777",75622:"9e461bb0",75706:"95bb95fe",75728:"7e4d0154",75841:"d0603a07",75869:"3f42c85e",76050:"06a38139",76071:"a9bd4440",76232:"1e64aab5",76336:"bba11647",76458:"e94d0088",76468:"5d9b0d6a",76982:"39991005",77062:"2547de89",77152:"320ebc57",77194:"dcaae713",77203:"6ed01025",77251:"605b0891",77258:"278d928c",77391:"de8df556",77495:"9cc3267b",77552:"b42b2a17",77819:"09917fe9",77903:"23909da8",77942:"4dfd395e",78024:"c7cd3677",78048:"d90455db",78209:"5530c297",78310:"ce798db4",78350:"65456c03",78408:"49b8fdc8",78445:"00c04a88",78461:"bf4489ea",78685:"717ea6d4",78721:"eb38f5fa",78840:"717f9656",79013:"114e0000",79059:"cdf0b926",79061:"17bfe970",79098:"0b139e7e",79202:"b698f5b8",79239:"e81ab398",79281:"3d512310",79294:"db79922a",79325:"260946d2",79371:"20144648",79434:"169f5904",79454:"5a35eefa",79464:"8ae74b50",79477:"b4bb44c0",79497:"3861ecca",79672:"c23b0ee1",79762:"4a5a3e4f",79815:"b0ab0602",79924:"0296afed",79986:"6b38eaf7",80053:"935f2afb",80176:"02da5ab9",80197:"a2e2213f",80301:"3b6e9377",80604:"cc0cb525",80740:"cbae671d",80806:"0a0bc396",80813:"c935642e",80902:"99056a19",80998:"b75129ac",81031:"9090bfe2",81059:"ab50fe1d",81160:"f71dfec3",81222:"ac923fd4",81264:"5ea6b885",81360:"e595470b",81385:"74683f69",81398:"2092b488",81496:"0199d4ca",81576:"ae7a9ea2",81595:"c8250b16",81711:"9da46a46",81814:"0c2c0374",81858:"cfde41d7",81932:"b4bdd337",81935:"81bc0670",82080:"b29ca04c",82084:"8c833fcf",82186:"e4160942",82335:"8b188aa1",82554:"c29853ab",82606:"9a09606f",82686:"d60a7f72",82706:"8dd98cd6",82732:"0a79c9a2",82811:"487e8214",82938:"98721dc9",83151:"1b602655",83208:"0d01e3af",83298:"580ea038",83436:"ccf671a6",83470:"83b27652",83612:"525fe6fa",83626:"bb898d9a",83817:"dae67a8a",83819:"9a4e11a7",84052:"d5eb11a4",84075:"b5352e4b",84116:"fd5475e9",84145:"30138938",84204:"5dbec22c",84523:"a32085e6",84542:"2b571a06",84840:"2c1292e3",85117:"fbc03c2b",85324:"45f9e45c",85342:"fe60c9cb",85463:"c99c71a3",85607:"6b1867da",85621:"f3cf0483",85645:"a3196274",85656:"8ede17c4",85693:"cbb92f95",85789:"469a9a57",85844:"39100033",85854:"6eeffc01",85981:"c159d2a1",85993:"ea9d8190",86070:"51b5d68d",86100:"1d104e2e",86119:"86ef1cd5",86255:"23636f9a",86291:"45568034",86379:"bc684a49",86417:"81dc996f",86542:"65428859",86817:"ff68b7f6",86993:"1e70be21",87094:"38290d37",87097:"6b1fc6d0",87130:"9cdb1c5b",87197:"5b3fb50e",87257:"531dfa41",87277:"389fb278",87311:"acac7935",87316:"58869656",87329:"250b4dc6",87354:"6a58dac5",87415:"b63db1e6",87477:"02309956",87564:"13da317c",87674:"292ebda1",87822:"66e1c749",87837:"8d1d2f63",87941:"326739da",88033:"1cd20a8e",88083:"55f4c5b3",88136:"97ba5e68",88210:"962fb06e",88211:"3366e05e",88290:"d9b20917",88550:"2cf1bed0",88617:"422866f9",88725:"63600a6b",88757:"5aea82ac",88828:"24ac12d3",88856:"1dfed3a8",88910:"013c1bab",88940:"1d9a061e",88941:"940b5b71",89104:"039d54f1",89105:"3370e507",89187:"9a45f095",89241:"8b30a105",89303:"cad34824",89423:"04037fd3",89782:"5dcbc311",89784:"0a8cb4e2",89802:"b81226b7",89877:"f2d290a0",90074:"9915efaf",90131:"81d00bc5",90136:"75ec37d0",90294:"bae45495",90323:"ffe4f0b4",90466:"4b916891",90515:"f8f6f210",90612:"402bdd59",90688:"d0cd4a88",90773:"ad1c6c85",91006:"1658c756",91131:"fbf58390",91208:"a01fd1dd",91345:"33909044",91464:"f0b7dbe2",91488:"dfa30293",91510:"238efb50",91860:"c1467f4f",92032:"9e828d90",92083:"d3fd3247",92089:"93d5903e",92113:"e16442cf",92306:"01005a98",92670:"b45ad73f",92678:"6dadabbe",92845:"801384bf",92926:"18bb110a",92998:"d1ebdf95",93167:"583c7938",93245:"510cb4fc",93312:"eec26f27",93337:"f6dc595b",93346:"e7d7dd9f",93375:"3d37559d",93476:"4bdc1132",93484:"cf9d5ce2",93565:"6ba5ca07",93629:"e2559165",93663:"f65152a8",93678:"c99653b5",93742:"2ac0b4bc",93845:"0b82315a",93852:"36cc6e86",93924:"0a196f91",94033:"60d0d69b",94121:"d76382b0",94300:"e21e838c",94368:"a94703ab",94397:"50e6032a",94488:"c9c6f808",94749:"784fecab",94816:"38d612cd",95014:"64c7b138",95108:"56a727d7",95163:"f14e55c8",95192:"35d1b9ed",95266:"d9791473",95411:"4bac2214",95567:"0420286f",95852:"d0ef1249",95942:"20b60419",96027:"2ed989b5",96077:"19d845e4",96149:"08e13917",96216:"ab4a0273",96261:"5e351f3a",96266:"a5c5fcf6",96295:"8fc7f1ee",96501:"82c71751",96637:"b6220ba5",96652:"1f8182e7",96702:"813ca450",96781:"b449eac0",96787:"7f091097",96828:"0147fdcc",96840:"51d9b128",96956:"b26eaa28",97257:"8c82037f",97278:"d837d0de",97421:"ea73ae50",97485:"e52f87df",97664:"d29b4af3",97677:"e95a72c7",97688:"49c13a5f",97732:"428d4f34",97766:"ce6049ec",97819:"7b907fd6",97920:"1a4e3797",97953:"4ffe34ca",98110:"4b1b6b6d",98117:"3c8791ea",98364:"e3bb5330",98418:"a6d3b32b",98494:"34b1f086",98550:"a7719d3c",98633:"7960f2a0",98661:"e6b85556",99003:"5fbe96f6",99198:"9dc99f39",99311:"4e1aad47",99878:"ed655da3",99952:"319411a6"}[e]||e)+"."+{470:"8f65e6a2",486:"3ab3ef26",506:"5831c138",545:"2e53585c",620:"fb59e80b",760:"cf4f5094",803:"0cc8c050",807:"d40cd0da",815:"2d07b14e",933:"a03e6fc4",1025:"4ccad4ec",1076:"1ec3ee33",1117:"c19a9f4d",1249:"b9522133",1251:"3e742b51",1293:"53f286ef",1447:"08e23959",1627:"1b08abbf",1707:"dfb03dde",1710:"cea6a1bf",2021:"d5acfb48",2071:"27b7194d",2084:"109480b2",2107:"d3ae8006",2116:"460f721a",2421:"f8b6c09d",2496:"b50b7fca",2517:"c0dc08de",2531:"ba7c946c",2569:"2c17f17a",2637:"2c36d1e2",2699:"d698f7a3",2730:"8f06d256",2890:"50299efb",2910:"ffef7660",2946:"59031a17",3042:"8b0946df",3142:"6a7d57ed",3173:"8ebd70bc",3222:"baa201ec",3267:"7cee8058",3279:"75a3c925",3389:"c64e9141",3543:"88af4235",3678:"5131e42e",3700:"591b0a4f",3919:"1306ed21",4146:"3785b9a0",4156:"922106e7",4394:"ba199ad7",4395:"937a38df",4486:"dff0f9a1",4487:"0b2ddae4",4567:"ac5039c2",4630:"9efd636b",4729:"24f27a43",4730:"fb61181e",4802:"d8d34d4e",4805:"1cd2da06",5103:"2764e5a7",5108:"402742f8",5117:"ab541c46",5135:"ad92a2de",5193:"f3407e3e",5243:"c432c485",5358:"9eafc10a",5437:"bcf60907",5559:"a73923f4",5569:"c6eae306",5801:"c20dff35",5810:"434ef014",5861:"be1b32c1",5881:"43909da4",5917:"739aae61",6115:"411504ba",6189:"6966da3c",6356:"18b3a668",6496:"6aec4015",6686:"975ecda5",6794:"212133a9",6839:"621bb6dd",6876:"30a7f3bb",7069:"1a35b053",7104:"41de6788",7135:"776b2f54",7259:"5afa32e1",7305:"0143e711",7432:"b9624cac",7440:"8d4a8d02",7526:"1cc91b96",7736:"a6f8c084",7776:"e085dcfc",7796:"d841b946",7814:"bc6ab13a",7861:"eb88279e",7862:"4adba786",7874:"7ebaec53",7923:"5f193be5",8018:"92edbcd9",8247:"fd63f489",8352:"c9edd3d8",8384:"f8c29671",8589:"2327d1f2",8730:"2ed3f840",9480:"78ef5eee",9489:"5a021b21",9502:"4b2c2544",9522:"79c8aaa6",9573:"22710174",9621:"ce994c84",9718:"95a39732",9752:"d5695715",9805:"753dab24",9881:"955d70f5",10029:"9f2df76a",10042:"909809c6",10136:"f10a7744",10218:"8baafa3d",10262:"0fdf5f09",10439:"cb03a942",10514:"e781b591",10527:"a1f16031",10572:"55429622",10677:"183fee23",10740:"b5a02d8e",10794:"64e6d693",10914:"a536c1ce",10944:"fd6f4938",10955:"3f3a5123",11009:"a9cfc0a5",11046:"2e6b1fdd",11092:"aa01648c",11125:"451dfd1f",11157:"db9daee2",11278:"e9f3e093",11283:"8528301b",11319:"32e23e74",11352:"2059f787",11427:"6c223b9e",11450:"488d7e99",11527:"8d17967a",11590:"c47da026",11676:"4b8e354b",11715:"c18fffd5",11806:"4ceea8f8",11820:"38bae508",11828:"6532209d",11888:"843f9729",12032:"5ed2df7c",12037:"ada03ea7",12081:"43ccfddf",12100:"b3cd38e6",12101:"19473405",12152:"1c16a482",12228:"02016874",12265:"9617609d",12544:"1496ef26",12595:"15df563c",12700:"b0dc0e25",12811:"091bf9b7",12835:"8e9da3dc",12862:"08e03042",12871:"85afea83",12878:"725e054c",13034:"744be122",13062:"4218bf73",13085:"5158e054",13145:"588374ca",13180:"3b788d1b",13190:"d31ecc02",13282:"be6d1f23",13335:"7f37bda9",13343:"131c8636",13445:"6b079458",13480:"519bfa66",13489:"0021aa8e",13585:"d71e1a9e",13727:"9864f066",13757:"bcb40f79",13983:"779477c6",13985:"6ffbf1d2",14231:"6c65bfd7",14272:"f4407bff",14317:"01fc8683",14398:"008deada",14567:"1366a413",14580:"3f5dabef",14734:"d0b6b4c3",14744:"3a4ac248",14774:"2f1f6f59",14775:"c8534055",14895:"d9912c1d",14968:"87dba8ec",15009:"5d53176a",15033:"21f14829",15129:"e9aaf3ae",15297:"3684e8fe",15313:"82a641ee",15453:"b3b6e6ad",15512:"f509ebd7",15556:"8a7f1639",15585:"8d7bf19e",16088:"74c37452",16134:"49fc8847",16582:"e95bb5d9",16667:"5710eeb4",16699:"d88ac2ae",16768:"5459c935",16795:"cc293c53",16817:"c51c165a",16824:"f0ac4908",16971:"38cd707e",17101:"f841ebe5",17239:"4bce8287",17289:"babd90bb",17292:"8ea34858",17315:"5a2a8d11",17389:"c58453c4",17392:"d4d64c00",17465:"6221db94",17469:"e29d901b",17833:"4cdb5bae",17918:"01d6a017",18268:"7c81ee93",18320:"f31d31eb",18420:"94be7e96",18485:"ea2b8cf1",18518:"b30cc2fd",18630:"1b0660a3",18690:"b2e77be4",18768:"ec7b5b62",18809:"e08bfd2e",18848:"b85d0bb1",18876:"8c104799",18909:"ad5212ed",18910:"f3f58ad0",19051:"39190994",19071:"0df0f9dd",19148:"6e58f3a1",19161:"03bf2549",19376:"3fbb16df",19745:"5ab13957",19769:"30723925",19854:"99cee511",20394:"b7717ee8",20467:"bddf5ad4",20568:"1f028f57",20589:"f9b29949",20724:"4e1d1c7a",20792:"22da78e1",20827:"7420f186",20839:"d26a13aa",20919:"b0d58ddc",20925:"f5193666",20992:"859e3677",21111:"bf8444c5",21136:"020a16e6",21162:"257ccfcb",21250:"99bac518",21268:"e60c02d9",21287:"bc8055ff",21496:"996a62a8",21740:"8c48a638",21875:"ce04f1e7",21899:"281b6723",21947:"484c7143",21954:"042a5c7b",21958:"3e88642a",21980:"18b2876f",22e3:"e0c2b227",22107:"1a318e37",22183:"1792d276",22372:"228e8b6f",22533:"bdd69007",22567:"b798cd1f",22632:"3180bb3e",22734:"2d5c66f8",22754:"d4392509",22799:"7a13813a",22847:"50e0d4dd",23163:"78edf21e",23645:"47abf48a",23653:"fa0ab913",23731:"300ede2d",23757:"a5d59f54",23927:"9eeb158f",23986:"f530438e",24140:"c43ca2a7",24168:"ac200ffe",24193:"3e502504",24261:"87f6578c",24522:"2ae6fd77",24747:"98c302e3",24762:"38b37413",24934:"b0072994",25195:"6b56b699",25205:"235475c2",25228:"0bce0a4a",25348:"430c625a",25464:"b96edac4",25476:"42851f41",25480:"7d3c2bed",25483:"74d21805",25609:"5ba5c981",25684:"266ae5b1",25700:"4ddcd9d4",25807:"2ea03ad0",26023:"3ee3d87f",26040:"2a25bfaa",26050:"7eefc8d1",26310:"639897f7",26323:"b059efea",26478:"9b9f2699",26573:"1c084687",26581:"b1e18600",26682:"42502b6c",26842:"6e156151",26954:"2112e6f7",27039:"b642f8f5",27066:"ea8d23b6",27089:"6e498e5f",27173:"c89a1046",27308:"03296717",27334:"26bf1e64",27416:"9bafe153",27420:"9618fcf5",27493:"d1f7f2e8",27563:"186f3efa",27571:"567c3360",27594:"df7be05b",27648:"e5321eb6",27762:"8b03ba5b",27764:"7b979758",27768:"3af5adf3",27775:"73c7534d",27847:"228816a0",27895:"996d161f",27918:"ee220a21",28094:"c6c7b932",28477:"2ca3a845",28547:"72378d0e",28548:"d9f7236d",28747:"46c9dfd7",28752:"433f5062",28802:"b8bbf1c2",28985:"b7d2e9ac",29148:"c2d26965",29250:"37cfec06",29277:"9e7e97df",29511:"4df58491",29578:"18bda1b7",29661:"29e4bf8e",29766:"a78a5b96",29961:"d3ae3c54",30095:"a0059c2e",30228:"4d2754d7",30423:"aecc93c1",30540:"bb140d83",30600:"d0f801c0",30877:"f8f0824f",30981:"32c6c1d8",30992:"50232cf2",31061:"7b20dc4a",31071:"95d401e6",31483:"d1cd6234",31580:"8c430401",31590:"42f88798",31693:"92605f54",31831:"1b0fa079",31852:"c0d4882f",32145:"4c22cbfa",32156:"e272a019",32215:"efe6d188",32398:"05810765",32403:"98626cd1",32470:"ea3615e0",32536:"b6121283",32546:"571884b5",32580:"5b772caf",32669:"bada779a",32681:"f37ee518",32940:"615315cb",33042:"9a3c7fac",33059:"dcca1792",33128:"d182c70f",33130:"500e1cf7",33183:"5c0c2d1a",33465:"18c382f0",33499:"2474b355",33580:"d4b369ab",33630:"78da50d6",33752:"68b73dc7",33760:"395c3564",34099:"a6413d38",34130:"f63dc581",34176:"598afca2",34411:"1bffa403",34496:"87280a3d",34508:"ec09cd8e",34587:"e905bb52",34670:"581a749e",34900:"24e42d12",34916:"71c6aa39",34969:"345b8731",35050:"c45be3e2",35203:"d6db2be9",35228:"a7b8db6e",35483:"1d9fc292",35561:"a985c2fd",35693:"03370467",35834:"f310b4b2",35853:"9f2f45a4",35894:"a01605bf",35908:"16bea4c9",36133:"a2a315e1",36378:"0d79c96c",36548:"12c0d992",36562:"14a434ad",36657:"20084b9e",36687:"09c7fd6a",36713:"f31ac270",36857:"0c7f9487",36968:"4c1f9c6f",36994:"17583fe6",37057:"ccea177a",37131:"42a0d204",37168:"0887579e",37252:"dd958013",37350:"bf7fed40",37401:"c5889b51",37442:"96f15aca",37503:"2fe655f4",37845:"bb08e28c",37955:"e3e04a2d",37959:"6d55e2e4",38007:"144658d8",38028:"2d228248",38050:"00c53bfc",38293:"c3ac277a",38329:"c5aafdb0",38360:"ec1b0fb2",38434:"242b0706",38681:"d13e0cad",38694:"59362b2e",38862:"a23de232",39011:"f0fdaf0b",39097:"f187a578",39112:"7142865a",39166:"bb55ee82",39243:"7c894ef3",39258:"c60176fc",39580:"f8d9560d",39784:"2991ed9a",39903:"cd58b16c",39944:"1e4c8dbc",40073:"25539be3",40109:"63e93236",40269:"4d4d13a0",40337:"77f1b071",40455:"bb7af34e",40559:"a30e75cc",40567:"07495893",40657:"9bc2f1bd",40781:"b677665b",40895:"db9236bb",41179:"ce2c7c18",41202:"91bd076c",41219:"e15ee349",41282:"f241ba79",41353:"dd4d4328",41402:"671bb84e",41437:"a43699dc",41452:"ac8136fb",41571:"3b0817df",41583:"8c4575a3",41806:"bd3e3835",41988:"b0e44ffa",42202:"540840ac",42247:"b10de62b",42265:"9b9c92a3",42309:"b10c1974",42510:"61f97f4d",42694:"743e22e8",42697:"43d60ec2",42799:"45f41047",42816:"ee611b41",42819:"dc98c3b6",42847:"97e3768c",42848:"2cc3ca94",42885:"36a5f21a",43163:"d5cd37ca",43206:"716b7290",43321:"f8f1369f",43333:"9725ef2d",43469:"2ea9f07d",43579:"10949c14",43605:"1b9a7660",43625:"9cff7b4d",43671:"2c0117d0",43780:"5297db8e",43811:"82ad57df",43875:"058d5ecb",43986:"3a3dec6c",44147:"660e05f0",44255:"3808bdd5",44356:"8fa5ddc0",44498:"da9ca1f1",44531:"e2487ded",44568:"4d85c0a3",44577:"96f8856c",44969:"f386e6f3",44970:"55af6bf2",45030:"5a20668d",45173:"6fa94d8f",45315:"2d03f35d",45360:"fd0618d1",45374:"e4d45a9d",45429:"7f6c77f6",45606:"ee4fd7c0",45620:"ecd5c96e",45754:"84d3900e",45916:"a6743ed7",46095:"5e9c255d",46126:"1489379f",46140:"847d9b9e",46147:"e3709134",46188:"5be380dc",46251:"440674c0",46288:"9569b5e7",46330:"36359301",46364:"ff5918e3",46411:"4703f4cb",46442:"2bd1901a",46673:"1051edeb",46691:"c52d15fe",46695:"36ab930b",46752:"698cdebc",46820:"e758140c",46867:"ba10ba53",46926:"d0e4f58e",47009:"b715f31b",47047:"2b0f7c6d",47209:"90de5ba5",47247:"a2bb1fb7",47451:"0d023c58",47604:"818c6ad6",47636:"b20b61b8",47651:"0677a30c",47787:"717ca54a",47864:"b818ab09",47964:"72aec403",48013:"2c8334d8",48065:"cbb65725",48192:"a2cd2103",48228:"a7695af5",48393:"fe8a9f94",48445:"ac0fa306",48464:"9f53aff5",48572:"eb21d0eb",48574:"5c94a3ae",48665:"dd464f38",48682:"592fdfec",48738:"902372cc",48837:"17738df6",48869:"f0c4960a",48926:"980e6676",49071:"eddfef70",49090:"b7ca9459",49115:"fc3d2be7",49214:"e9fed9f3",49250:"f8729ce2",49466:"8d1cf899",49637:"aae5a5f6",49697:"2337de0c",49831:"a21f6a20",50250:"9fc011c4",50350:"86a175fa",50788:"282de5aa",50901:"25d9e83f",50907:"686d5ffa",50971:"ceac7b51",51134:"fabecb7c",51217:"a0ff3c71",51257:"355a3a76",51316:"edfd6d3f",51452:"3abcd7fc",51475:"9b6e6e79",51509:"a807fbdb",51566:"d873102a",51575:"7b64ff49",51644:"179e3fd0",51675:"a81358e2",51698:"2ecd5667",51712:"f38531b5",51796:"0be78daf",51800:"91d2ef3c",51888:"3cc4a1ae",51977:"8997c2c9",52094:"0d9565f1",52154:"ca5adb94",52199:"711f9cf7",52274:"decfe261",52347:"2244bd47",52357:"74e156b5",52368:"4847243f",52660:"65299cc7",52696:"6466d6bd",52961:"13564f99",53164:"35919a6b",53315:"d42d70e6",53431:"b459e24a",53725:"7c8aabbc",53958:"780b0436",53975:"3a942b5f",54111:"caff607f",54146:"f1cc7fac",54585:"30a9777f",54586:"26b89b5e",54690:"c95b7ebe",54777:"f1f4b78b",54986:"a7ca3059",55078:"44c0ee0f",55087:"1707b597",55172:"1e2c70f1",55219:"8df6afb0",55270:"9a0012ba",55319:"1a561750",55333:"69c9d0f0",55408:"8c9affef",55424:"edee52ec",55559:"3f115dec",55593:"927cbeb4",55689:"f43bf242",55705:"a61d1f15",55808:"3c171a96",55809:"ac0192b3",55838:"dffa1f9f",55894:"2ac5ce0e",55919:"5999269c",55970:"cb72f488",56156:"b65213ef",56322:"9f020fbb",56408:"70b19cde",56416:"7df4a95a",56428:"abed0bb1",56445:"d3bef2d0",56451:"d6e15d13",56464:"897effc3",56466:"806d85bd",56564:"4d26919c",56570:"263ad4f6",56650:"87979acf",56669:"553452b3",56828:"e7e249a3",56945:"c619fb2b",57100:"b5164f1d",57135:"d1770a18",57572:"6f8d39b4",57682:"bab44fd0",57834:"0e39203c",57909:"58206e9c",57950:"31d9cc6f",57965:"e47e1f2a",58028:"eb0b0f04",58126:"93e9a1fe",58157:"f6cf83cb",58200:"3c01047e",58213:"24e45dff",58232:"987bb312",58258:"93bc3bdb",58331:"75f2478b",58363:"212af7ab",58510:"c5b685ec",58682:"fd7ee828",58724:"d8204d8d",58817:"e4364841",58881:"cdfac3de",58983:"d7e701d6",59178:"a6c60650",59244:"487e8f05",59330:"0ecf578a",59496:"1f9963a4",59513:"42640030",59754:"1e0b7825",59805:"e3092078",59851:"94ce18e3",59953:"542bd6f5",60103:"58324b15",60141:"0cb6107d",60247:"1735ee2f",60270:"810a20cb",60286:"ee4fc436",60351:"85657ad4",60410:"bf6d89d5",60680:"adfbdbec",60728:"7958c67b",60806:"35b21b8b",60857:"2a3a0814",60874:"ee9db06f",60908:"8dd4118c",60946:"b32636a7",60955:"56530211",60992:"fb0a13bd",61032:"97ec017a",61176:"1d7314d8",61236:"eb76177f",61346:"e892e5b1",61374:"bfce3407",61380:"c4a8fd99",61515:"85974f7a",61925:"eec020b9",62039:"1564ad66",62201:"0c4a9481",62257:"a295f37d",62557:"00782afd",62661:"3214ba54",62714:"14435b55",62826:"061f6d41",62934:"976c7543",63115:"1b696a2a",63446:"0f10e134",63733:"3309ce0f",63833:"a90284ae",63978:"6d5d4a92",64039:"25f56737",64070:"5910dad2",64073:"21b7035c",64195:"20910a22",64397:"91692816",64525:"dda05be9",64598:"e9e59a48",65241:"428b4769",65360:"60226f0f",65544:"bde4e859",65701:"f9d72d1c",65757:"e0eec3de",65938:"81fb3ce7",65962:"b4e8013c",66078:"37af7839",66082:"fa29a7e4",66115:"b6b8181e",66140:"43a846a6",66152:"2631c04b",66261:"27604d5e",66292:"e05abf82",66405:"bae77bad",66485:"4f3d585e",66701:"9fe891f4",66773:"81a5bfda",66795:"029194ba",66837:"6198e0cd",66872:"aed50745",66939:"23f15a84",66976:"831369e2",67083:"077aafc6",67269:"bca5f59d",67300:"20f6828a",67450:"fb53675f",67469:"ba40913e",67575:"e5ed3371",67610:"928f51ad",67661:"1fad9fb5",67859:"6c7d80ae",67953:"392d5943",68098:"43c6aea0",68140:"227f88b9",68226:"fb58bb81",68236:"95de5b23",68238:"42e72d60",68282:"581019f4",68311:"07091e96",68399:"23c6dcd5",68570:"55be567e",68675:"4e782917",68700:"153ca122",68742:"52fc4be7",68819:"ece7f9f6",68831:"1c2917f8",68986:"cec5d9e6",69057:"c25a4b41",69173:"b14a5200",69188:"c4000b0a",69241:"2722c056",69324:"27c863a2",69392:"2a1dd917",69412:"318f54c6",69478:"5cd20520",69497:"d6a3d473",69500:"4e71af30",69505:"360c3ef6",69567:"1f741e1b",69570:"93cbbe0e",69628:"13bd3613",69654:"80bc3d21",69838:"ea56422c",69965:"704e0ad3",69971:"1a793d8b",70020:"14b20044",70164:"ff446e0c",70178:"4251f3ee",70369:"050dc1f1",70384:"36b05abc",70406:"e40d1f6d",70426:"418cda98",70439:"b489e21d",70471:"65485603",70483:"d55bb083",70738:"e2893d51",70843:"51bceb5d",70876:"71e5218c",70984:"a8613418",71008:"03419a45",71051:"463543dc",71078:"0bfd3165",71115:"bd8f2171",71134:"efee0e89",71229:"abbea7d6",71270:"5cc32ea6",71292:"f21b4574",71499:"b61728d9",71553:"9852e607",71592:"964116a1",71609:"756d9a6a",71742:"34d273a4",71922:"80bde556",72177:"01a3acac",72195:"9d932574",72350:"816f989c",72436:"d70fcfe1",72456:"3e9251ab",72508:"d4b44492",72526:"a350b528",72647:"6b7106a0",72728:"96aea41c",72830:"b95db2d6",72899:"0e554088",72942:"78437867",73016:"14719d46",73183:"c607599b",73206:"942a6998",73237:"f5306017",73292:"1f9bf758",73333:"5311776d",73349:"8fb8ef46",73451:"9e49e011",73684:"4710977f",73772:"1b6110a4",73778:"a506aef6",73943:"a71669c1",74120:"717abe83",74343:"b05832f5",74410:"6fbdf447",74422:"bd285ae2",74440:"185be2f5",74491:"b3d5c769",74531:"7b386cff",74571:"56ae5af2",74617:"864bbefc",74647:"28753990",74834:"dd36193d",74867:"215bbe16",74874:"57a0021a",75073:"c783d585",75110:"72759704",75157:"b4b360a2",75216:"66500e5c",75248:"db6a7c9a",75283:"88d0dff2",75325:"624f0328",75367:"562e17bb",75593:"20623e02",75622:"1ad411ec",75706:"b29d5905",75728:"4bc4a44f",75841:"10b0e0b8",75869:"1a04b54b",76050:"d5037134",76071:"c3928c01",76232:"e51e5001",76336:"66188bd3",76458:"fd1cd4c8",76468:"c017e5c5",76982:"e34b7742",77062:"3d98ee5d",77152:"5e5d0f37",77194:"56d4a114",77203:"59263e0d",77251:"f864dc2f",77258:"db02c5fb",77391:"297c4307",77495:"801731d9",77552:"147732a2",77819:"53842937",77903:"928737e4",77942:"11f27923",78024:"2ac27916",78048:"995dc432",78209:"003d882a",78310:"0aa963d4",78350:"51075b74",78408:"a65ccfda",78445:"c8f8dcc7",78461:"a2b83d22",78685:"02285b27",78721:"328534cb",78840:"48801fea",79013:"6199c736",79059:"ab78f3ed",79061:"d1d1a158",79098:"3cd68cbb",79202:"5ddc3f10",79239:"a27bdd87",79281:"d6f519fc",79294:"03311247",79325:"0e20a705",79371:"afd5b6da",79434:"506813df",79454:"21d05c44",79464:"9795c473",79477:"106c0917",79497:"e7f6dae2",79672:"9161d436",79762:"0eba82b3",79815:"bb399110",79924:"ab28eb90",79986:"a091e49b",80053:"98911ab7",80176:"532c3b64",80197:"50d891d7",80301:"4e058efd",80604:"323a496a",80740:"1cbf48e7",80806:"5be95ff2",80813:"d04176d7",80902:"faf38152",80998:"23f10f6b",81031:"db3dc1cc",81059:"836b67db",81160:"0f795b24",81222:"6142678a",81264:"7454f33c",81360:"250b8066",81385:"a1129d91",81398:"332094dc",81496:"2c21cc4b",81576:"94d64afa",81595:"9699ebf0",81711:"39bae65d",81814:"f27be190",81858:"44d4fb06",81932:"fa52e22a",81935:"4ef86bf4",82080:"201f0415",82084:"b0f85a56",82186:"573826cd",82335:"afbcf658",82554:"8f8e83e8",82606:"78f49237",82686:"9afe2914",82706:"d4dd99b0",82732:"9bc9266f",82811:"42a9cde3",82938:"6bdbdf03",83151:"d118bdb6",83208:"2a45b05b",83298:"e92501fe",83436:"3eaec56d",83470:"5559542e",83612:"6d5254a6",83626:"8914cf85",83817:"6729aa3d",83819:"c743430b",84052:"ca59c7f8",84075:"96ea75a2",84116:"53038ca6",84145:"d256e744",84204:"d94d2a8a",84523:"f7fff689",84542:"f5139110",84840:"4e04bccf",85117:"fc35334b",85324:"88b7a541",85342:"3fe49aee",85463:"8a937205",85607:"2a0b33c5",85621:"cb00aa86",85645:"cccaeda6",85656:"fd96b1fa",85693:"cf8223cb",85789:"53662be4",85844:"2c3494b8",85854:"341c94ed",85981:"379c524e",85993:"cea956c4",86070:"74223607",86100:"d1d0b9d8",86119:"42e5a022",86255:"4a34fac4",86291:"44a593df",86379:"1cfbf6eb",86417:"8b5553bb",86542:"5d1601de",86817:"144a2345",86993:"527b8e9b",87094:"96e007ca",87097:"4f903266",87130:"eb5cc196",87197:"16714850",87257:"d335f4ca",87277:"e638b925",87311:"4bfabe3d",87316:"7099c7da",87329:"8af0af7d",87354:"bcd23d98",87415:"6eaecd4e",87477:"6a2c372f",87564:"e65c81bb",87674:"12457c5d",87822:"582e97dc",87837:"92f2c0ac",87941:"d869ea1b",88033:"36eab93f",88083:"79fa958f",88136:"4901932e",88210:"2b0bbbd4",88211:"c92359e1",88290:"333a991f",88550:"251a520d",88617:"a7daec2b",88725:"c79e6ee1",88757:"d1b1cebc",88828:"ac700e14",88856:"e7bc2005",88910:"406d2e32",88940:"4f11b331",88941:"09039e83",89104:"e67b60c4",89105:"736478d5",89127:"701b08aa",89187:"8ab32f00",89241:"913f55c3",89303:"e74508f0",89423:"695c0782",89782:"39c287d2",89784:"62915c76",89802:"bfcd3936",89877:"1b132345",90074:"af1214ab",90131:"6dfb4127",90136:"e4f7ed0f",90294:"bf691470",90323:"4e76d5ad",90466:"6c80a01d",90515:"4878041b",90612:"3f044ac5",90688:"ccfe58a7",90773:"b152a7e2",91006:"1e68dee2",91131:"9b7430d9",91208:"2a4e9627",91345:"6b14d37a",91464:"66dcba55",91488:"d52ac397",91510:"b4b09124",91860:"6e7c736d",92032:"23a07db8",92083:"d776badd",92089:"5181333f",92113:"cb63d867",92306:"cd2dfdf8",92670:"7f0667a4",92678:"db03c531",92845:"8fea582b",92926:"ab5f38c8",92998:"64ed3590",93041:"a01d32c1",93167:"c746ea3d",93245:"484224fc",93312:"23abd341",93337:"8d000f18",93346:"c2d769bc",93375:"579ec2ff",93476:"eab65d40",93484:"223f18d2",93565:"e99f8a71",93629:"d0f68e67",93663:"a954333c",93678:"23d74050",93742:"a47b0969",93845:"e372616d",93852:"d7ce269f",93924:"15cb3cb2",94033:"73aec491",94121:"d2722006",94300:"db85ac62",94368:"82830257",94397:"9c0d800e",94488:"96dfb403",94749:"8673198f",94816:"9c4e980f",95014:"efd4b95a",95108:"39d114bc",95163:"c77a353a",95192:"4474b573",95266:"710ff32c",95411:"17a2ec38",95567:"738f813a",95852:"685301c9",95942:"3ca2e295",96027:"4531bbd7",96077:"f8dee54a",96149:"fe5c5612",96216:"7a0af1a0",96261:"7db636d7",96266:"3386d6f5",96295:"9f8b7f1a",96501:"7a72a396",96637:"dc6307d8",96652:"3544fd1a",96702:"2623f947",96781:"66273d27",96787:"b9df50d5",96828:"96f62c8c",96840:"a032b306",96956:"2a3c2df7",97257:"1ca4eeda",97278:"66c4cfe3",97421:"cc91f5e4",97485:"9e8d4ae8",97664:"7bb3d913",97677:"2229b63b",97688:"5e4733da",97732:"2df8fc6c",97766:"f2123f02",97819:"eb27cfe9",97920:"22b561f0",97953:"43a84993",98110:"c46c9a88",98117:"d94de234",98364:"8f4f4004",98418:"909ca320",98494:"eda7a102",98550:"dec14c28",98633:"70b96ee3",98661:"f81996be",99003:"d0d1d579",99198:"22b3b10e",99311:"afdf7d5f",99878:"fdccc28e",99952:"384abb48"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),b={},c="react-native-website:",r.l=(e,a,d,f)=>{if(b[e])b[e].push(a);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var c=b[e];if(delete b[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((e=>e(d))),a)return a(d)},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=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={13980018:"46752",13989100:"41452",15800944:"27594",17896441:"27918",20144648:"79371",25524074:"9621",30138938:"84145",33909044:"91345",35024544:"27416",37880922:"21980",39100033:"85844",39991005:"76982",41988923:"1627",45568034:"86291",52156499:"3222",58869656:"87316",65428859:"86542",66494347:"59754",68381642:"69324",79448688:"31061",80036715:"16582",85431298:"22799",86316871:"48926",91695048:"13489",95722794:"26954",99403472:"15453",b54696c0:"470","0a35f6eb":"486",fc751a3d:"506","294e92a9":"545",bc2f7794:"620",dcf691c2:"760","17a8dc81":"803",fb25ba24:"807","8f0d6e5b":"815","1404e73e":"933","8c28f592":"1025","186a9ba9":"1076","356a0ac6":"1117","1705a2f5":"1249","423de293":"1251",d1d509cf:"1293",bbc0c093:"1447","902a5db0":"1707",b5a7fd43:"1710",aa88182b:"2021","6b49554e":"2071","3fb280d9":"2084","6aeefb41":"2107","3a31669b":"2116","293e43ee":"2421","7fc91348":"2496",d01173a8:"2517","147dc28e":"2531",db47402c:"2569","1ba86576":"2637","1448e88e":"2699",c8899d24:"2730","45618ae1":"2890",eb5418d6:"2910",b1228550:"2946","18b93cb3":"3042","243b9aa6":"3142",c10d4556:"3173","30bf7e1c":"3267",ba2d52b1:"3279","6f1bcaad":"3389","601330aa":"3543","578ba53f":"3678","6c509596":"3700",f31ddbdd:"3919",c00af2b0:"4146",a2b80c2f:"4156",a2490e07:"4394","5e8e437b":"4395","7a693bfc":"4486","078c5e69":"4487",fd0805d1:"4567","7c812bc0":"4630","2b43cbc0":"4729",d56b8eba:"4730",b6bd4264:"4802","0fc665a3":"4805","8f5764cc":"5103","5887780d":"5108",c759f874:"5117","30fb9325":"5135","9b11a7b5":"5193","332e9e34":"5243","7a423906":"5358","54255f28":"5437",e23b750b:"5559",de7e05af:"5569",f8b1a534:"5801","0667b750":"5810",f7e8b9a1:"5861","362c9549":"5881","3da7314b":"5917",f59ee173:"6115",bbae08e6:"6189",a992a0f8:"6356","0b242e68":"6496",c398a51a:"6686",f4870e22:"6794",b9e9b3a4:"6839","4f61d82b":"6876","37ae9f43":"7069","716c2719":"7104","76e173fc":"7135","2029ef4e":"7259","78406dfc":"7305",d8db4bdd:"7432","0a489978":"7440","061959ba":"7526","713f446b":"7736","28d3cf43":"7776","5f7a6f21":"7796","91786f2d":"7814","8a792504":"7861","36778e0d":"7874","04cee9fd":"7923","7d04e04a":"8018","2c957721":"8247","0181b3db":"8352","9cbfa21b":"8384","3b17f5a4":"8589",e97c1fe7:"8730","3b865f5d":"9480","60eb9b40":"9489","9787e2b5":"9502",bed8702c:"9522","727a66d9":"9573",eb50cd7d:"9718",b2115c5a:"9752",e5a951df:"9805","5221567d":"9881",d480b2d8:"10029",daf96af6:"10042","7374b7af":"10136","52633b27":"10218",d79e8bdf:"10262","1791f58f":"10439",bbdeca34:"10514",b8d0a2d1:"10527",ebf19685:"10572","19aaa7d2":"10677","1ea42534":"10740","0ac6d6a1":"10794",cb7060e2:"10914","93583d2d":"10944","27caae05":"10955","08e1c021":"11009","55b63d4c":"11046",dcddf26d:"11092","2cf74606":"11125","037bf98d":"11157","75ebea5a":"11278","29cd52c0":"11283",a3d50c6d:"11319","5f11e2df":"11352",d4077890:"11427","0bb0f3cf":"11450","33c3be35":"11527","8538b042":"11590",a7da7bfd:"11676",bc26c448:"11715","634e5b87":"11806","04e1afbd":"11820","79c31966":"11828","8585b615":"11888","89a085ba":"12032",e6a6f3dc:"12037",c6a0cc74:"12100","3a0563f8":"12101",a728158d:"12152",eb1e27c5:"12228","42dbec43":"12265","69aee15b":"12544","878ba96b":"12595","7f6ca9e0":"12700","8d3fc5c6":"12811",bf77c5df:"12835","6cdb7f96":"12862",af8a22e6:"12871","4cc410e3":"12878",d5ca4adc:"13034","0d626c57":"13062","1f391b9e":"13085","900a3533":"13145","5bb745c9":"13180","1de587e0":"13190","95a8e207":"13282","3b9f8a02":"13335",c42662d8:"13343","97affa7f":"13445","7a6c553e":"13480",d2174fb9:"13585","9bf717b1":"13727","57589dde":"13757","86bf3c9e":"13983","70ac8688":"13985","694579f7":"14231",b71414c5:"14272","911052af":"14317",a39c2644:"14398","2dca9575":"14567",c0cfec7b:"14580",b7257cf4:"14734","99cd3a09":"14744",f666756e:"14774",e43bbd8d:"14775","4ed22eea":"14895","0044a2c6":"14968","276ccdc6":"15009","9a1f20dc":"15033","012d05d8":"15129","056867f4":"15297","088c6538":"15313","01fb1614":"15512","03d50046":"15556","7d1976ec":"15585","76571efc":"16088",c050f0c1:"16134","4396b59e":"16667","260634c1":"16699",e19eb737:"16768","285b3354":"16795",f667452d:"16817","23b2ec0b":"16824","14d4a842":"16971","36fc15ca":"17101","39d9d3b1":"17239","3560f547":"17289","777c6042":"17292",b2e9258a:"17315","2954fac3":"17389","3163195d":"17392","9c00ca68":"17465",eeccbb9d:"17469","426d37cf":"17833","67574dd0":"17918",ac5ffeb9:"18268","1daeb507":"18320",f38a19d0:"18420","9367275a":"18485",a7bd4aaa:"18518","9eda2b4c":"18630",d301ca6f:"18690","7210b988":"18768",e4cd52a9:"18809",ea65614d:"18848",b6ebe4da:"18876","4d9bd555":"18909","5331b8f3":"18910","80f530aa":"19051",ddd72b6a:"19071","024e8286":"19148","8af066b3":"19161","4576eff5":"19376","1d73041c":"19745","8c1e11f0":"19769","2a7802e5":"19854",c28f96f6:"20394","39ae1dcc":"20467","9006e630":"20568","727350a6":"20589","87ab4d1a":"20724","5dffea44":"20792",a86079f0:"20827","36627b26":"20839","1a9dbb4a":"20919","00c36718":"20925",d435efc2:"20992","442912ac":"21111",f9922edf:"21136","16ee311f":"21162","1aa1a063":"21250","77f249ff":"21268",be7b5d27:"21287","8b56192f":"21496","320b7954":"21740",f9145531:"21875",fb578f06:"21899",e5bf6a34:"21947",c3c09026:"21954",aed1fdfa:"21958",b233694f:"22000","2827f11f":"22107",d4be08e6:"22183",b3fd545e:"22372","17ec9470":"22533","4a860d8c":"22567","116594f6":"22632",a7d1ebe1:"22734","3c68b9d2":"22754",d05ae094:"22847","3d175bf6":"23163",b7799679:"23645",cf01b66e:"23653",cc2c9ee0:"23731","6f5989c4":"23757",c41cb816:"23927","3b6f8471":"23986",bc659752:"24140","2a6f3007":"24168",ab51e9a4:"24193","2f0f6a05":"24261",af62122e:"24522",c20f03e6:"24747","8c1b243a":"24762","4dd33177":"24934",beab48ee:"25195","31dc03fe":"25205","6184db93":"25228","31aad40d":"25348","01b58810":"25464",a770fe3b:"25476","5deadce3":"25480","68b823fd":"25483",a535188c:"25609",b12657f5:"25684",e20ea0b5:"25700","6820c973":"25807","787a5247":"26023","319045b7":"26040","3d33c646":"26050","3a5cd9a6":"26310","4cbc9dd4":"26323",a6efc48a:"26478","34a3a287":"26573",e60b42c6:"26581","5d7ae6cf":"26682","623d7060":"26842","20da3b21":"27039",f59aea7c:"27066","670e8940":"27089","450cda6b":"27173","437c7eac":"27308",d6811676:"27334","2581efca":"27420",e6b2312c:"27493","728d2d7a":"27563",ab6173e5:"27571",c9eff2b3:"27648","9376381b":"27762","3c18d05a":"27764",ffb79954:"27768","9dc2e4c7":"27775",e4de8e8e:"27847","226a5928":"27895","5f226e65":"28094","1c63adb2":"28477","1aab41e5":"28547",db66ee01:"28548","12e81c73":"28747","61182cc0":"28752",a7137c8d:"28802",bfa82433:"28985","22d7af95":"29148","07f65d8b":"29250","347319a3":"29277",f8c20afc:"29511","782d5715":"29578","5e95c892":"29661",e590aaa6:"29766",b87ed5c2:"29961",a135050d:"30095","74f98b1f":"30228","20b2c2b8":"30423","34eb68ef":"30540","174b14fd":"30600",bc22aba8:"30877","30d73f3c":"30981","306d2344":"30992","461fa96b":"31071","397ccaa2":"31483","5ac20d8a":"31580","4f1e6f78":"31590","75b8d183":"31693","7d092cc9":"31831","65fb4e8d":"31852",c544f4a4:"32145","5c50ab3a":"32156","849a2d93":"32215","9ad607d8":"32398",c74f51da:"32403",b7112064:"32470",f1ccaf05:"32536",fe826c2c:"32546",a3c2ef0a:"32580",c1e04fa9:"32669","915f3d1c":"32681","21daa31c":"32940",d5a6e29a:"33042","7510cbdd":"33059",af469e1b:"33128","039b8e3d":"33130",b9ffb51b:"33183","3468f004":"33465",c99ef3c8:"33499","9bdf7f32":"33580","190f221c":"33630","86abb156":"33752","1ac276d7":"33760","56b54d0c":"34099","6e348b42":"34130","78b274e1":"34176",c4d53b4e:"34411","8968fb7b":"34496",d1a6a78e:"34508",bbd0c512:"34587",ad5d8c26:"34900",b44c3773:"34916",dc64daf5:"34969","31e0ef60":"35050",fed8e900:"35203","4ea08adb":"35228","416cb7f4":"35483","8800e804":"35561","8aeb1be7":"35693",d33531c0:"35834","043f5d57":"35853","7b293dc3":"35894","26c5b03c":"35908","64df562a":"36133","42b9625c":"36378","1d59c923":"36562",ad4064bb:"36657","5036f758":"36687","13ee8587":"36713",c8789a67:"36857","985e27df":"36968","3ffb6394":"36994",edeb7ca8:"37057","8136ae62":"37131",d09c12db:"37168",d91f58ea:"37252","686b0bca":"37350","67e697ca":"37401","92871e18":"37442",c4d886ef:"37503","0d680d08":"37845","0091494f":"37955","9dbcff21":"37959",b771fa58:"38007",ec45d43c:"38028","88f8cf7d":"38050","0098ae6f":"38293","27161ea7":"38329",fc04664d:"38360",b8cf7f45:"38434",d1a27f99:"38681",c09a614e:"38694",e467d655:"38862","0b3b7529":"39011",eded264f:"39097","437495c6":"39112","02f0afb6":"39166","240f2433":"39243","9b053948":"39258","623cc3b0":"39580","9b1b20cb":"39784","861560fd":"39903",e2626cf4:"39944",ba1860c7:"40073","32b5ea16":"40109",c8cf90b4:"40269","50dd9b79":"40337",b9361f7a:"40455","8d2e0306":"40559","1076b3a4":"40567","1fc8674b":"40657","8041f9fb":"40781","7600c741":"40895","4b4509e1":"41179",d734f793:"41202","02ed4bab":"41219","32c64886":"41282","1cd2432c":"41353","08f736fd":"41402","98b25e1d":"41437",b2622f06:"41571","71449ed6":"41583","67da8bf2":"41806","117d6e39":"41988",d4d7e15c:"42202",b63e4b40:"42247",b8796a33:"42265","64187b62":"42309","9644b941":"42510","31b01d6d":"42694","28e9e915":"42697",d28adcd4:"42799",e760573e:"42816","53fa95c6":"42819","7c650e8c":"42847",e62508a7:"42848","80f08778":"42885","45209ae6":"43163","29e01d36":"43206","50f74dc8":"43321",a0a0a2ed:"43333","03a32c63":"43469","5386bed0":"43579","7223e43b":"43605","243fbebc":"43625","8c3ef24b":"43671","5799d0dd":"43780","85e970a9":"43811","17352c84":"43875","4865bf41":"43986","9ec17576":"44147","79408a0e":"44255","4eed3210":"44356",ea4644b7:"44498",ef084d6b:"44531","2b53b872":"44568","3a6fee66":"44577",b87596d5:"44969",c020d3f5:"44970","2fc6fcbc":"45030",cbe6a4fc:"45173",a4970bd4:"45315",f7de2b66:"45360",ac411221:"45374",c721bd5f:"45429","0329a84f":"45606","62f145c9":"45620","9ee19b63":"45754","5487638e":"45916","127efe29":"46095","149005f6":"46126","879f4acb":"46140","63c8cbb7":"46147","1483912b":"46188","76e32d2e":"46251","798845d8":"46288","1082d4d6":"46330",e7700b5c:"46364",bd5fb03c:"46411",cd3a106d:"46442","111e950a":"46673","808208b0":"46691","29393bfa":"46695","69697c25":"46820","79d149e1":"46867",cab74b7f:"46926","0b9b9699":"47009","2a144c3d":"47047","1bcfa046":"47209","512830ea":"47247",c7fc39e6:"47451","8c2ad0ca":"47636",f2b40bbf:"47651",ce5cde8f:"47787","98f16971":"47864","5f8ce4cc":"47964",f35dcbe0:"48013","134ae693":"48065","08d358f5":"48192","9ddb20fc":"48228","68ed074c":"48393","472ad214":"48445",db5319b3:"48464",fdd91106:"48572","2bf753d2":"48574","15de7ec3":"48665",b5813517:"48682",cc087f33:"48738","56b30f1b":"48837",af6afb7f:"48869",efc55a86:"49071","6928d3e3":"49090","0bcf800a":"49115","6e6ac1cd":"49214","97a57718":"49250",b25f10a0:"49466",d7165f5e:"49637","5f3f388e":"49697","7d8f16e8":"49831","444ce9f1":"50250","238b4d74":"50350","0ba118cc":"50788","20e9fe55":"50901","73da224d":"50907","43abb1af":"50971",e367aa8b:"51134","9cae6ca6":"51217",d043f0f1:"51257","3380ced1":"51316","71e3662e":"51452",deb2d893:"51475",af9b37be:"51509","12e7cb89":"51566","782ec3fc":"51575","87119bda":"51644","0a033318":"51675","64db8c83":"51698","001dcd58":"51712","09a9e026":"51796","698d87d8":"51800","0602bf05":"51888","8e9fc961":"51977",c996deb9:"52094",f1129715:"52154",c77f28be:"52199","3dd00d0d":"52274","79829de9":"52347",c96104f9:"52357",e644f73a:"52368","5510f1b7":"52660",c06e8323:"52696",fcb6886d:"52961","23ee098c":"53164","062a5932":"53315","0fb34189":"53431",cf6e58a7:"53725",fa2e85d3:"53958",bc8995eb:"53975","6fed3a2f":"54111","498677a1":"54146","834474bd":"54585",c64024bf:"54586","4ec5dc72":"54690","811e7138":"54777",fc8b2c25:"54986",aa64b883:"55078",b591ae09:"55087","2df7b45c":"55172","7b3388c5":"55219","1acbe180":"55270","618b84ef":"55319","9ae0af9f":"55333","6d3744bb":"55408",af992987:"55424","8e40a65f":"55559",a7973d5a:"55593","36bb38e9":"55689","138e67e4":"55705","06dba648":"55808","56376c93":"55809",b8c8be29:"55838","25d2a069":"55894","8aa2fcff":"55919","4f73d880":"55970","3f96f959":"56156","3262a2f5":"56322",fd880ad6:"56408","7101161a":"56416","86c68e3d":"56428","517a6efc":"56445","4d7503d3":"56451","475ddf72":"56464",b2cfddf1:"56466",d4bf4b5a:"56564","5eaec2c9":"56570",f313a82c:"56650","0efc406b":"56669","4e81c48e":"56828","5e797937":"56945",ae6fccdb:"57100","7ba605c7":"57135",e2833505:"57572",ac524e79:"57682",d64418bf:"57834",f6da0534:"57909","853aad93":"57950",b0f4752e:"57965","6b8c6e92":"58028","3dfaf92b":"58126",e8780874:"58157","4084a0d2":"58200",de795cee:"58213",eef85b41:"58232","6e9e7da5":"58258","45efb036":"58331",b08e6fd8:"58363","821dce8b":"58510","868c59c1":"58682",e980bfab:"58724","8c81d4b1":"58817","590fe42d":"58881","7f2b816c":"58983","14be3d02":"59178","8c2e6727":"59244",e916fc52:"59330",cdd4e3f0:"59496","15770add":"59513",c2a87ab1:"59805","97b28733":"59851",de28e96e:"59953","2fb758e0":"60103","4f1150eb":"60141","326a97e1":"60247","2ac63345":"60270","8cc7edc7":"60286","09de660c":"60351",d88eb93c:"60410","95d3faaa":"60680","08a5ab73":"60728",f135686d:"60806",f0e049cd:"60857","2548f5e5":"60874",c86d871d:"60908","7c4f02d8":"60946","1a297150":"60955","59d809ff":"60992",e0cb77f5:"61032","2549e033":"61176","16a62667":"61236","7e185b3a":"61346",d3c1a4fe:"61374","7890cc65":"61380","9cdfb8c3":"61515",d09b6b40:"61925","61474b2d":"62039","101b7008":"62201",e053db0d:"62257","7332ecd5":"62557","68ef1759":"62661","67a43a2b":"62714",f6d3c175:"62826","729c0f86":"62934",accf606c:"63115","8cf5de12":"63446",a6e22173:"63733","0c9604fb":"63833","12d44b5e":"63978","9baacde1":"64039","3bb14ef7":"64070",a67fb928:"64073",c4f5d8e4:"64195",a43a81e0:"64397",b196f212:"64525","1a44db19":"64598","1d7f05a3":"65241","05cf0320":"65360",e3874c12:"65544","9863d968":"65701","7563de56":"65757",ca213633:"65938","41badbb5":"65962","42a3ef15":"66078",eeead8f6:"66082",abdaff06:"66115",e4de30c0:"66140",dceb5a04:"66152","0cf75f61":"66261","357d2506":"66292",b24d9bb6:"66405",f5d38d41:"66485","3a3f3686":"66701","41b14717":"66773","087b7d76":"66795",edaa9a97:"66837","943dd7cb":"66872","4a70ef18":"66939",a27e6552:"66976",b4a9e2bf:"67083","38eee5c4":"67269","5d515b10":"67300",ec0c998e:"67450",ddd9a697:"67469",c737572b:"67575","02db2b77":"67610","1b274068":"67661",a3929b5f:"67859","2c2b467e":"67953","5ac697d4":"68098",fdd518cf:"68140","345c2f79":"68226","704c7051":"68236","21401b7a":"68238",e7e29711:"68282","6a0d7dd4":"68311",f1d9f180:"68399","7a63ecef":"68570",ba227fd4:"68675","75ef737d":"68700","6137920c":"68742","9714922d":"68819","8c1ce502":"68831",ca006c66:"68986","8f2b33cd":"69057",c3592a68:"69173",cfc2f36a:"69188",c57040ca:"69241",d771e5a2:"69392","9e0309bf":"69412",d6c2ba00:"69478",fa11d8ca:"69497","6de3d5b3":"69500","7c6c7a0a":"69505",dc123d29:"69567","3493d660":"69570","12e59f4a":"69628","3f78ddfa":"69654","091cab81":"69838","700c0943":"69965","0ade90c0":"69971","9d97f7b6":"70020",fb71e943:"70164","801550f5":"70178",f73e1de7:"70369","12b28870":"70384",eeda504f:"70406","23d8a97e":"70426","3e3c20b5":"70439","925bf856":"70471","6de08607":"70483","3640f479":"70738",eca1dea2:"70843",db682b59:"70876","4d79d356":"70984",ef80f5d7:"71008","1ed4e501":"71051",e758129e:"71078",cdc8a01e:"71115",a8687ac8:"71134","2736e981":"71229",e26f611b:"71270","7dbd846d":"71292","94041cd4":"71499","929fe6ef":"71553","1821187d":"71592",c9fc4253:"71609","43816d14":"71742",cf645fbf:"71922",f156e6fd:"72177","535592ec":"72195","6a5926c0":"72350","30c7ae5a":"72436","0cb02a81":"72456","6ad22d2d":"72508",da1cd4ff:"72526","9b9dc0e1":"72647",ff0316c2:"72728","9c354e09":"72830","51d1e75a":"72899","51fb9cc7":"72942","71b28fa1":"73016","69f236bd":"73183","4fb4e792":"73206","4885913a":"73237","6127a584":"73292",f068a30d:"73333","787d1332":"73349",fecf6185:"73451",ed353322:"73684",c58d17fc:"73772",d5499c5d:"73778","1a7fe871":"73943","432a68e7":"74120","12bf709d":"74343","461c5b22":"74410","42a13e6c":"74422","1a49fe29":"74440",bff0709d:"74491","2d554375":"74531","578f8908":"74571","4976484d":"74617",e264076a:"74647","9aabffe1":"74834",f78f0390:"74867","90487a84":"74874","2781e23a":"75073",b29e94ce:"75110","3760029d":"75157","91918b05":"75216","49d40500":"75248","53331f41":"75283",f115b6dd:"75325","00b6ea12":"75367",a3f10777:"75593","9e461bb0":"75622","95bb95fe":"75706","7e4d0154":"75728",d0603a07:"75841","3f42c85e":"75869","06a38139":"76050",a9bd4440:"76071","1e64aab5":"76232",bba11647:"76336",e94d0088:"76458","5d9b0d6a":"76468","2547de89":"77062","320ebc57":"77152",dcaae713:"77194","6ed01025":"77203","605b0891":"77251","278d928c":"77258",de8df556:"77391","9cc3267b":"77495",b42b2a17:"77552","09917fe9":"77819","23909da8":"77903","4dfd395e":"77942",c7cd3677:"78024",d90455db:"78048","5530c297":"78209",ce798db4:"78310","65456c03":"78350","49b8fdc8":"78408","00c04a88":"78445",bf4489ea:"78461","717ea6d4":"78685",eb38f5fa:"78721","717f9656":"78840","114e0000":"79013",cdf0b926:"79059","17bfe970":"79061","0b139e7e":"79098",b698f5b8:"79202",e81ab398:"79239","3d512310":"79281",db79922a:"79294","260946d2":"79325","169f5904":"79434","5a35eefa":"79454","8ae74b50":"79464",b4bb44c0:"79477","3861ecca":"79497",c23b0ee1:"79672","4a5a3e4f":"79762",b0ab0602:"79815","0296afed":"79924","6b38eaf7":"79986","935f2afb":"80053","02da5ab9":"80176",a2e2213f:"80197","3b6e9377":"80301",cc0cb525:"80604",cbae671d:"80740","0a0bc396":"80806",c935642e:"80813","99056a19":"80902",b75129ac:"80998","9090bfe2":"81031",ab50fe1d:"81059",f71dfec3:"81160",ac923fd4:"81222","5ea6b885":"81264",e595470b:"81360","74683f69":"81385","2092b488":"81398","0199d4ca":"81496",ae7a9ea2:"81576",c8250b16:"81595","9da46a46":"81711","0c2c0374":"81814",cfde41d7:"81858",b4bdd337:"81932","81bc0670":"81935",b29ca04c:"82080","8c833fcf":"82084",e4160942:"82186","8b188aa1":"82335",c29853ab:"82554","9a09606f":"82606",d60a7f72:"82686","8dd98cd6":"82706","0a79c9a2":"82732","487e8214":"82811","98721dc9":"82938","1b602655":"83151","0d01e3af":"83208","580ea038":"83298",ccf671a6:"83436","83b27652":"83470","525fe6fa":"83612",bb898d9a:"83626",dae67a8a:"83817","9a4e11a7":"83819",d5eb11a4:"84052",b5352e4b:"84075",fd5475e9:"84116","5dbec22c":"84204",a32085e6:"84523","2b571a06":"84542","2c1292e3":"84840",fbc03c2b:"85117","45f9e45c":"85324",fe60c9cb:"85342",c99c71a3:"85463","6b1867da":"85607",f3cf0483:"85621",a3196274:"85645","8ede17c4":"85656",cbb92f95:"85693","469a9a57":"85789","6eeffc01":"85854",c159d2a1:"85981",ea9d8190:"85993","51b5d68d":"86070","1d104e2e":"86100","86ef1cd5":"86119","23636f9a":"86255",bc684a49:"86379","81dc996f":"86417",ff68b7f6:"86817","1e70be21":"86993","38290d37":"87094","6b1fc6d0":"87097","9cdb1c5b":"87130","5b3fb50e":"87197","531dfa41":"87257","389fb278":"87277",acac7935:"87311","250b4dc6":"87329","6a58dac5":"87354",b63db1e6:"87415","02309956":"87477","13da317c":"87564","292ebda1":"87674","66e1c749":"87822","8d1d2f63":"87837","326739da":"87941","1cd20a8e":"88033","55f4c5b3":"88083","97ba5e68":"88136","962fb06e":"88210","3366e05e":"88211",d9b20917:"88290","2cf1bed0":"88550","422866f9":"88617","63600a6b":"88725","5aea82ac":"88757","24ac12d3":"88828","1dfed3a8":"88856","013c1bab":"88910","1d9a061e":"88940","940b5b71":"88941","039d54f1":"89104","3370e507":"89105","9a45f095":"89187","8b30a105":"89241",cad34824:"89303","04037fd3":"89423","5dcbc311":"89782","0a8cb4e2":"89784",b81226b7:"89802",f2d290a0:"89877","9915efaf":"90074","81d00bc5":"90131","75ec37d0":"90136",bae45495:"90294",ffe4f0b4:"90323","4b916891":"90466",f8f6f210:"90515","402bdd59":"90612",d0cd4a88:"90688",ad1c6c85:"90773","1658c756":"91006",fbf58390:"91131",a01fd1dd:"91208",f0b7dbe2:"91464",dfa30293:"91488","238efb50":"91510",c1467f4f:"91860","9e828d90":"92032",d3fd3247:"92083","93d5903e":"92089",e16442cf:"92113","01005a98":"92306",b45ad73f:"92670","6dadabbe":"92678","801384bf":"92845","18bb110a":"92926",d1ebdf95:"92998","583c7938":"93167","510cb4fc":"93245",eec26f27:"93312",f6dc595b:"93337",e7d7dd9f:"93346","3d37559d":"93375","4bdc1132":"93476",cf9d5ce2:"93484","6ba5ca07":"93565",e2559165:"93629",f65152a8:"93663",c99653b5:"93678","2ac0b4bc":"93742","0b82315a":"93845","36cc6e86":"93852","0a196f91":"93924","60d0d69b":"94033",d76382b0:"94121",e21e838c:"94300",a94703ab:"94368","50e6032a":"94397",c9c6f808:"94488","784fecab":"94749","38d612cd":"94816","64c7b138":"95014","56a727d7":"95108",f14e55c8:"95163","35d1b9ed":"95192",d9791473:"95266","4bac2214":"95411","0420286f":"95567",d0ef1249:"95852","20b60419":"95942","2ed989b5":"96027","19d845e4":"96077","08e13917":"96149",ab4a0273:"96216","5e351f3a":"96261",a5c5fcf6:"96266","8fc7f1ee":"96295","82c71751":"96501",b6220ba5:"96637","1f8182e7":"96652","813ca450":"96702",b449eac0:"96781","7f091097":"96787","0147fdcc":"96828","51d9b128":"96840",b26eaa28:"96956","8c82037f":"97257",d837d0de:"97278",ea73ae50:"97421",e52f87df:"97485",d29b4af3:"97664",e95a72c7:"97677","49c13a5f":"97688","428d4f34":"97732",ce6049ec:"97766","7b907fd6":"97819","1a4e3797":"97920","4ffe34ca":"97953","4b1b6b6d":"98110","3c8791ea":"98117",e3bb5330:"98364",a6d3b32b:"98418","34b1f086":"98494",a7719d3c:"98550","7960f2a0":"98633",e6b85556:"98661","5fbe96f6":"99003","9dc99f39":"99198","4e1aad47":"99311",ed655da3:"99878","319411a6":"99952"}[e]||e,r.p+r.u(e)},(()=>{var e={51303:0,40532:0};r.f.j=(a,d)=>{var b=r.o(e,a)?e[a]:void 0;if(0!==b)if(b)d.push(b[2]);else if(/^(40532|51303)$/.test(a))e[a]=0;else{var c=new Promise(((d,c)=>b=e[a]=[d,c]));d.push(b[2]=c);var f=r.p+r.u(a),t=new Error;r.l(f,(d=>{if(r.o(e,a)&&(0!==(b=e[a])&&(e[a]=void 0),b)){var c=d&&("load"===d.type?"missing":d.type),f=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+c+": "+f+")",t.name="ChunkLoadError",t.type=c,t.request=f,b[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var b,c,f=d[0],t=d[1],o=d[2],n=0;if(f.some((a=>0!==e[a]))){for(b in t)r.o(t,b)&&(r.m[b]=t[b]);if(o)var i=o(r)}for(a&&a(d);n{"use strict";var e,a,b,d,c,f={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var b=t[e]={exports:{}};return f[e].call(b.exports,b,b.exports,r),b.exports}r.m=f,e=[],r.O=(a,b,d,c)=>{if(!b){var f=1/0;for(i=0;i=c)&&Object.keys(r.O).every((e=>r.O[e](b[o])))?b.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[b,d,c]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var f={};a=a||[null,b({}),b([]),b(b)];for(var t=2&d&&e;"object"==typeof t&&!~a.indexOf(t);t=b(t))Object.getOwnPropertyNames(t).forEach((a=>f[a]=()=>e[a]));return f.default=()=>e,r.d(c,f),c},r.d=(e,a)=>{for(var b in a)r.o(a,b)&&!r.o(e,b)&&Object.defineProperty(e,b,{enumerable:!0,get:a[b]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,b)=>(r.f[b](e,a),a)),[])),r.u=e=>"assets/js/"+({470:"b54696c0",486:"0a35f6eb",506:"fc751a3d",545:"294e92a9",620:"bc2f7794",760:"dcf691c2",803:"17a8dc81",807:"fb25ba24",815:"8f0d6e5b",933:"1404e73e",1025:"8c28f592",1076:"186a9ba9",1117:"356a0ac6",1249:"1705a2f5",1251:"423de293",1293:"d1d509cf",1447:"bbc0c093",1627:"41988923",1707:"902a5db0",1710:"b5a7fd43",2021:"aa88182b",2071:"6b49554e",2084:"3fb280d9",2107:"6aeefb41",2116:"3a31669b",2421:"293e43ee",2496:"7fc91348",2517:"d01173a8",2531:"147dc28e",2569:"db47402c",2637:"1ba86576",2699:"1448e88e",2730:"c8899d24",2890:"45618ae1",2910:"eb5418d6",2946:"b1228550",3042:"18b93cb3",3142:"243b9aa6",3173:"c10d4556",3222:"52156499",3267:"30bf7e1c",3279:"ba2d52b1",3389:"6f1bcaad",3543:"601330aa",3678:"578ba53f",3700:"6c509596",3919:"f31ddbdd",4146:"c00af2b0",4156:"a2b80c2f",4394:"a2490e07",4395:"5e8e437b",4486:"7a693bfc",4487:"078c5e69",4567:"fd0805d1",4630:"7c812bc0",4729:"2b43cbc0",4730:"d56b8eba",4802:"b6bd4264",4805:"0fc665a3",5103:"8f5764cc",5108:"5887780d",5117:"c759f874",5135:"30fb9325",5193:"9b11a7b5",5243:"332e9e34",5358:"7a423906",5437:"54255f28",5559:"e23b750b",5569:"de7e05af",5801:"f8b1a534",5810:"0667b750",5861:"f7e8b9a1",5881:"362c9549",5917:"3da7314b",6115:"f59ee173",6189:"bbae08e6",6356:"a992a0f8",6496:"0b242e68",6686:"c398a51a",6794:"f4870e22",6839:"b9e9b3a4",6876:"4f61d82b",7069:"37ae9f43",7104:"716c2719",7135:"76e173fc",7259:"2029ef4e",7305:"78406dfc",7432:"d8db4bdd",7440:"0a489978",7526:"061959ba",7736:"713f446b",7776:"28d3cf43",7796:"5f7a6f21",7814:"91786f2d",7861:"8a792504",7874:"36778e0d",7923:"04cee9fd",8018:"7d04e04a",8247:"2c957721",8352:"0181b3db",8384:"9cbfa21b",8589:"3b17f5a4",8730:"e97c1fe7",9480:"3b865f5d",9489:"60eb9b40",9502:"9787e2b5",9522:"bed8702c",9573:"727a66d9",9621:"25524074",9718:"eb50cd7d",9752:"b2115c5a",9805:"e5a951df",9881:"5221567d",10029:"d480b2d8",10042:"daf96af6",10136:"7374b7af",10218:"52633b27",10262:"d79e8bdf",10439:"1791f58f",10514:"bbdeca34",10527:"b8d0a2d1",10572:"ebf19685",10677:"19aaa7d2",10740:"1ea42534",10794:"0ac6d6a1",10914:"cb7060e2",10944:"93583d2d",10955:"27caae05",11009:"08e1c021",11046:"55b63d4c",11092:"dcddf26d",11125:"2cf74606",11157:"037bf98d",11278:"75ebea5a",11283:"29cd52c0",11319:"a3d50c6d",11352:"5f11e2df",11427:"d4077890",11450:"0bb0f3cf",11527:"33c3be35",11590:"8538b042",11676:"a7da7bfd",11715:"bc26c448",11806:"634e5b87",11820:"04e1afbd",11828:"79c31966",11888:"8585b615",12032:"89a085ba",12037:"e6a6f3dc",12100:"c6a0cc74",12101:"3a0563f8",12152:"a728158d",12228:"eb1e27c5",12265:"42dbec43",12544:"69aee15b",12595:"878ba96b",12700:"7f6ca9e0",12811:"8d3fc5c6",12835:"bf77c5df",12862:"6cdb7f96",12871:"af8a22e6",12878:"4cc410e3",13034:"d5ca4adc",13062:"0d626c57",13085:"1f391b9e",13145:"900a3533",13180:"5bb745c9",13190:"1de587e0",13282:"95a8e207",13335:"3b9f8a02",13343:"c42662d8",13445:"97affa7f",13480:"7a6c553e",13489:"91695048",13585:"d2174fb9",13727:"9bf717b1",13757:"57589dde",13983:"86bf3c9e",13985:"70ac8688",14231:"694579f7",14272:"b71414c5",14317:"911052af",14398:"a39c2644",14567:"2dca9575",14580:"c0cfec7b",14734:"b7257cf4",14744:"99cd3a09",14774:"f666756e",14775:"e43bbd8d",14895:"4ed22eea",14968:"0044a2c6",15009:"276ccdc6",15033:"9a1f20dc",15129:"012d05d8",15297:"056867f4",15313:"088c6538",15453:"99403472",15512:"01fb1614",15556:"03d50046",15585:"7d1976ec",16088:"76571efc",16134:"c050f0c1",16582:"80036715",16667:"4396b59e",16699:"260634c1",16768:"e19eb737",16795:"285b3354",16817:"f667452d",16824:"23b2ec0b",16971:"14d4a842",17101:"36fc15ca",17239:"39d9d3b1",17289:"3560f547",17292:"777c6042",17315:"b2e9258a",17389:"2954fac3",17392:"3163195d",17465:"9c00ca68",17469:"eeccbb9d",17833:"426d37cf",17918:"67574dd0",18268:"ac5ffeb9",18320:"1daeb507",18420:"f38a19d0",18485:"9367275a",18518:"a7bd4aaa",18630:"9eda2b4c",18690:"d301ca6f",18768:"7210b988",18809:"e4cd52a9",18848:"ea65614d",18876:"b6ebe4da",18909:"4d9bd555",18910:"5331b8f3",19051:"80f530aa",19071:"ddd72b6a",19148:"024e8286",19161:"8af066b3",19376:"4576eff5",19745:"1d73041c",19769:"8c1e11f0",19854:"2a7802e5",20394:"c28f96f6",20467:"39ae1dcc",20568:"9006e630",20589:"727350a6",20724:"87ab4d1a",20792:"5dffea44",20827:"a86079f0",20839:"36627b26",20919:"1a9dbb4a",20925:"00c36718",20992:"d435efc2",21111:"442912ac",21136:"f9922edf",21162:"16ee311f",21250:"1aa1a063",21268:"77f249ff",21287:"be7b5d27",21496:"8b56192f",21740:"320b7954",21875:"f9145531",21899:"fb578f06",21947:"e5bf6a34",21954:"c3c09026",21958:"aed1fdfa",21980:"37880922",22e3:"b233694f",22107:"2827f11f",22183:"d4be08e6",22372:"b3fd545e",22533:"17ec9470",22567:"4a860d8c",22632:"116594f6",22734:"a7d1ebe1",22754:"3c68b9d2",22799:"85431298",22847:"d05ae094",23163:"3d175bf6",23645:"b7799679",23653:"cf01b66e",23731:"cc2c9ee0",23757:"6f5989c4",23927:"c41cb816",23986:"3b6f8471",24140:"bc659752",24168:"2a6f3007",24193:"ab51e9a4",24261:"2f0f6a05",24522:"af62122e",24747:"c20f03e6",24762:"8c1b243a",24934:"4dd33177",25195:"beab48ee",25205:"31dc03fe",25228:"6184db93",25348:"31aad40d",25464:"01b58810",25476:"a770fe3b",25480:"5deadce3",25483:"68b823fd",25609:"a535188c",25684:"b12657f5",25700:"e20ea0b5",25807:"6820c973",26023:"787a5247",26040:"319045b7",26050:"3d33c646",26310:"3a5cd9a6",26323:"4cbc9dd4",26478:"a6efc48a",26573:"34a3a287",26581:"e60b42c6",26682:"5d7ae6cf",26842:"623d7060",26954:"95722794",27039:"20da3b21",27066:"f59aea7c",27089:"670e8940",27173:"450cda6b",27308:"437c7eac",27334:"d6811676",27416:"35024544",27420:"2581efca",27493:"e6b2312c",27563:"728d2d7a",27571:"ab6173e5",27594:"15800944",27648:"c9eff2b3",27762:"9376381b",27764:"3c18d05a",27768:"ffb79954",27775:"9dc2e4c7",27847:"e4de8e8e",27895:"226a5928",27918:"17896441",28094:"5f226e65",28477:"1c63adb2",28547:"1aab41e5",28548:"db66ee01",28747:"12e81c73",28752:"61182cc0",28802:"a7137c8d",28985:"bfa82433",29148:"22d7af95",29250:"07f65d8b",29277:"347319a3",29511:"f8c20afc",29578:"782d5715",29661:"5e95c892",29766:"e590aaa6",29961:"b87ed5c2",30095:"a135050d",30228:"74f98b1f",30423:"20b2c2b8",30540:"34eb68ef",30600:"174b14fd",30877:"bc22aba8",30981:"30d73f3c",30992:"306d2344",31061:"79448688",31071:"461fa96b",31483:"397ccaa2",31580:"5ac20d8a",31590:"4f1e6f78",31693:"75b8d183",31831:"7d092cc9",31852:"65fb4e8d",32145:"c544f4a4",32156:"5c50ab3a",32215:"849a2d93",32398:"9ad607d8",32403:"c74f51da",32470:"b7112064",32536:"f1ccaf05",32546:"fe826c2c",32580:"a3c2ef0a",32669:"c1e04fa9",32681:"915f3d1c",32940:"21daa31c",33042:"d5a6e29a",33059:"7510cbdd",33128:"af469e1b",33130:"039b8e3d",33183:"b9ffb51b",33465:"3468f004",33499:"c99ef3c8",33580:"9bdf7f32",33630:"190f221c",33752:"86abb156",33760:"1ac276d7",34099:"56b54d0c",34130:"6e348b42",34176:"78b274e1",34411:"c4d53b4e",34496:"8968fb7b",34508:"d1a6a78e",34587:"bbd0c512",34900:"ad5d8c26",34916:"b44c3773",34969:"dc64daf5",35050:"31e0ef60",35203:"fed8e900",35228:"4ea08adb",35483:"416cb7f4",35561:"8800e804",35693:"8aeb1be7",35834:"d33531c0",35853:"043f5d57",35894:"7b293dc3",35908:"26c5b03c",36133:"64df562a",36378:"42b9625c",36562:"1d59c923",36657:"ad4064bb",36687:"5036f758",36713:"13ee8587",36857:"c8789a67",36968:"985e27df",36994:"3ffb6394",37057:"edeb7ca8",37131:"8136ae62",37168:"d09c12db",37252:"d91f58ea",37350:"686b0bca",37401:"67e697ca",37442:"92871e18",37503:"c4d886ef",37845:"0d680d08",37955:"0091494f",37959:"9dbcff21",38007:"b771fa58",38028:"ec45d43c",38050:"88f8cf7d",38293:"0098ae6f",38329:"27161ea7",38360:"fc04664d",38434:"b8cf7f45",38681:"d1a27f99",38694:"c09a614e",38862:"e467d655",39011:"0b3b7529",39097:"eded264f",39112:"437495c6",39166:"02f0afb6",39243:"240f2433",39258:"9b053948",39580:"623cc3b0",39784:"9b1b20cb",39903:"861560fd",39944:"e2626cf4",40073:"ba1860c7",40109:"32b5ea16",40269:"c8cf90b4",40337:"50dd9b79",40455:"b9361f7a",40559:"8d2e0306",40567:"1076b3a4",40657:"1fc8674b",40781:"8041f9fb",40895:"7600c741",41179:"4b4509e1",41202:"d734f793",41219:"02ed4bab",41282:"32c64886",41353:"1cd2432c",41402:"08f736fd",41437:"98b25e1d",41452:"13989100",41571:"b2622f06",41583:"71449ed6",41806:"67da8bf2",41988:"117d6e39",42202:"d4d7e15c",42247:"b63e4b40",42265:"b8796a33",42309:"64187b62",42510:"9644b941",42694:"31b01d6d",42697:"28e9e915",42799:"d28adcd4",42816:"e760573e",42819:"53fa95c6",42847:"7c650e8c",42848:"e62508a7",42885:"80f08778",43163:"45209ae6",43206:"29e01d36",43321:"50f74dc8",43333:"a0a0a2ed",43469:"03a32c63",43579:"5386bed0",43605:"7223e43b",43625:"243fbebc",43671:"8c3ef24b",43780:"5799d0dd",43811:"85e970a9",43875:"17352c84",43986:"4865bf41",44147:"9ec17576",44255:"79408a0e",44356:"4eed3210",44498:"ea4644b7",44531:"ef084d6b",44568:"2b53b872",44577:"3a6fee66",44969:"b87596d5",44970:"c020d3f5",45030:"2fc6fcbc",45173:"cbe6a4fc",45315:"a4970bd4",45360:"f7de2b66",45374:"ac411221",45429:"c721bd5f",45606:"0329a84f",45620:"62f145c9",45754:"9ee19b63",45916:"5487638e",46095:"127efe29",46126:"149005f6",46140:"879f4acb",46147:"63c8cbb7",46188:"1483912b",46251:"76e32d2e",46288:"798845d8",46330:"1082d4d6",46364:"e7700b5c",46411:"bd5fb03c",46442:"cd3a106d",46673:"111e950a",46691:"808208b0",46695:"29393bfa",46752:"13980018",46820:"69697c25",46867:"79d149e1",46926:"cab74b7f",47009:"0b9b9699",47047:"2a144c3d",47209:"1bcfa046",47247:"512830ea",47451:"c7fc39e6",47636:"8c2ad0ca",47651:"f2b40bbf",47787:"ce5cde8f",47864:"98f16971",47964:"5f8ce4cc",48013:"f35dcbe0",48065:"134ae693",48192:"08d358f5",48228:"9ddb20fc",48393:"68ed074c",48445:"472ad214",48464:"db5319b3",48572:"fdd91106",48574:"2bf753d2",48665:"15de7ec3",48682:"b5813517",48738:"cc087f33",48837:"56b30f1b",48869:"af6afb7f",48926:"86316871",49071:"efc55a86",49090:"6928d3e3",49115:"0bcf800a",49214:"6e6ac1cd",49250:"97a57718",49466:"b25f10a0",49637:"d7165f5e",49697:"5f3f388e",49831:"7d8f16e8",50250:"444ce9f1",50350:"238b4d74",50788:"0ba118cc",50901:"20e9fe55",50907:"73da224d",50971:"43abb1af",51134:"e367aa8b",51217:"9cae6ca6",51257:"d043f0f1",51316:"3380ced1",51452:"71e3662e",51475:"deb2d893",51509:"af9b37be",51566:"12e7cb89",51575:"782ec3fc",51644:"87119bda",51675:"0a033318",51698:"64db8c83",51712:"001dcd58",51796:"09a9e026",51800:"698d87d8",51888:"0602bf05",51977:"8e9fc961",52094:"c996deb9",52154:"f1129715",52199:"c77f28be",52274:"3dd00d0d",52347:"79829de9",52357:"c96104f9",52368:"e644f73a",52660:"5510f1b7",52696:"c06e8323",52961:"fcb6886d",53164:"23ee098c",53315:"062a5932",53431:"0fb34189",53725:"cf6e58a7",53958:"fa2e85d3",53975:"bc8995eb",54111:"6fed3a2f",54146:"498677a1",54585:"834474bd",54586:"c64024bf",54690:"4ec5dc72",54777:"811e7138",54986:"fc8b2c25",55078:"aa64b883",55087:"b591ae09",55172:"2df7b45c",55219:"7b3388c5",55270:"1acbe180",55319:"618b84ef",55333:"9ae0af9f",55408:"6d3744bb",55424:"af992987",55559:"8e40a65f",55593:"a7973d5a",55689:"36bb38e9",55705:"138e67e4",55808:"06dba648",55809:"56376c93",55838:"b8c8be29",55894:"25d2a069",55919:"8aa2fcff",55970:"4f73d880",56156:"3f96f959",56322:"3262a2f5",56408:"fd880ad6",56416:"7101161a",56428:"86c68e3d",56445:"517a6efc",56451:"4d7503d3",56464:"475ddf72",56466:"b2cfddf1",56564:"d4bf4b5a",56570:"5eaec2c9",56650:"f313a82c",56669:"0efc406b",56828:"4e81c48e",56945:"5e797937",57100:"ae6fccdb",57135:"7ba605c7",57572:"e2833505",57682:"ac524e79",57834:"d64418bf",57909:"f6da0534",57950:"853aad93",57965:"b0f4752e",58028:"6b8c6e92",58126:"3dfaf92b",58157:"e8780874",58200:"4084a0d2",58213:"de795cee",58232:"eef85b41",58258:"6e9e7da5",58331:"45efb036",58363:"b08e6fd8",58510:"821dce8b",58682:"868c59c1",58724:"e980bfab",58817:"8c81d4b1",58881:"590fe42d",58983:"7f2b816c",59178:"14be3d02",59244:"8c2e6727",59330:"e916fc52",59496:"cdd4e3f0",59513:"15770add",59754:"66494347",59805:"c2a87ab1",59851:"97b28733",59953:"de28e96e",60103:"2fb758e0",60141:"4f1150eb",60247:"326a97e1",60270:"2ac63345",60286:"8cc7edc7",60351:"09de660c",60410:"d88eb93c",60680:"95d3faaa",60728:"08a5ab73",60806:"f135686d",60857:"f0e049cd",60874:"2548f5e5",60908:"c86d871d",60946:"7c4f02d8",60955:"1a297150",60992:"59d809ff",61032:"e0cb77f5",61176:"2549e033",61236:"16a62667",61346:"7e185b3a",61374:"d3c1a4fe",61380:"7890cc65",61515:"9cdfb8c3",61925:"d09b6b40",62039:"61474b2d",62201:"101b7008",62257:"e053db0d",62557:"7332ecd5",62661:"68ef1759",62714:"67a43a2b",62826:"f6d3c175",62934:"729c0f86",63115:"accf606c",63446:"8cf5de12",63733:"a6e22173",63833:"0c9604fb",63978:"12d44b5e",64039:"9baacde1",64070:"3bb14ef7",64073:"a67fb928",64195:"c4f5d8e4",64397:"a43a81e0",64525:"b196f212",64598:"1a44db19",65241:"1d7f05a3",65360:"05cf0320",65544:"e3874c12",65701:"9863d968",65757:"7563de56",65938:"ca213633",65962:"41badbb5",66078:"42a3ef15",66082:"eeead8f6",66115:"abdaff06",66140:"e4de30c0",66152:"dceb5a04",66261:"0cf75f61",66292:"357d2506",66405:"b24d9bb6",66485:"f5d38d41",66701:"3a3f3686",66773:"41b14717",66795:"087b7d76",66837:"edaa9a97",66872:"943dd7cb",66939:"4a70ef18",66976:"a27e6552",67083:"b4a9e2bf",67269:"38eee5c4",67300:"5d515b10",67450:"ec0c998e",67469:"ddd9a697",67575:"c737572b",67610:"02db2b77",67661:"1b274068",67859:"a3929b5f",67953:"2c2b467e",68098:"5ac697d4",68140:"fdd518cf",68226:"345c2f79",68236:"704c7051",68238:"21401b7a",68282:"e7e29711",68311:"6a0d7dd4",68399:"f1d9f180",68570:"7a63ecef",68675:"ba227fd4",68700:"75ef737d",68742:"6137920c",68819:"9714922d",68831:"8c1ce502",68986:"ca006c66",69057:"8f2b33cd",69173:"c3592a68",69188:"cfc2f36a",69241:"c57040ca",69324:"68381642",69392:"d771e5a2",69412:"9e0309bf",69478:"d6c2ba00",69497:"fa11d8ca",69500:"6de3d5b3",69505:"7c6c7a0a",69567:"dc123d29",69570:"3493d660",69628:"12e59f4a",69654:"3f78ddfa",69838:"091cab81",69965:"700c0943",69971:"0ade90c0",70020:"9d97f7b6",70164:"fb71e943",70178:"801550f5",70369:"f73e1de7",70384:"12b28870",70406:"eeda504f",70426:"23d8a97e",70439:"3e3c20b5",70471:"925bf856",70483:"6de08607",70738:"3640f479",70843:"eca1dea2",70876:"db682b59",70984:"4d79d356",71008:"ef80f5d7",71051:"1ed4e501",71078:"e758129e",71115:"cdc8a01e",71134:"a8687ac8",71229:"2736e981",71270:"e26f611b",71292:"7dbd846d",71499:"94041cd4",71553:"929fe6ef",71592:"1821187d",71609:"c9fc4253",71742:"43816d14",71922:"cf645fbf",72177:"f156e6fd",72195:"535592ec",72350:"6a5926c0",72436:"30c7ae5a",72456:"0cb02a81",72508:"6ad22d2d",72526:"da1cd4ff",72647:"9b9dc0e1",72728:"ff0316c2",72830:"9c354e09",72899:"51d1e75a",72942:"51fb9cc7",73016:"71b28fa1",73183:"69f236bd",73206:"4fb4e792",73237:"4885913a",73292:"6127a584",73333:"f068a30d",73349:"787d1332",73451:"fecf6185",73684:"ed353322",73772:"c58d17fc",73778:"d5499c5d",73943:"1a7fe871",74120:"432a68e7",74343:"12bf709d",74410:"461c5b22",74422:"42a13e6c",74440:"1a49fe29",74491:"bff0709d",74531:"2d554375",74571:"578f8908",74617:"4976484d",74647:"e264076a",74834:"9aabffe1",74867:"f78f0390",74874:"90487a84",75073:"2781e23a",75110:"b29e94ce",75157:"3760029d",75216:"91918b05",75248:"49d40500",75283:"53331f41",75325:"f115b6dd",75367:"00b6ea12",75593:"a3f10777",75622:"9e461bb0",75706:"95bb95fe",75728:"7e4d0154",75841:"d0603a07",75869:"3f42c85e",76050:"06a38139",76071:"a9bd4440",76232:"1e64aab5",76336:"bba11647",76458:"e94d0088",76468:"5d9b0d6a",76982:"39991005",77062:"2547de89",77152:"320ebc57",77194:"dcaae713",77203:"6ed01025",77251:"605b0891",77258:"278d928c",77391:"de8df556",77495:"9cc3267b",77552:"b42b2a17",77819:"09917fe9",77903:"23909da8",77942:"4dfd395e",78024:"c7cd3677",78048:"d90455db",78209:"5530c297",78310:"ce798db4",78350:"65456c03",78408:"49b8fdc8",78445:"00c04a88",78461:"bf4489ea",78685:"717ea6d4",78721:"eb38f5fa",78840:"717f9656",79013:"114e0000",79059:"cdf0b926",79061:"17bfe970",79098:"0b139e7e",79202:"b698f5b8",79239:"e81ab398",79281:"3d512310",79294:"db79922a",79325:"260946d2",79371:"20144648",79434:"169f5904",79454:"5a35eefa",79464:"8ae74b50",79477:"b4bb44c0",79497:"3861ecca",79672:"c23b0ee1",79762:"4a5a3e4f",79815:"b0ab0602",79924:"0296afed",79986:"6b38eaf7",80053:"935f2afb",80176:"02da5ab9",80197:"a2e2213f",80301:"3b6e9377",80604:"cc0cb525",80740:"cbae671d",80806:"0a0bc396",80813:"c935642e",80902:"99056a19",80998:"b75129ac",81031:"9090bfe2",81059:"ab50fe1d",81160:"f71dfec3",81222:"ac923fd4",81264:"5ea6b885",81360:"e595470b",81385:"74683f69",81398:"2092b488",81496:"0199d4ca",81576:"ae7a9ea2",81595:"c8250b16",81711:"9da46a46",81814:"0c2c0374",81858:"cfde41d7",81932:"b4bdd337",81935:"81bc0670",82080:"b29ca04c",82084:"8c833fcf",82186:"e4160942",82335:"8b188aa1",82554:"c29853ab",82606:"9a09606f",82686:"d60a7f72",82706:"8dd98cd6",82732:"0a79c9a2",82811:"487e8214",82938:"98721dc9",83151:"1b602655",83208:"0d01e3af",83298:"580ea038",83436:"ccf671a6",83470:"83b27652",83612:"525fe6fa",83626:"bb898d9a",83817:"dae67a8a",83819:"9a4e11a7",84052:"d5eb11a4",84075:"b5352e4b",84116:"fd5475e9",84145:"30138938",84204:"5dbec22c",84523:"a32085e6",84542:"2b571a06",84840:"2c1292e3",85117:"fbc03c2b",85324:"45f9e45c",85342:"fe60c9cb",85463:"c99c71a3",85607:"6b1867da",85621:"f3cf0483",85645:"a3196274",85656:"8ede17c4",85693:"cbb92f95",85789:"469a9a57",85844:"39100033",85854:"6eeffc01",85981:"c159d2a1",85993:"ea9d8190",86070:"51b5d68d",86100:"1d104e2e",86119:"86ef1cd5",86255:"23636f9a",86291:"45568034",86379:"bc684a49",86417:"81dc996f",86542:"65428859",86817:"ff68b7f6",86993:"1e70be21",87094:"38290d37",87097:"6b1fc6d0",87130:"9cdb1c5b",87197:"5b3fb50e",87257:"531dfa41",87277:"389fb278",87311:"acac7935",87316:"58869656",87329:"250b4dc6",87354:"6a58dac5",87415:"b63db1e6",87477:"02309956",87564:"13da317c",87674:"292ebda1",87822:"66e1c749",87837:"8d1d2f63",87941:"326739da",88033:"1cd20a8e",88083:"55f4c5b3",88136:"97ba5e68",88210:"962fb06e",88211:"3366e05e",88290:"d9b20917",88550:"2cf1bed0",88617:"422866f9",88725:"63600a6b",88757:"5aea82ac",88828:"24ac12d3",88856:"1dfed3a8",88910:"013c1bab",88940:"1d9a061e",88941:"940b5b71",89104:"039d54f1",89105:"3370e507",89187:"9a45f095",89241:"8b30a105",89303:"cad34824",89423:"04037fd3",89782:"5dcbc311",89784:"0a8cb4e2",89802:"b81226b7",89877:"f2d290a0",90074:"9915efaf",90131:"81d00bc5",90136:"75ec37d0",90294:"bae45495",90323:"ffe4f0b4",90466:"4b916891",90515:"f8f6f210",90612:"402bdd59",90688:"d0cd4a88",90773:"ad1c6c85",91006:"1658c756",91131:"fbf58390",91208:"a01fd1dd",91345:"33909044",91464:"f0b7dbe2",91488:"dfa30293",91510:"238efb50",91860:"c1467f4f",92032:"9e828d90",92083:"d3fd3247",92089:"93d5903e",92113:"e16442cf",92306:"01005a98",92670:"b45ad73f",92678:"6dadabbe",92845:"801384bf",92926:"18bb110a",92998:"d1ebdf95",93167:"583c7938",93245:"510cb4fc",93312:"eec26f27",93337:"f6dc595b",93346:"e7d7dd9f",93375:"3d37559d",93476:"4bdc1132",93484:"cf9d5ce2",93565:"6ba5ca07",93629:"e2559165",93663:"f65152a8",93678:"c99653b5",93742:"2ac0b4bc",93845:"0b82315a",93852:"36cc6e86",93924:"0a196f91",94033:"60d0d69b",94121:"d76382b0",94300:"e21e838c",94368:"a94703ab",94397:"50e6032a",94488:"c9c6f808",94749:"784fecab",94816:"38d612cd",95014:"64c7b138",95108:"56a727d7",95163:"f14e55c8",95192:"35d1b9ed",95266:"d9791473",95411:"4bac2214",95567:"0420286f",95852:"d0ef1249",95942:"20b60419",96027:"2ed989b5",96077:"19d845e4",96149:"08e13917",96216:"ab4a0273",96261:"5e351f3a",96266:"a5c5fcf6",96295:"8fc7f1ee",96501:"82c71751",96637:"b6220ba5",96652:"1f8182e7",96702:"813ca450",96781:"b449eac0",96787:"7f091097",96828:"0147fdcc",96840:"51d9b128",96956:"b26eaa28",97257:"8c82037f",97278:"d837d0de",97421:"ea73ae50",97485:"e52f87df",97664:"d29b4af3",97677:"e95a72c7",97688:"49c13a5f",97732:"428d4f34",97766:"ce6049ec",97819:"7b907fd6",97920:"1a4e3797",97953:"4ffe34ca",98110:"4b1b6b6d",98117:"3c8791ea",98364:"e3bb5330",98418:"a6d3b32b",98494:"34b1f086",98550:"a7719d3c",98633:"7960f2a0",98661:"e6b85556",99003:"5fbe96f6",99198:"9dc99f39",99311:"4e1aad47",99878:"ed655da3",99952:"319411a6"}[e]||e)+"."+{470:"8f65e6a2",486:"3ab3ef26",506:"5831c138",545:"2e53585c",620:"fb59e80b",760:"cf4f5094",803:"0cc8c050",807:"d40cd0da",815:"2d07b14e",933:"a03e6fc4",1025:"4ccad4ec",1076:"1ec3ee33",1117:"c19a9f4d",1249:"b9522133",1251:"3e742b51",1293:"53f286ef",1447:"08e23959",1627:"1b08abbf",1707:"dfb03dde",1710:"cea6a1bf",2021:"d5acfb48",2071:"27b7194d",2084:"109480b2",2107:"d3ae8006",2116:"ec619ddd",2421:"f8b6c09d",2496:"b50b7fca",2517:"c0dc08de",2531:"ba7c946c",2569:"2c17f17a",2637:"2c36d1e2",2699:"d698f7a3",2730:"8f06d256",2890:"50299efb",2910:"ffef7660",2946:"59031a17",3042:"8b0946df",3142:"6a7d57ed",3173:"8ebd70bc",3222:"baa201ec",3267:"7cee8058",3279:"75a3c925",3389:"c64e9141",3543:"88af4235",3678:"5131e42e",3700:"591b0a4f",3919:"1306ed21",4146:"3785b9a0",4156:"922106e7",4394:"ba199ad7",4395:"937a38df",4486:"dff0f9a1",4487:"0b2ddae4",4567:"ac5039c2",4630:"9efd636b",4729:"24f27a43",4730:"fb61181e",4802:"d8d34d4e",4805:"1cd2da06",5103:"2764e5a7",5108:"402742f8",5117:"ab541c46",5135:"ad92a2de",5193:"f3407e3e",5243:"c432c485",5358:"9eafc10a",5437:"bcf60907",5559:"a73923f4",5569:"c6eae306",5801:"c20dff35",5810:"434ef014",5861:"be1b32c1",5881:"43909da4",5917:"739aae61",6115:"411504ba",6189:"6966da3c",6356:"18b3a668",6496:"6aec4015",6686:"975ecda5",6794:"212133a9",6839:"621bb6dd",6876:"30a7f3bb",7069:"1a35b053",7104:"41de6788",7135:"776b2f54",7259:"5afa32e1",7305:"0143e711",7432:"b9624cac",7440:"8d4a8d02",7526:"1cc91b96",7736:"a6f8c084",7776:"e085dcfc",7796:"d841b946",7814:"bc6ab13a",7861:"eb88279e",7862:"4adba786",7874:"7ebaec53",7923:"5f193be5",8018:"92edbcd9",8247:"fd63f489",8352:"c9edd3d8",8384:"f8c29671",8589:"2327d1f2",8730:"2ed3f840",9480:"78ef5eee",9489:"5a021b21",9502:"4b2c2544",9522:"79c8aaa6",9573:"22710174",9621:"ce994c84",9718:"95a39732",9752:"d5695715",9805:"753dab24",9881:"955d70f5",10029:"9f2df76a",10042:"909809c6",10136:"f10a7744",10218:"8baafa3d",10262:"0fdf5f09",10439:"cb03a942",10514:"e781b591",10527:"a1f16031",10572:"55429622",10677:"183fee23",10740:"b5a02d8e",10794:"64e6d693",10914:"a536c1ce",10944:"fd6f4938",10955:"3f3a5123",11009:"a9cfc0a5",11046:"2e6b1fdd",11092:"aa01648c",11125:"451dfd1f",11157:"db9daee2",11278:"e9f3e093",11283:"8528301b",11319:"32e23e74",11352:"2059f787",11427:"6c223b9e",11450:"488d7e99",11527:"8d17967a",11590:"c47da026",11676:"4b8e354b",11715:"c18fffd5",11806:"4ceea8f8",11820:"38bae508",11828:"6532209d",11888:"843f9729",12032:"5ed2df7c",12037:"ada03ea7",12081:"43ccfddf",12100:"b3cd38e6",12101:"19473405",12152:"1c16a482",12228:"02016874",12265:"9617609d",12544:"1496ef26",12595:"15df563c",12700:"b0dc0e25",12811:"df240f3f",12835:"8e9da3dc",12862:"08e03042",12871:"85afea83",12878:"725e054c",13034:"744be122",13062:"4218bf73",13085:"5158e054",13145:"588374ca",13180:"3b788d1b",13190:"d31ecc02",13282:"be6d1f23",13335:"7f37bda9",13343:"131c8636",13445:"6b079458",13480:"519bfa66",13489:"0021aa8e",13585:"d71e1a9e",13727:"9864f066",13757:"bcb40f79",13983:"779477c6",13985:"6ffbf1d2",14231:"6c65bfd7",14272:"f4407bff",14317:"01fc8683",14398:"008deada",14567:"1366a413",14580:"3f5dabef",14734:"d0b6b4c3",14744:"3a4ac248",14774:"2f1f6f59",14775:"c8534055",14895:"d9912c1d",14968:"87dba8ec",15009:"5d53176a",15033:"21f14829",15129:"e9aaf3ae",15297:"3684e8fe",15313:"82a641ee",15453:"b3b6e6ad",15512:"f509ebd7",15556:"8a7f1639",15585:"8d7bf19e",16088:"74c37452",16134:"49fc8847",16582:"e95bb5d9",16667:"5710eeb4",16699:"d88ac2ae",16768:"5459c935",16795:"cc293c53",16817:"c51c165a",16824:"f0ac4908",16971:"38cd707e",17101:"f841ebe5",17239:"4bce8287",17289:"babd90bb",17292:"8ea34858",17315:"5a2a8d11",17389:"c58453c4",17392:"d4d64c00",17465:"6221db94",17469:"e29d901b",17833:"4cdb5bae",17918:"01d6a017",18268:"7c81ee93",18320:"f31d31eb",18420:"94be7e96",18485:"ea2b8cf1",18518:"b30cc2fd",18630:"1b0660a3",18690:"b2e77be4",18768:"ec7b5b62",18809:"e08bfd2e",18848:"b85d0bb1",18876:"8c104799",18909:"ad5212ed",18910:"f3f58ad0",19051:"39190994",19071:"0df0f9dd",19148:"6e58f3a1",19161:"03bf2549",19376:"3fbb16df",19745:"5ab13957",19769:"30723925",19854:"99cee511",20394:"b7717ee8",20467:"bddf5ad4",20568:"1f028f57",20589:"f9b29949",20724:"4e1d1c7a",20792:"22da78e1",20827:"7420f186",20839:"d26a13aa",20919:"b0d58ddc",20925:"f5193666",20992:"859e3677",21111:"bf8444c5",21136:"020a16e6",21162:"257ccfcb",21250:"99bac518",21268:"e60c02d9",21287:"bc8055ff",21496:"996a62a8",21740:"8c48a638",21875:"ce04f1e7",21899:"281b6723",21947:"484c7143",21954:"042a5c7b",21958:"3e88642a",21980:"18b2876f",22e3:"e0c2b227",22107:"1a318e37",22183:"1792d276",22372:"228e8b6f",22533:"bdd69007",22567:"b798cd1f",22632:"3180bb3e",22734:"2d5c66f8",22754:"d4392509",22799:"7a13813a",22847:"50e0d4dd",23163:"78edf21e",23645:"47abf48a",23653:"fa0ab913",23731:"300ede2d",23757:"a5d59f54",23927:"9eeb158f",23986:"f530438e",24140:"c43ca2a7",24168:"ac200ffe",24193:"3e502504",24261:"87f6578c",24522:"2ae6fd77",24747:"98c302e3",24762:"38b37413",24934:"b0072994",25195:"6b56b699",25205:"235475c2",25228:"0bce0a4a",25348:"430c625a",25464:"b96edac4",25476:"42851f41",25480:"7d3c2bed",25483:"74d21805",25609:"5ba5c981",25684:"266ae5b1",25700:"4ddcd9d4",25807:"2ea03ad0",26023:"3ee3d87f",26040:"2a25bfaa",26050:"7eefc8d1",26310:"639897f7",26323:"b059efea",26478:"9b9f2699",26573:"1c084687",26581:"b1e18600",26682:"42502b6c",26842:"6e156151",26954:"2112e6f7",27039:"b642f8f5",27066:"ea8d23b6",27089:"6e498e5f",27173:"c89a1046",27308:"03296717",27334:"26bf1e64",27416:"9bafe153",27420:"9618fcf5",27493:"d1f7f2e8",27563:"186f3efa",27571:"567c3360",27594:"df7be05b",27648:"e5321eb6",27762:"8b03ba5b",27764:"7b979758",27768:"3af5adf3",27775:"73c7534d",27847:"228816a0",27895:"996d161f",27918:"ee220a21",28094:"c6c7b932",28477:"2ca3a845",28547:"72378d0e",28548:"d9f7236d",28747:"46c9dfd7",28752:"433f5062",28802:"b8bbf1c2",28985:"b7d2e9ac",29148:"c2d26965",29250:"37cfec06",29277:"9e7e97df",29511:"4df58491",29578:"18bda1b7",29661:"29e4bf8e",29766:"a78a5b96",29961:"d3ae3c54",30095:"a0059c2e",30228:"4d2754d7",30423:"aecc93c1",30540:"bb140d83",30600:"d0f801c0",30877:"f8f0824f",30981:"32c6c1d8",30992:"50232cf2",31061:"7b20dc4a",31071:"95d401e6",31483:"d1cd6234",31580:"8c430401",31590:"42f88798",31693:"92605f54",31831:"1b0fa079",31852:"c0d4882f",32145:"4c22cbfa",32156:"e272a019",32215:"efe6d188",32398:"05810765",32403:"98626cd1",32470:"ea3615e0",32536:"b6121283",32546:"cf4a7e41",32580:"5b772caf",32669:"bada779a",32681:"f37ee518",32940:"615315cb",33042:"9a3c7fac",33059:"dcca1792",33128:"d182c70f",33130:"500e1cf7",33183:"5c0c2d1a",33465:"18c382f0",33499:"2474b355",33580:"d4b369ab",33630:"78da50d6",33752:"68b73dc7",33760:"395c3564",34099:"a6413d38",34130:"f63dc581",34176:"598afca2",34411:"1bffa403",34496:"87280a3d",34508:"ec09cd8e",34587:"e905bb52",34670:"581a749e",34900:"24e42d12",34916:"71c6aa39",34969:"345b8731",35050:"c45be3e2",35203:"d6db2be9",35228:"a7b8db6e",35483:"1d9fc292",35561:"a985c2fd",35693:"03370467",35834:"f310b4b2",35853:"9f2f45a4",35894:"a01605bf",35908:"16bea4c9",36133:"a2a315e1",36378:"0d79c96c",36548:"12c0d992",36562:"14a434ad",36657:"20084b9e",36687:"09c7fd6a",36713:"f31ac270",36857:"0c7f9487",36968:"4c1f9c6f",36994:"17583fe6",37057:"ccea177a",37131:"42a0d204",37168:"0887579e",37252:"dd958013",37350:"bf7fed40",37401:"c5889b51",37442:"96f15aca",37503:"2fe655f4",37845:"bb08e28c",37955:"e3e04a2d",37959:"6d55e2e4",38007:"144658d8",38028:"2d228248",38050:"00c53bfc",38293:"c3ac277a",38329:"c5aafdb0",38360:"ec1b0fb2",38434:"242b0706",38681:"d13e0cad",38694:"59362b2e",38862:"a23de232",39011:"f0fdaf0b",39097:"f187a578",39112:"7142865a",39166:"bb55ee82",39243:"7c894ef3",39258:"c60176fc",39580:"f8d9560d",39784:"2991ed9a",39903:"cd58b16c",39944:"1e4c8dbc",40073:"25539be3",40109:"63e93236",40269:"4d4d13a0",40337:"77f1b071",40455:"bb7af34e",40559:"a30e75cc",40567:"07495893",40657:"9bc2f1bd",40781:"b677665b",40895:"db9236bb",41179:"ce2c7c18",41202:"91bd076c",41219:"e15ee349",41282:"f241ba79",41353:"dd4d4328",41402:"671bb84e",41437:"a43699dc",41452:"ac8136fb",41571:"3b0817df",41583:"8c4575a3",41806:"bd3e3835",41988:"b0e44ffa",42202:"540840ac",42247:"b10de62b",42265:"9b9c92a3",42309:"b10c1974",42510:"61f97f4d",42694:"743e22e8",42697:"43d60ec2",42799:"45f41047",42816:"ee611b41",42819:"dc98c3b6",42847:"97e3768c",42848:"2cc3ca94",42885:"36a5f21a",43163:"d5cd37ca",43206:"716b7290",43321:"f8f1369f",43333:"9725ef2d",43469:"2ea9f07d",43579:"10949c14",43605:"1b9a7660",43625:"9cff7b4d",43671:"2c0117d0",43780:"5297db8e",43811:"82ad57df",43875:"058d5ecb",43986:"3a3dec6c",44147:"660e05f0",44255:"3808bdd5",44356:"8fa5ddc0",44498:"da9ca1f1",44531:"e2487ded",44568:"4d85c0a3",44577:"96f8856c",44969:"f386e6f3",44970:"55af6bf2",45030:"5a20668d",45173:"6fa94d8f",45315:"2d03f35d",45360:"fd0618d1",45374:"e4d45a9d",45429:"7f6c77f6",45606:"ee4fd7c0",45620:"ecd5c96e",45754:"84d3900e",45916:"a6743ed7",46095:"5e9c255d",46126:"1489379f",46140:"847d9b9e",46147:"e3709134",46188:"5be380dc",46251:"440674c0",46288:"9569b5e7",46330:"36359301",46364:"ff5918e3",46411:"4703f4cb",46442:"2bd1901a",46673:"1051edeb",46691:"c52d15fe",46695:"36ab930b",46752:"698cdebc",46820:"e758140c",46867:"ba10ba53",46926:"d0e4f58e",47009:"b715f31b",47047:"2b0f7c6d",47209:"90de5ba5",47247:"a2bb1fb7",47451:"0d023c58",47604:"818c6ad6",47636:"b20b61b8",47651:"0677a30c",47787:"717ca54a",47864:"b818ab09",47964:"72aec403",48013:"2c8334d8",48065:"cbb65725",48192:"a2cd2103",48228:"a7695af5",48393:"fe8a9f94",48445:"ac0fa306",48464:"9f53aff5",48572:"eb21d0eb",48574:"5c94a3ae",48665:"dd464f38",48682:"592fdfec",48738:"902372cc",48837:"17738df6",48869:"f0c4960a",48926:"980e6676",49071:"eddfef70",49090:"b7ca9459",49115:"fc3d2be7",49214:"e9fed9f3",49250:"f8729ce2",49466:"8d1cf899",49637:"aae5a5f6",49697:"2337de0c",49831:"a21f6a20",50250:"9fc011c4",50350:"86a175fa",50788:"282de5aa",50901:"25d9e83f",50907:"686d5ffa",50971:"ceac7b51",51134:"fabecb7c",51217:"a0ff3c71",51257:"355a3a76",51316:"edfd6d3f",51452:"3abcd7fc",51475:"9b6e6e79",51509:"a807fbdb",51566:"d873102a",51575:"7b64ff49",51644:"179e3fd0",51675:"a81358e2",51698:"2ecd5667",51712:"f38531b5",51796:"0be78daf",51800:"91d2ef3c",51888:"3cc4a1ae",51977:"8997c2c9",52094:"0d9565f1",52154:"ca5adb94",52199:"711f9cf7",52274:"decfe261",52347:"2244bd47",52357:"74e156b5",52368:"4847243f",52660:"65299cc7",52696:"6466d6bd",52961:"13564f99",53164:"389038db",53315:"d42d70e6",53431:"b459e24a",53725:"7c8aabbc",53958:"780b0436",53975:"3a942b5f",54111:"caff607f",54146:"f1cc7fac",54585:"30a9777f",54586:"26b89b5e",54690:"c95b7ebe",54777:"f1f4b78b",54986:"a7ca3059",55078:"44c0ee0f",55087:"1707b597",55172:"1e2c70f1",55219:"8df6afb0",55270:"9a0012ba",55319:"1a561750",55333:"69c9d0f0",55408:"8c9affef",55424:"edee52ec",55559:"3f115dec",55593:"927cbeb4",55689:"f43bf242",55705:"a61d1f15",55808:"3c171a96",55809:"ac0192b3",55838:"dffa1f9f",55894:"2ac5ce0e",55919:"5999269c",55970:"cb72f488",56156:"b65213ef",56322:"9f020fbb",56408:"70b19cde",56416:"7df4a95a",56428:"abed0bb1",56445:"d3bef2d0",56451:"d6e15d13",56464:"897effc3",56466:"806d85bd",56564:"4d26919c",56570:"263ad4f6",56650:"87979acf",56669:"553452b3",56828:"e7e249a3",56945:"c619fb2b",57100:"b5164f1d",57135:"d1770a18",57572:"6f8d39b4",57682:"bab44fd0",57834:"0e39203c",57909:"58206e9c",57950:"31d9cc6f",57965:"e47e1f2a",58028:"eb0b0f04",58126:"93e9a1fe",58157:"f6cf83cb",58200:"3c01047e",58213:"24e45dff",58232:"987bb312",58258:"93bc3bdb",58331:"75f2478b",58363:"212af7ab",58510:"c5b685ec",58682:"fd7ee828",58724:"d8204d8d",58817:"e4364841",58881:"cdfac3de",58983:"d7e701d6",59178:"a6c60650",59244:"487e8f05",59330:"0ecf578a",59496:"1f9963a4",59513:"42640030",59754:"b2b332b8",59805:"e3092078",59851:"94ce18e3",59953:"542bd6f5",60103:"58324b15",60141:"0cb6107d",60247:"1735ee2f",60270:"810a20cb",60286:"ee4fc436",60351:"85657ad4",60410:"bf6d89d5",60680:"adfbdbec",60728:"7958c67b",60806:"35b21b8b",60857:"2a3a0814",60874:"ee9db06f",60908:"8dd4118c",60946:"b32636a7",60955:"56530211",60992:"fb0a13bd",61032:"97ec017a",61176:"1d7314d8",61236:"eb76177f",61346:"e892e5b1",61374:"bfce3407",61380:"c4a8fd99",61515:"85974f7a",61925:"eec020b9",62039:"1564ad66",62201:"0c4a9481",62257:"a295f37d",62557:"00782afd",62661:"3214ba54",62714:"14435b55",62826:"9fa40605",62934:"976c7543",63115:"1b696a2a",63446:"0f10e134",63733:"3309ce0f",63833:"a90284ae",63978:"6d5d4a92",64039:"25f56737",64070:"5910dad2",64073:"21b7035c",64195:"20910a22",64397:"91692816",64525:"dda05be9",64598:"e9e59a48",65241:"428b4769",65360:"60226f0f",65544:"bde4e859",65701:"f9d72d1c",65757:"e0eec3de",65938:"81fb3ce7",65962:"b4e8013c",66078:"37af7839",66082:"fa29a7e4",66115:"b6b8181e",66140:"43a846a6",66152:"2631c04b",66261:"27604d5e",66292:"e05abf82",66405:"bae77bad",66485:"4f3d585e",66701:"9fe891f4",66773:"81a5bfda",66795:"029194ba",66837:"6198e0cd",66872:"aed50745",66939:"23f15a84",66976:"831369e2",67083:"077aafc6",67269:"bca5f59d",67300:"20f6828a",67450:"fb53675f",67469:"ba40913e",67575:"e5ed3371",67610:"928f51ad",67661:"1fad9fb5",67859:"6c7d80ae",67953:"392d5943",68098:"43c6aea0",68140:"227f88b9",68226:"fb58bb81",68236:"95de5b23",68238:"42e72d60",68282:"581019f4",68311:"07091e96",68399:"23c6dcd5",68570:"55be567e",68675:"4e782917",68700:"153ca122",68742:"52fc4be7",68819:"ece7f9f6",68831:"1c2917f8",68986:"cec5d9e6",69057:"c25a4b41",69173:"b14a5200",69188:"c4000b0a",69241:"2722c056",69324:"27c863a2",69392:"2a1dd917",69412:"318f54c6",69478:"5cd20520",69497:"d6a3d473",69500:"4e71af30",69505:"360c3ef6",69567:"1f741e1b",69570:"93cbbe0e",69628:"13bd3613",69654:"80bc3d21",69838:"ea56422c",69965:"704e0ad3",69971:"1a793d8b",70020:"14b20044",70164:"ff446e0c",70178:"4251f3ee",70369:"050dc1f1",70384:"36b05abc",70406:"e40d1f6d",70426:"418cda98",70439:"b489e21d",70471:"65485603",70483:"d55bb083",70738:"e2893d51",70843:"51bceb5d",70876:"71e5218c",70984:"a8613418",71008:"03419a45",71051:"463543dc",71078:"0bfd3165",71115:"bd8f2171",71134:"efee0e89",71229:"abbea7d6",71270:"5cc32ea6",71292:"f21b4574",71499:"b61728d9",71553:"9852e607",71592:"964116a1",71609:"756d9a6a",71742:"34d273a4",71922:"80bde556",72177:"01a3acac",72195:"9d932574",72350:"816f989c",72436:"d70fcfe1",72456:"3e9251ab",72508:"92363721",72526:"a350b528",72647:"6b7106a0",72728:"96aea41c",72830:"b95db2d6",72899:"0e554088",72942:"78437867",73016:"14719d46",73183:"c607599b",73206:"942a6998",73237:"f5306017",73292:"1f9bf758",73333:"5311776d",73349:"8fb8ef46",73451:"9e49e011",73684:"4710977f",73772:"1b6110a4",73778:"a506aef6",73943:"a71669c1",74120:"717abe83",74343:"b05832f5",74410:"6fbdf447",74422:"bd285ae2",74440:"185be2f5",74491:"b3d5c769",74531:"7b386cff",74571:"56ae5af2",74617:"864bbefc",74647:"28753990",74834:"dd36193d",74867:"215bbe16",74874:"57a0021a",75073:"c783d585",75110:"72759704",75157:"b4b360a2",75216:"66500e5c",75248:"db6a7c9a",75283:"88d0dff2",75325:"624f0328",75367:"562e17bb",75593:"20623e02",75622:"1ad411ec",75706:"b29d5905",75728:"4bc4a44f",75841:"10b0e0b8",75869:"1a04b54b",76050:"d5037134",76071:"c3928c01",76232:"e51e5001",76336:"66188bd3",76458:"fd1cd4c8",76468:"c017e5c5",76982:"e34b7742",77062:"3d98ee5d",77152:"5e5d0f37",77194:"56d4a114",77203:"59263e0d",77251:"f864dc2f",77258:"db02c5fb",77391:"297c4307",77495:"801731d9",77552:"134a7efc",77819:"53842937",77903:"928737e4",77942:"11f27923",78024:"2ac27916",78048:"995dc432",78209:"003d882a",78310:"0aa963d4",78350:"51075b74",78408:"a65ccfda",78445:"c8f8dcc7",78461:"a2b83d22",78685:"02285b27",78721:"328534cb",78840:"48801fea",79013:"6199c736",79059:"ab78f3ed",79061:"d1d1a158",79098:"3cd68cbb",79202:"5ddc3f10",79239:"a27bdd87",79281:"d6f519fc",79294:"03311247",79325:"0e20a705",79371:"afd5b6da",79434:"506813df",79454:"21d05c44",79464:"9795c473",79477:"106c0917",79497:"e7f6dae2",79672:"9161d436",79762:"0eba82b3",79815:"bb399110",79924:"ab28eb90",79986:"a091e49b",80053:"42487ea9",80176:"532c3b64",80197:"50d891d7",80301:"4e058efd",80604:"323a496a",80740:"1cbf48e7",80806:"5be95ff2",80813:"d04176d7",80902:"faf38152",80998:"23f10f6b",81031:"db3dc1cc",81059:"836b67db",81160:"0f795b24",81222:"6142678a",81264:"7454f33c",81360:"250b8066",81385:"a1129d91",81398:"332094dc",81496:"2c21cc4b",81576:"94d64afa",81595:"9699ebf0",81711:"39bae65d",81814:"f27be190",81858:"44d4fb06",81932:"fa52e22a",81935:"4ef86bf4",82080:"201f0415",82084:"b0f85a56",82186:"573826cd",82335:"afbcf658",82554:"8f8e83e8",82606:"78f49237",82686:"9afe2914",82706:"d4dd99b0",82732:"9bc9266f",82811:"42a9cde3",82938:"6bdbdf03",83151:"d118bdb6",83208:"2a45b05b",83298:"e92501fe",83436:"3eaec56d",83470:"5559542e",83612:"6d5254a6",83626:"8914cf85",83817:"6729aa3d",83819:"c743430b",84052:"ca59c7f8",84075:"96ea75a2",84116:"53038ca6",84145:"d256e744",84204:"d94d2a8a",84523:"f7fff689",84542:"f5139110",84840:"4e04bccf",85117:"fc35334b",85324:"88b7a541",85342:"3fe49aee",85463:"8a937205",85607:"2a0b33c5",85621:"cb00aa86",85645:"cccaeda6",85656:"fd96b1fa",85693:"cf8223cb",85789:"53662be4",85844:"2c3494b8",85854:"341c94ed",85981:"379c524e",85993:"cea956c4",86070:"74223607",86100:"d1d0b9d8",86119:"42e5a022",86255:"4a34fac4",86291:"44a593df",86379:"1cfbf6eb",86417:"8b5553bb",86542:"5d1601de",86817:"144a2345",86993:"527b8e9b",87094:"96e007ca",87097:"4f903266",87130:"eb5cc196",87197:"16714850",87257:"d335f4ca",87277:"e638b925",87311:"4bfabe3d",87316:"7099c7da",87329:"8af0af7d",87354:"bcd23d98",87415:"6eaecd4e",87477:"6a2c372f",87564:"e65c81bb",87674:"12457c5d",87822:"582e97dc",87837:"92f2c0ac",87941:"d869ea1b",88033:"36eab93f",88083:"79fa958f",88136:"4901932e",88210:"2b0bbbd4",88211:"c92359e1",88290:"333a991f",88550:"251a520d",88617:"a7daec2b",88725:"c79e6ee1",88757:"d1b1cebc",88828:"ac700e14",88856:"e7bc2005",88910:"406d2e32",88940:"4f11b331",88941:"09039e83",89104:"e67b60c4",89105:"736478d5",89127:"701b08aa",89187:"8ab32f00",89241:"913f55c3",89303:"e74508f0",89423:"695c0782",89782:"39c287d2",89784:"62915c76",89802:"bfcd3936",89877:"1b132345",90074:"af1214ab",90131:"6dfb4127",90136:"e4f7ed0f",90294:"bf691470",90323:"4e76d5ad",90466:"6c80a01d",90515:"4878041b",90612:"3f044ac5",90688:"ccfe58a7",90773:"b152a7e2",91006:"1e68dee2",91131:"9b7430d9",91208:"2a4e9627",91345:"6b14d37a",91464:"66dcba55",91488:"d52ac397",91510:"b4b09124",91860:"6e7c736d",92032:"23a07db8",92083:"d776badd",92089:"5181333f",92113:"cb63d867",92306:"cd2dfdf8",92670:"7f0667a4",92678:"db03c531",92845:"8fea582b",92926:"ab5f38c8",92998:"64ed3590",93041:"a01d32c1",93167:"c746ea3d",93245:"484224fc",93312:"23abd341",93337:"8d000f18",93346:"c2d769bc",93375:"579ec2ff",93476:"eab65d40",93484:"223f18d2",93565:"e99f8a71",93629:"d0f68e67",93663:"a954333c",93678:"23d74050",93742:"a47b0969",93845:"e372616d",93852:"d7ce269f",93924:"15cb3cb2",94033:"73aec491",94121:"d2722006",94300:"db85ac62",94368:"82830257",94397:"9c0d800e",94488:"96dfb403",94749:"8673198f",94816:"9c4e980f",95014:"efd4b95a",95108:"39d114bc",95163:"c77a353a",95192:"4474b573",95266:"710ff32c",95411:"17a2ec38",95567:"738f813a",95852:"685301c9",95942:"3ca2e295",96027:"4531bbd7",96077:"f8dee54a",96149:"fe5c5612",96216:"7a0af1a0",96261:"7db636d7",96266:"3386d6f5",96295:"9f8b7f1a",96501:"7a72a396",96637:"dc6307d8",96652:"3544fd1a",96702:"2623f947",96781:"66273d27",96787:"b9df50d5",96828:"96f62c8c",96840:"a032b306",96956:"2a3c2df7",97257:"1ca4eeda",97278:"66c4cfe3",97421:"cc91f5e4",97485:"9e8d4ae8",97664:"7bb3d913",97677:"2229b63b",97688:"5e4733da",97732:"2df8fc6c",97766:"f2123f02",97819:"eb27cfe9",97920:"22b561f0",97953:"43a84993",98110:"c46c9a88",98117:"d94de234",98364:"8f4f4004",98418:"909ca320",98494:"eda7a102",98550:"91898ae7",98633:"70b96ee3",98661:"f81996be",99003:"d0d1d579",99198:"22b3b10e",99311:"afdf7d5f",99878:"fdccc28e",99952:"384abb48"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),d={},c="react-native-website:",r.l=(e,a,b,f)=>{if(d[e])d[e].push(a);else{var t,o;if(void 0!==b)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var c=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((e=>e(b))),a)return a(b)},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=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={13980018:"46752",13989100:"41452",15800944:"27594",17896441:"27918",20144648:"79371",25524074:"9621",30138938:"84145",33909044:"91345",35024544:"27416",37880922:"21980",39100033:"85844",39991005:"76982",41988923:"1627",45568034:"86291",52156499:"3222",58869656:"87316",65428859:"86542",66494347:"59754",68381642:"69324",79448688:"31061",80036715:"16582",85431298:"22799",86316871:"48926",91695048:"13489",95722794:"26954",99403472:"15453",b54696c0:"470","0a35f6eb":"486",fc751a3d:"506","294e92a9":"545",bc2f7794:"620",dcf691c2:"760","17a8dc81":"803",fb25ba24:"807","8f0d6e5b":"815","1404e73e":"933","8c28f592":"1025","186a9ba9":"1076","356a0ac6":"1117","1705a2f5":"1249","423de293":"1251",d1d509cf:"1293",bbc0c093:"1447","902a5db0":"1707",b5a7fd43:"1710",aa88182b:"2021","6b49554e":"2071","3fb280d9":"2084","6aeefb41":"2107","3a31669b":"2116","293e43ee":"2421","7fc91348":"2496",d01173a8:"2517","147dc28e":"2531",db47402c:"2569","1ba86576":"2637","1448e88e":"2699",c8899d24:"2730","45618ae1":"2890",eb5418d6:"2910",b1228550:"2946","18b93cb3":"3042","243b9aa6":"3142",c10d4556:"3173","30bf7e1c":"3267",ba2d52b1:"3279","6f1bcaad":"3389","601330aa":"3543","578ba53f":"3678","6c509596":"3700",f31ddbdd:"3919",c00af2b0:"4146",a2b80c2f:"4156",a2490e07:"4394","5e8e437b":"4395","7a693bfc":"4486","078c5e69":"4487",fd0805d1:"4567","7c812bc0":"4630","2b43cbc0":"4729",d56b8eba:"4730",b6bd4264:"4802","0fc665a3":"4805","8f5764cc":"5103","5887780d":"5108",c759f874:"5117","30fb9325":"5135","9b11a7b5":"5193","332e9e34":"5243","7a423906":"5358","54255f28":"5437",e23b750b:"5559",de7e05af:"5569",f8b1a534:"5801","0667b750":"5810",f7e8b9a1:"5861","362c9549":"5881","3da7314b":"5917",f59ee173:"6115",bbae08e6:"6189",a992a0f8:"6356","0b242e68":"6496",c398a51a:"6686",f4870e22:"6794",b9e9b3a4:"6839","4f61d82b":"6876","37ae9f43":"7069","716c2719":"7104","76e173fc":"7135","2029ef4e":"7259","78406dfc":"7305",d8db4bdd:"7432","0a489978":"7440","061959ba":"7526","713f446b":"7736","28d3cf43":"7776","5f7a6f21":"7796","91786f2d":"7814","8a792504":"7861","36778e0d":"7874","04cee9fd":"7923","7d04e04a":"8018","2c957721":"8247","0181b3db":"8352","9cbfa21b":"8384","3b17f5a4":"8589",e97c1fe7:"8730","3b865f5d":"9480","60eb9b40":"9489","9787e2b5":"9502",bed8702c:"9522","727a66d9":"9573",eb50cd7d:"9718",b2115c5a:"9752",e5a951df:"9805","5221567d":"9881",d480b2d8:"10029",daf96af6:"10042","7374b7af":"10136","52633b27":"10218",d79e8bdf:"10262","1791f58f":"10439",bbdeca34:"10514",b8d0a2d1:"10527",ebf19685:"10572","19aaa7d2":"10677","1ea42534":"10740","0ac6d6a1":"10794",cb7060e2:"10914","93583d2d":"10944","27caae05":"10955","08e1c021":"11009","55b63d4c":"11046",dcddf26d:"11092","2cf74606":"11125","037bf98d":"11157","75ebea5a":"11278","29cd52c0":"11283",a3d50c6d:"11319","5f11e2df":"11352",d4077890:"11427","0bb0f3cf":"11450","33c3be35":"11527","8538b042":"11590",a7da7bfd:"11676",bc26c448:"11715","634e5b87":"11806","04e1afbd":"11820","79c31966":"11828","8585b615":"11888","89a085ba":"12032",e6a6f3dc:"12037",c6a0cc74:"12100","3a0563f8":"12101",a728158d:"12152",eb1e27c5:"12228","42dbec43":"12265","69aee15b":"12544","878ba96b":"12595","7f6ca9e0":"12700","8d3fc5c6":"12811",bf77c5df:"12835","6cdb7f96":"12862",af8a22e6:"12871","4cc410e3":"12878",d5ca4adc:"13034","0d626c57":"13062","1f391b9e":"13085","900a3533":"13145","5bb745c9":"13180","1de587e0":"13190","95a8e207":"13282","3b9f8a02":"13335",c42662d8:"13343","97affa7f":"13445","7a6c553e":"13480",d2174fb9:"13585","9bf717b1":"13727","57589dde":"13757","86bf3c9e":"13983","70ac8688":"13985","694579f7":"14231",b71414c5:"14272","911052af":"14317",a39c2644:"14398","2dca9575":"14567",c0cfec7b:"14580",b7257cf4:"14734","99cd3a09":"14744",f666756e:"14774",e43bbd8d:"14775","4ed22eea":"14895","0044a2c6":"14968","276ccdc6":"15009","9a1f20dc":"15033","012d05d8":"15129","056867f4":"15297","088c6538":"15313","01fb1614":"15512","03d50046":"15556","7d1976ec":"15585","76571efc":"16088",c050f0c1:"16134","4396b59e":"16667","260634c1":"16699",e19eb737:"16768","285b3354":"16795",f667452d:"16817","23b2ec0b":"16824","14d4a842":"16971","36fc15ca":"17101","39d9d3b1":"17239","3560f547":"17289","777c6042":"17292",b2e9258a:"17315","2954fac3":"17389","3163195d":"17392","9c00ca68":"17465",eeccbb9d:"17469","426d37cf":"17833","67574dd0":"17918",ac5ffeb9:"18268","1daeb507":"18320",f38a19d0:"18420","9367275a":"18485",a7bd4aaa:"18518","9eda2b4c":"18630",d301ca6f:"18690","7210b988":"18768",e4cd52a9:"18809",ea65614d:"18848",b6ebe4da:"18876","4d9bd555":"18909","5331b8f3":"18910","80f530aa":"19051",ddd72b6a:"19071","024e8286":"19148","8af066b3":"19161","4576eff5":"19376","1d73041c":"19745","8c1e11f0":"19769","2a7802e5":"19854",c28f96f6:"20394","39ae1dcc":"20467","9006e630":"20568","727350a6":"20589","87ab4d1a":"20724","5dffea44":"20792",a86079f0:"20827","36627b26":"20839","1a9dbb4a":"20919","00c36718":"20925",d435efc2:"20992","442912ac":"21111",f9922edf:"21136","16ee311f":"21162","1aa1a063":"21250","77f249ff":"21268",be7b5d27:"21287","8b56192f":"21496","320b7954":"21740",f9145531:"21875",fb578f06:"21899",e5bf6a34:"21947",c3c09026:"21954",aed1fdfa:"21958",b233694f:"22000","2827f11f":"22107",d4be08e6:"22183",b3fd545e:"22372","17ec9470":"22533","4a860d8c":"22567","116594f6":"22632",a7d1ebe1:"22734","3c68b9d2":"22754",d05ae094:"22847","3d175bf6":"23163",b7799679:"23645",cf01b66e:"23653",cc2c9ee0:"23731","6f5989c4":"23757",c41cb816:"23927","3b6f8471":"23986",bc659752:"24140","2a6f3007":"24168",ab51e9a4:"24193","2f0f6a05":"24261",af62122e:"24522",c20f03e6:"24747","8c1b243a":"24762","4dd33177":"24934",beab48ee:"25195","31dc03fe":"25205","6184db93":"25228","31aad40d":"25348","01b58810":"25464",a770fe3b:"25476","5deadce3":"25480","68b823fd":"25483",a535188c:"25609",b12657f5:"25684",e20ea0b5:"25700","6820c973":"25807","787a5247":"26023","319045b7":"26040","3d33c646":"26050","3a5cd9a6":"26310","4cbc9dd4":"26323",a6efc48a:"26478","34a3a287":"26573",e60b42c6:"26581","5d7ae6cf":"26682","623d7060":"26842","20da3b21":"27039",f59aea7c:"27066","670e8940":"27089","450cda6b":"27173","437c7eac":"27308",d6811676:"27334","2581efca":"27420",e6b2312c:"27493","728d2d7a":"27563",ab6173e5:"27571",c9eff2b3:"27648","9376381b":"27762","3c18d05a":"27764",ffb79954:"27768","9dc2e4c7":"27775",e4de8e8e:"27847","226a5928":"27895","5f226e65":"28094","1c63adb2":"28477","1aab41e5":"28547",db66ee01:"28548","12e81c73":"28747","61182cc0":"28752",a7137c8d:"28802",bfa82433:"28985","22d7af95":"29148","07f65d8b":"29250","347319a3":"29277",f8c20afc:"29511","782d5715":"29578","5e95c892":"29661",e590aaa6:"29766",b87ed5c2:"29961",a135050d:"30095","74f98b1f":"30228","20b2c2b8":"30423","34eb68ef":"30540","174b14fd":"30600",bc22aba8:"30877","30d73f3c":"30981","306d2344":"30992","461fa96b":"31071","397ccaa2":"31483","5ac20d8a":"31580","4f1e6f78":"31590","75b8d183":"31693","7d092cc9":"31831","65fb4e8d":"31852",c544f4a4:"32145","5c50ab3a":"32156","849a2d93":"32215","9ad607d8":"32398",c74f51da:"32403",b7112064:"32470",f1ccaf05:"32536",fe826c2c:"32546",a3c2ef0a:"32580",c1e04fa9:"32669","915f3d1c":"32681","21daa31c":"32940",d5a6e29a:"33042","7510cbdd":"33059",af469e1b:"33128","039b8e3d":"33130",b9ffb51b:"33183","3468f004":"33465",c99ef3c8:"33499","9bdf7f32":"33580","190f221c":"33630","86abb156":"33752","1ac276d7":"33760","56b54d0c":"34099","6e348b42":"34130","78b274e1":"34176",c4d53b4e:"34411","8968fb7b":"34496",d1a6a78e:"34508",bbd0c512:"34587",ad5d8c26:"34900",b44c3773:"34916",dc64daf5:"34969","31e0ef60":"35050",fed8e900:"35203","4ea08adb":"35228","416cb7f4":"35483","8800e804":"35561","8aeb1be7":"35693",d33531c0:"35834","043f5d57":"35853","7b293dc3":"35894","26c5b03c":"35908","64df562a":"36133","42b9625c":"36378","1d59c923":"36562",ad4064bb:"36657","5036f758":"36687","13ee8587":"36713",c8789a67:"36857","985e27df":"36968","3ffb6394":"36994",edeb7ca8:"37057","8136ae62":"37131",d09c12db:"37168",d91f58ea:"37252","686b0bca":"37350","67e697ca":"37401","92871e18":"37442",c4d886ef:"37503","0d680d08":"37845","0091494f":"37955","9dbcff21":"37959",b771fa58:"38007",ec45d43c:"38028","88f8cf7d":"38050","0098ae6f":"38293","27161ea7":"38329",fc04664d:"38360",b8cf7f45:"38434",d1a27f99:"38681",c09a614e:"38694",e467d655:"38862","0b3b7529":"39011",eded264f:"39097","437495c6":"39112","02f0afb6":"39166","240f2433":"39243","9b053948":"39258","623cc3b0":"39580","9b1b20cb":"39784","861560fd":"39903",e2626cf4:"39944",ba1860c7:"40073","32b5ea16":"40109",c8cf90b4:"40269","50dd9b79":"40337",b9361f7a:"40455","8d2e0306":"40559","1076b3a4":"40567","1fc8674b":"40657","8041f9fb":"40781","7600c741":"40895","4b4509e1":"41179",d734f793:"41202","02ed4bab":"41219","32c64886":"41282","1cd2432c":"41353","08f736fd":"41402","98b25e1d":"41437",b2622f06:"41571","71449ed6":"41583","67da8bf2":"41806","117d6e39":"41988",d4d7e15c:"42202",b63e4b40:"42247",b8796a33:"42265","64187b62":"42309","9644b941":"42510","31b01d6d":"42694","28e9e915":"42697",d28adcd4:"42799",e760573e:"42816","53fa95c6":"42819","7c650e8c":"42847",e62508a7:"42848","80f08778":"42885","45209ae6":"43163","29e01d36":"43206","50f74dc8":"43321",a0a0a2ed:"43333","03a32c63":"43469","5386bed0":"43579","7223e43b":"43605","243fbebc":"43625","8c3ef24b":"43671","5799d0dd":"43780","85e970a9":"43811","17352c84":"43875","4865bf41":"43986","9ec17576":"44147","79408a0e":"44255","4eed3210":"44356",ea4644b7:"44498",ef084d6b:"44531","2b53b872":"44568","3a6fee66":"44577",b87596d5:"44969",c020d3f5:"44970","2fc6fcbc":"45030",cbe6a4fc:"45173",a4970bd4:"45315",f7de2b66:"45360",ac411221:"45374",c721bd5f:"45429","0329a84f":"45606","62f145c9":"45620","9ee19b63":"45754","5487638e":"45916","127efe29":"46095","149005f6":"46126","879f4acb":"46140","63c8cbb7":"46147","1483912b":"46188","76e32d2e":"46251","798845d8":"46288","1082d4d6":"46330",e7700b5c:"46364",bd5fb03c:"46411",cd3a106d:"46442","111e950a":"46673","808208b0":"46691","29393bfa":"46695","69697c25":"46820","79d149e1":"46867",cab74b7f:"46926","0b9b9699":"47009","2a144c3d":"47047","1bcfa046":"47209","512830ea":"47247",c7fc39e6:"47451","8c2ad0ca":"47636",f2b40bbf:"47651",ce5cde8f:"47787","98f16971":"47864","5f8ce4cc":"47964",f35dcbe0:"48013","134ae693":"48065","08d358f5":"48192","9ddb20fc":"48228","68ed074c":"48393","472ad214":"48445",db5319b3:"48464",fdd91106:"48572","2bf753d2":"48574","15de7ec3":"48665",b5813517:"48682",cc087f33:"48738","56b30f1b":"48837",af6afb7f:"48869",efc55a86:"49071","6928d3e3":"49090","0bcf800a":"49115","6e6ac1cd":"49214","97a57718":"49250",b25f10a0:"49466",d7165f5e:"49637","5f3f388e":"49697","7d8f16e8":"49831","444ce9f1":"50250","238b4d74":"50350","0ba118cc":"50788","20e9fe55":"50901","73da224d":"50907","43abb1af":"50971",e367aa8b:"51134","9cae6ca6":"51217",d043f0f1:"51257","3380ced1":"51316","71e3662e":"51452",deb2d893:"51475",af9b37be:"51509","12e7cb89":"51566","782ec3fc":"51575","87119bda":"51644","0a033318":"51675","64db8c83":"51698","001dcd58":"51712","09a9e026":"51796","698d87d8":"51800","0602bf05":"51888","8e9fc961":"51977",c996deb9:"52094",f1129715:"52154",c77f28be:"52199","3dd00d0d":"52274","79829de9":"52347",c96104f9:"52357",e644f73a:"52368","5510f1b7":"52660",c06e8323:"52696",fcb6886d:"52961","23ee098c":"53164","062a5932":"53315","0fb34189":"53431",cf6e58a7:"53725",fa2e85d3:"53958",bc8995eb:"53975","6fed3a2f":"54111","498677a1":"54146","834474bd":"54585",c64024bf:"54586","4ec5dc72":"54690","811e7138":"54777",fc8b2c25:"54986",aa64b883:"55078",b591ae09:"55087","2df7b45c":"55172","7b3388c5":"55219","1acbe180":"55270","618b84ef":"55319","9ae0af9f":"55333","6d3744bb":"55408",af992987:"55424","8e40a65f":"55559",a7973d5a:"55593","36bb38e9":"55689","138e67e4":"55705","06dba648":"55808","56376c93":"55809",b8c8be29:"55838","25d2a069":"55894","8aa2fcff":"55919","4f73d880":"55970","3f96f959":"56156","3262a2f5":"56322",fd880ad6:"56408","7101161a":"56416","86c68e3d":"56428","517a6efc":"56445","4d7503d3":"56451","475ddf72":"56464",b2cfddf1:"56466",d4bf4b5a:"56564","5eaec2c9":"56570",f313a82c:"56650","0efc406b":"56669","4e81c48e":"56828","5e797937":"56945",ae6fccdb:"57100","7ba605c7":"57135",e2833505:"57572",ac524e79:"57682",d64418bf:"57834",f6da0534:"57909","853aad93":"57950",b0f4752e:"57965","6b8c6e92":"58028","3dfaf92b":"58126",e8780874:"58157","4084a0d2":"58200",de795cee:"58213",eef85b41:"58232","6e9e7da5":"58258","45efb036":"58331",b08e6fd8:"58363","821dce8b":"58510","868c59c1":"58682",e980bfab:"58724","8c81d4b1":"58817","590fe42d":"58881","7f2b816c":"58983","14be3d02":"59178","8c2e6727":"59244",e916fc52:"59330",cdd4e3f0:"59496","15770add":"59513",c2a87ab1:"59805","97b28733":"59851",de28e96e:"59953","2fb758e0":"60103","4f1150eb":"60141","326a97e1":"60247","2ac63345":"60270","8cc7edc7":"60286","09de660c":"60351",d88eb93c:"60410","95d3faaa":"60680","08a5ab73":"60728",f135686d:"60806",f0e049cd:"60857","2548f5e5":"60874",c86d871d:"60908","7c4f02d8":"60946","1a297150":"60955","59d809ff":"60992",e0cb77f5:"61032","2549e033":"61176","16a62667":"61236","7e185b3a":"61346",d3c1a4fe:"61374","7890cc65":"61380","9cdfb8c3":"61515",d09b6b40:"61925","61474b2d":"62039","101b7008":"62201",e053db0d:"62257","7332ecd5":"62557","68ef1759":"62661","67a43a2b":"62714",f6d3c175:"62826","729c0f86":"62934",accf606c:"63115","8cf5de12":"63446",a6e22173:"63733","0c9604fb":"63833","12d44b5e":"63978","9baacde1":"64039","3bb14ef7":"64070",a67fb928:"64073",c4f5d8e4:"64195",a43a81e0:"64397",b196f212:"64525","1a44db19":"64598","1d7f05a3":"65241","05cf0320":"65360",e3874c12:"65544","9863d968":"65701","7563de56":"65757",ca213633:"65938","41badbb5":"65962","42a3ef15":"66078",eeead8f6:"66082",abdaff06:"66115",e4de30c0:"66140",dceb5a04:"66152","0cf75f61":"66261","357d2506":"66292",b24d9bb6:"66405",f5d38d41:"66485","3a3f3686":"66701","41b14717":"66773","087b7d76":"66795",edaa9a97:"66837","943dd7cb":"66872","4a70ef18":"66939",a27e6552:"66976",b4a9e2bf:"67083","38eee5c4":"67269","5d515b10":"67300",ec0c998e:"67450",ddd9a697:"67469",c737572b:"67575","02db2b77":"67610","1b274068":"67661",a3929b5f:"67859","2c2b467e":"67953","5ac697d4":"68098",fdd518cf:"68140","345c2f79":"68226","704c7051":"68236","21401b7a":"68238",e7e29711:"68282","6a0d7dd4":"68311",f1d9f180:"68399","7a63ecef":"68570",ba227fd4:"68675","75ef737d":"68700","6137920c":"68742","9714922d":"68819","8c1ce502":"68831",ca006c66:"68986","8f2b33cd":"69057",c3592a68:"69173",cfc2f36a:"69188",c57040ca:"69241",d771e5a2:"69392","9e0309bf":"69412",d6c2ba00:"69478",fa11d8ca:"69497","6de3d5b3":"69500","7c6c7a0a":"69505",dc123d29:"69567","3493d660":"69570","12e59f4a":"69628","3f78ddfa":"69654","091cab81":"69838","700c0943":"69965","0ade90c0":"69971","9d97f7b6":"70020",fb71e943:"70164","801550f5":"70178",f73e1de7:"70369","12b28870":"70384",eeda504f:"70406","23d8a97e":"70426","3e3c20b5":"70439","925bf856":"70471","6de08607":"70483","3640f479":"70738",eca1dea2:"70843",db682b59:"70876","4d79d356":"70984",ef80f5d7:"71008","1ed4e501":"71051",e758129e:"71078",cdc8a01e:"71115",a8687ac8:"71134","2736e981":"71229",e26f611b:"71270","7dbd846d":"71292","94041cd4":"71499","929fe6ef":"71553","1821187d":"71592",c9fc4253:"71609","43816d14":"71742",cf645fbf:"71922",f156e6fd:"72177","535592ec":"72195","6a5926c0":"72350","30c7ae5a":"72436","0cb02a81":"72456","6ad22d2d":"72508",da1cd4ff:"72526","9b9dc0e1":"72647",ff0316c2:"72728","9c354e09":"72830","51d1e75a":"72899","51fb9cc7":"72942","71b28fa1":"73016","69f236bd":"73183","4fb4e792":"73206","4885913a":"73237","6127a584":"73292",f068a30d:"73333","787d1332":"73349",fecf6185:"73451",ed353322:"73684",c58d17fc:"73772",d5499c5d:"73778","1a7fe871":"73943","432a68e7":"74120","12bf709d":"74343","461c5b22":"74410","42a13e6c":"74422","1a49fe29":"74440",bff0709d:"74491","2d554375":"74531","578f8908":"74571","4976484d":"74617",e264076a:"74647","9aabffe1":"74834",f78f0390:"74867","90487a84":"74874","2781e23a":"75073",b29e94ce:"75110","3760029d":"75157","91918b05":"75216","49d40500":"75248","53331f41":"75283",f115b6dd:"75325","00b6ea12":"75367",a3f10777:"75593","9e461bb0":"75622","95bb95fe":"75706","7e4d0154":"75728",d0603a07:"75841","3f42c85e":"75869","06a38139":"76050",a9bd4440:"76071","1e64aab5":"76232",bba11647:"76336",e94d0088:"76458","5d9b0d6a":"76468","2547de89":"77062","320ebc57":"77152",dcaae713:"77194","6ed01025":"77203","605b0891":"77251","278d928c":"77258",de8df556:"77391","9cc3267b":"77495",b42b2a17:"77552","09917fe9":"77819","23909da8":"77903","4dfd395e":"77942",c7cd3677:"78024",d90455db:"78048","5530c297":"78209",ce798db4:"78310","65456c03":"78350","49b8fdc8":"78408","00c04a88":"78445",bf4489ea:"78461","717ea6d4":"78685",eb38f5fa:"78721","717f9656":"78840","114e0000":"79013",cdf0b926:"79059","17bfe970":"79061","0b139e7e":"79098",b698f5b8:"79202",e81ab398:"79239","3d512310":"79281",db79922a:"79294","260946d2":"79325","169f5904":"79434","5a35eefa":"79454","8ae74b50":"79464",b4bb44c0:"79477","3861ecca":"79497",c23b0ee1:"79672","4a5a3e4f":"79762",b0ab0602:"79815","0296afed":"79924","6b38eaf7":"79986","935f2afb":"80053","02da5ab9":"80176",a2e2213f:"80197","3b6e9377":"80301",cc0cb525:"80604",cbae671d:"80740","0a0bc396":"80806",c935642e:"80813","99056a19":"80902",b75129ac:"80998","9090bfe2":"81031",ab50fe1d:"81059",f71dfec3:"81160",ac923fd4:"81222","5ea6b885":"81264",e595470b:"81360","74683f69":"81385","2092b488":"81398","0199d4ca":"81496",ae7a9ea2:"81576",c8250b16:"81595","9da46a46":"81711","0c2c0374":"81814",cfde41d7:"81858",b4bdd337:"81932","81bc0670":"81935",b29ca04c:"82080","8c833fcf":"82084",e4160942:"82186","8b188aa1":"82335",c29853ab:"82554","9a09606f":"82606",d60a7f72:"82686","8dd98cd6":"82706","0a79c9a2":"82732","487e8214":"82811","98721dc9":"82938","1b602655":"83151","0d01e3af":"83208","580ea038":"83298",ccf671a6:"83436","83b27652":"83470","525fe6fa":"83612",bb898d9a:"83626",dae67a8a:"83817","9a4e11a7":"83819",d5eb11a4:"84052",b5352e4b:"84075",fd5475e9:"84116","5dbec22c":"84204",a32085e6:"84523","2b571a06":"84542","2c1292e3":"84840",fbc03c2b:"85117","45f9e45c":"85324",fe60c9cb:"85342",c99c71a3:"85463","6b1867da":"85607",f3cf0483:"85621",a3196274:"85645","8ede17c4":"85656",cbb92f95:"85693","469a9a57":"85789","6eeffc01":"85854",c159d2a1:"85981",ea9d8190:"85993","51b5d68d":"86070","1d104e2e":"86100","86ef1cd5":"86119","23636f9a":"86255",bc684a49:"86379","81dc996f":"86417",ff68b7f6:"86817","1e70be21":"86993","38290d37":"87094","6b1fc6d0":"87097","9cdb1c5b":"87130","5b3fb50e":"87197","531dfa41":"87257","389fb278":"87277",acac7935:"87311","250b4dc6":"87329","6a58dac5":"87354",b63db1e6:"87415","02309956":"87477","13da317c":"87564","292ebda1":"87674","66e1c749":"87822","8d1d2f63":"87837","326739da":"87941","1cd20a8e":"88033","55f4c5b3":"88083","97ba5e68":"88136","962fb06e":"88210","3366e05e":"88211",d9b20917:"88290","2cf1bed0":"88550","422866f9":"88617","63600a6b":"88725","5aea82ac":"88757","24ac12d3":"88828","1dfed3a8":"88856","013c1bab":"88910","1d9a061e":"88940","940b5b71":"88941","039d54f1":"89104","3370e507":"89105","9a45f095":"89187","8b30a105":"89241",cad34824:"89303","04037fd3":"89423","5dcbc311":"89782","0a8cb4e2":"89784",b81226b7:"89802",f2d290a0:"89877","9915efaf":"90074","81d00bc5":"90131","75ec37d0":"90136",bae45495:"90294",ffe4f0b4:"90323","4b916891":"90466",f8f6f210:"90515","402bdd59":"90612",d0cd4a88:"90688",ad1c6c85:"90773","1658c756":"91006",fbf58390:"91131",a01fd1dd:"91208",f0b7dbe2:"91464",dfa30293:"91488","238efb50":"91510",c1467f4f:"91860","9e828d90":"92032",d3fd3247:"92083","93d5903e":"92089",e16442cf:"92113","01005a98":"92306",b45ad73f:"92670","6dadabbe":"92678","801384bf":"92845","18bb110a":"92926",d1ebdf95:"92998","583c7938":"93167","510cb4fc":"93245",eec26f27:"93312",f6dc595b:"93337",e7d7dd9f:"93346","3d37559d":"93375","4bdc1132":"93476",cf9d5ce2:"93484","6ba5ca07":"93565",e2559165:"93629",f65152a8:"93663",c99653b5:"93678","2ac0b4bc":"93742","0b82315a":"93845","36cc6e86":"93852","0a196f91":"93924","60d0d69b":"94033",d76382b0:"94121",e21e838c:"94300",a94703ab:"94368","50e6032a":"94397",c9c6f808:"94488","784fecab":"94749","38d612cd":"94816","64c7b138":"95014","56a727d7":"95108",f14e55c8:"95163","35d1b9ed":"95192",d9791473:"95266","4bac2214":"95411","0420286f":"95567",d0ef1249:"95852","20b60419":"95942","2ed989b5":"96027","19d845e4":"96077","08e13917":"96149",ab4a0273:"96216","5e351f3a":"96261",a5c5fcf6:"96266","8fc7f1ee":"96295","82c71751":"96501",b6220ba5:"96637","1f8182e7":"96652","813ca450":"96702",b449eac0:"96781","7f091097":"96787","0147fdcc":"96828","51d9b128":"96840",b26eaa28:"96956","8c82037f":"97257",d837d0de:"97278",ea73ae50:"97421",e52f87df:"97485",d29b4af3:"97664",e95a72c7:"97677","49c13a5f":"97688","428d4f34":"97732",ce6049ec:"97766","7b907fd6":"97819","1a4e3797":"97920","4ffe34ca":"97953","4b1b6b6d":"98110","3c8791ea":"98117",e3bb5330:"98364",a6d3b32b:"98418","34b1f086":"98494",a7719d3c:"98550","7960f2a0":"98633",e6b85556:"98661","5fbe96f6":"99003","9dc99f39":"99198","4e1aad47":"99311",ed655da3:"99878","319411a6":"99952"}[e]||e,r.p+r.u(e)},(()=>{var e={51303:0,40532:0};r.f.j=(a,b)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)b.push(d[2]);else if(/^(40532|51303)$/.test(a))e[a]=0;else{var c=new Promise(((b,c)=>d=e[a]=[b,c]));b.push(d[2]=c);var f=r.p+r.u(a),t=new Error;r.l(f,(b=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var c=b&&("load"===b.type?"missing":b.type),f=b&&b.target&&b.target.src;t.message="Loading chunk "+a+" failed.\n("+c+": "+f+")",t.name="ChunkLoadError",t.type=c,t.request=f,d[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,b)=>{var d,c,f=b[0],t=b[1],o=b[2],n=0;if(f.some((a=>0!==e[a]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(a&&a(b);n - + diff --git a/docs/0.70/accessibilityinfo.html b/docs/0.70/accessibilityinfo.html index 307fc64f444..c5ea742d331 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 8001a95c7a1..b803ef92bd9 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 e0bda119522..049811178b0 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 a56de1d759e..edf4465fb9d 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 746fc521a70..ab83a9241ed 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 ac90dc4e43a..330127271ed 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 3e0d94d1611..9a37d30b8a3 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 1e386f61689..e4cb08316ec 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 b518fda85e6..763ff563763 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 6b7b6011372..b4c37524466 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 a9ae33391e8..6f17096f1c2 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 5d31faad7f9..3537655308d 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 5f89e4f0f66..306cabbbc2f 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 b1d5058ff64..3d026788e8c 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 7f48217c774..333b0189f05 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 95bb018127b..fd0687070e8 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 86ef6e8577f..668b1be5353 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 4e4914ea2a6..d4e2adb6e33 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 df35f9760de..8d490d555bc 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 07a41939e6b..485a6d8b890 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 1b85e181d1c..50386665a90 100644 --- a/docs/0.70/button.html +++ b/docs/0.70/button.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/checkbox.html b/docs/0.70/checkbox.html index 854018f0256..47efa44752b 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 a4f17a62b90..9cd71a2017f 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 d3a9ab0b739..a3ffde6cc73 100644 --- a/docs/0.70/colors.html +++ b/docs/0.70/colors.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/communication-android.html b/docs/0.70/communication-android.html index 2e18fe4ed6d..bd17626d3a8 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 abc7a55bb26..e5edbae7593 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 10a9274d351..3f55460c8ce 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 897bae87f32..02bddd370a9 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 98969e043bc..01409d06d40 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 e419525072a..1cc50169c16 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 23f84a83eaa..16ed554239e 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 69019ff5934..608c5c24e43 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 4b9153bab2b..9537b475de0 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 35dfb55e968..cac17c6c7ee 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 f7cf6bc2b20..35739427367 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 2b604e65d01..49d1367e0a1 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 36c6b7545f2..fda1544144c 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 d3ee3491f62..a8c1090732a 100644 --- a/docs/0.70/easing.html +++ b/docs/0.70/easing.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/environment-setup.html b/docs/0.70/environment-setup.html index 07e6fb03eca..50d8d0f37e6 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 17ed1b4fc58..72ae97eaee9 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 628560954e8..bf0187cb6f5 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 e7280e60704..51455ed0b4e 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 e5ba50ea24d..6d25637e3b6 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 077b3105ecc..cfd1dbe6cad 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 1c04516578d..40d9e13f61a 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 965f8163f9e..501e0ae6eb0 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 abae900787a..566c74cdf72 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 f97dd60674c..55bf6c42f2b 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 14a5a34f33f..cb2d9065375 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 f7203ad747f..07a4bb175cb 100644 --- a/docs/0.70/hermes.html +++ b/docs/0.70/hermes.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/image-style-props.html b/docs/0.70/image-style-props.html index 838ca00ff85..9c8514221c2 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 3577726fa31..36d3f640473 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 5131f623658..20f4fbe3890 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 b6cc14b0576..75aa049b79e 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 c299b2078d0..ba0547a682f 100644 --- a/docs/0.70/images.html +++ b/docs/0.70/images.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/improvingux.html b/docs/0.70/improvingux.html index f231962470b..c320ef22a0d 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 06bbe88aa1d..09321f189d2 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 f26aaed827b..33860398503 100644 --- a/docs/0.70/integration-with-android-fragment.html +++ b/docs/0.70/integration-with-android-fragment.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/integration-with-existing-apps.html b/docs/0.70/integration-with-existing-apps.html index 92407aea005..48ac6d712ca 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 818f9a6d8ef..c5aec25e3d9 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 fd6e2784537..7eab791c88a 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 d0a41425f0d..85221c01aaf 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 4b6766aba49..a36e3beb024 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 8d9f2404598..ff95a5b69aa 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 4958e9b1171..fb2b58703c0 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 1ecabbabace..7a4e31da4a3 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 19bc57b7174..2449245d10b 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 51b8cded9ff..4f9da231240 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 67344ec94ad..9250c56bba1 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 7d03225825f..603ca62ef43 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 d440a2b7c75..69eae249afc 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 fb92845a072..046641efee2 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 c8409f0a00b..e0c8ed140a3 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 55023fc0c25..2ed670250e1 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 ff81bcdc80d..3c3682d9803 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 68315c5745f..bf79e19d678 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 393fab33e62..4452161ccb3 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 d647763a8ea..6429751fb36 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 72d35f4af3a..37808316fd2 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 e78978474e9..3a3489e9ad9 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 0e4d5447bbc..09565008acf 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 2c29f07d139..06801e1fc8f 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 bded9377d03..1d6f6469a34 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 8541f4295d6..dbf5093f016 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 ab0db96483f..37a8233747f 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 de053b9d8f8..be9eadb39c4 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 db72e54b2b4..888052ee03c 100644 --- a/docs/0.70/new-architecture-app-renderer-ios.html +++ b/docs/0.70/new-architecture-app-renderer-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/new-architecture-appendix.html b/docs/0.70/new-architecture-appendix.html index 5a43befcbb5..e9178e86ca1 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 8b2ce55cf86..3723cf467b3 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 dc1e718c598..e4deadd3b41 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 c2a84dc6560..85e7fff8859 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 761303b9cc7..5628a870ce1 100644 Binary files a/docs/0.70/new-architecture-library-ios.html and b/docs/0.70/new-architecture-library-ios.html differ diff --git a/docs/0.70/new-architecture-troubleshooting.html b/docs/0.70/new-architecture-troubleshooting.html index 8416f0a05c1..89ef6261cb8 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 165965778e6..eb47e7c7be8 100644 --- a/docs/0.70/optimizing-flatlist-configuration.html +++ b/docs/0.70/optimizing-flatlist-configuration.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/out-of-tree-platforms.html b/docs/0.70/out-of-tree-platforms.html index 89fd02863e9..7609fd8cf4b 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 846ccab8d61..3c7881bf28e 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 282884d775c..c1b354c0bb0 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 0c11c7e0b6e..ee010bb46f7 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 371958cc868..2037cd5c06f 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 8f4316ca17a..c436e4a5316 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 0aef5ce0d33..ad9ce0e5759 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 2555df07825..fac3b4f230c 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 e66c00a366a..cfeb2ab32e3 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 bc983b64849..2e92e60528a 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 908e190654f..398e65c516c 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 55d4e9c9973..a3f4c6a39be 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 cdb5ec65d0f..9b85e04a52e 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 ca659a13a22..cdafba16a01 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 1817c74523b..c4713ac61bc 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 a0b722e77d2..b96c8eb966a 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 cc82c1659af..fac3047938a 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 fb664c6ad89..44c58436966 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 093d15d8383..ddf49901e97 100644 Binary files a/docs/0.70/ram-bundles-inline-requires.html and b/docs/0.70/ram-bundles-inline-requires.html differ diff --git a/docs/0.70/react-18-and-react-native.html b/docs/0.70/react-18-and-react-native.html index f75289a7871..a9aab0a2aaf 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 d3bd4a85c22..14a4d13f18b 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 6918901461a..2fb6987d067 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 cd91facff5b..5be35c919cb 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 a5a64a20ea7..8460cbf7b54 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 425cfc7d91d..7cf617bf104 100644 Binary files a/docs/0.70/removing-default-permissions.html and b/docs/0.70/removing-default-permissions.html differ diff --git a/docs/0.70/render-pipeline.html b/docs/0.70/render-pipeline.html index eeb0d88ac0a..12894467d22 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 799ff78489c..8d494753f11 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 0f198ae8bdc..09c479c7dc1 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 dd375fbddb1..2eeff5703c3 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 42283338c0d..2be2cad5d24 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 80d77ca8220..e5d56a532db 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 565a2eec1f8..22f327bdc03 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 e582649afb2..2bcbd5d6c95 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 cf69970cc1f..fd624b25404 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 aafa9229ce4..34087e10180 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 a48d267b557..4235e94bf52 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 0f7ce64e0ed..014e761fa82 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 2f531a80ceb..b74eac53434 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 f4ec9e50377..b31d605838f 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 d672fe3347b..4adc2918a70 100644 --- a/docs/0.70/slider.html +++ b/docs/0.70/slider.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/statusbar.html b/docs/0.70/statusbar.html index a187975c4a1..47e86ae0059 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 961faa6ff9c..3d4678b5011 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 df6e5ab40be..0135d22f935 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 eff72b8ed21..4fe6c7594bb 100644 --- a/docs/0.70/switch.html +++ b/docs/0.70/switch.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/symbolication.html b/docs/0.70/symbolication.html index 46c6b1e62bd..1834025ca93 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 2eef8ca5ee9..1406817f9b1 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 de5d55530cd..0b0feb8be9a 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 c00b46679ab..429c7ff373d 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 5078f9ea738..90f59f95e7b 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 854552ff1fe..268ab9611af 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 fdd8e7adc9b..616d711d9d4 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 6d80ba44357..fc83440bcc8 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 4b4066fec69..040546b9399 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 ac9810e0d46..dc2df23fc2f 100644 --- a/docs/0.70/the-new-architecture/landing-page.html +++ b/docs/0.70/the-new-architecture/landing-page.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/the-new-architecture/pillars-codegen.html b/docs/0.70/the-new-architecture/pillars-codegen.html index 69942890fee..2c009d70f3d 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 7a3836a5ae8..6984819ec41 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 93ae9d0ef05..3f583d1e8f2 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 8f93fd69faa..236c3cb0393 100644 Binary files a/docs/0.70/the-new-architecture/pillars.html and b/docs/0.70/the-new-architecture/pillars.html differ 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 11ed8ca690a..08acc0f9ad8 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 72a47c61113..8943328fcb6 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 63843396182..54e3b2f1b8d 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 3c4f5777966..cace14b8b67 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 a2c1bae9fb5..3e4f8424e43 100644 --- a/docs/0.70/timers.html +++ b/docs/0.70/timers.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.70/toastandroid.html b/docs/0.70/toastandroid.html index 8ecee922a28..b9de4c8f9b5 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 0b480a247ef..d263a56d7d4 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 369229ef1f2..ad393f85a93 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 25f18d84f11..5b97e96fee3 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 a75e3bcf566..eee19948f53 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 b521007ccfc..f0ba7a9a1f2 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 f1635198bcb..36273f9f480 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 2bea66f9710..946ee2c7d56 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 53542bf5243..fe8cba437c2 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 a365273f08d..bfc152c9813 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 3c31995f1b2..96569c75a84 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 26857f3874f..8928a47bead 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 cb64c1bf15c..4f2e43bf3a7 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 0972495e349..72f315a4ddc 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 97bfca90cf3..3e81743d5ab 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 d794e4a1679..3357a3d4453 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 a0e580eebee..16c84ce1815 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 4b88499f1f7..0eddcf8135a 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 08a5d447b6b..ad3c34fcc62 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 b282aceb21b..9f1826d7098 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 615632c4a1e..374873ae7fd 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 006a9687c8a..c1258863c3c 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 710b343e3ff..33ad2399405 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 2e4c51eca27..5f16185eb4b 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 6683af54c5b..5acb4cd2ee3 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 d6b4b110a0c..fe01903e50a 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 74be03fb4f3..5a497bcfaf9 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 c60432228a1..f92c3aff9cc 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 13936fd2906..5f406810be2 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 5adfeea7a07..6609c7b9613 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 1d8d052657c..0557a2d632a 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 75d80c87546..32ba89c8d3f 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 d4015cee035..c7ded4b17a7 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 97facc68e78..ce5adef6425 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 a55568ac585..c2368b2bcf5 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 6d6817f176b..3ee12489d19 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 eda75a8b278..01db838e93f 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 9bba70eb6be..088100ad785 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 679d57321c0..3efdcfb5f19 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 473181a0f2c..fe12c5c28d6 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 247495cd55d..31317c86dbb 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 fa3f1e1b43e..a582758bb6c 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 14ab65c56b4..4197bc189a8 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 bf86e3bbf6c..67904da8e42 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 23f1762565e..24526c61427 100644 --- a/docs/0.71/button.html +++ b/docs/0.71/button.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/checkbox.html b/docs/0.71/checkbox.html index 7ac71c92f61..d386d58be37 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 cd24a61ee6b..45c5ff2b7a8 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 9e3ea5f7a56..818629fd2ae 100644 --- a/docs/0.71/colors.html +++ b/docs/0.71/colors.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/communication-android.html b/docs/0.71/communication-android.html index 8a5b087709f..5dcb9e78c9d 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 b327c3bd19f..7885c399b78 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 2067587cc29..771634f419a 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 40d90ef8647..e6d6b4e4949 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 f3d6ccae7f1..619d1f6fe15 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 8371e62d9b5..a91f751b76e 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 9b73f68a8bd..242463f9145 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 448baa64e9d..4ce0d8aed26 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 d62559d8398..cc25440c8d5 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 485d35832b3..3560fcc02db 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 340db4a74f9..9ebd05d227c 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 ac37a894d33..3598e923d07 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 e8561c6cecc..362e57a97fd 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 4911f5ccb99..8bc71efb7b8 100644 --- a/docs/0.71/easing.html +++ b/docs/0.71/easing.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/environment-setup.html b/docs/0.71/environment-setup.html index df8165e4d41..b14c64fc25c 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 499ab3067fd..4480e635621 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 416aced3af9..38eec6f009e 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 3a09ceda2a1..cbb259d6f5b 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 88b5aa05626..84283b946d4 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 2ab034d797a..7a0bffafa5b 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 047daaccc79..a9e0d349159 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 c9d10337a84..adad892ab1c 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 5027c050a5e..49e3de838aa 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 87a390deae6..2f6f06fb44c 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 5d8a979fe92..650f8ac8e55 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 5b4af94c456..b52366a7704 100644 --- a/docs/0.71/hermes.html +++ b/docs/0.71/hermes.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/image-style-props.html b/docs/0.71/image-style-props.html index 4386e5b97e2..5c9d2d987cb 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 35318841716..a1a52f20811 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 1a9640c57f4..f356a737c74 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 bf93e12b6a9..605ffa6558f 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 0e0bb719f9f..23da687011f 100644 --- a/docs/0.71/images.html +++ b/docs/0.71/images.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/improvingux.html b/docs/0.71/improvingux.html index f4453b4476c..c3d9b99ade3 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 64479a43836..d4466e3bf7b 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 febe344ec99..bb3a5c12035 100644 --- a/docs/0.71/integration-with-android-fragment.html +++ b/docs/0.71/integration-with-android-fragment.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/integration-with-existing-apps.html b/docs/0.71/integration-with-existing-apps.html index 36a5dd795d4..44463bf9622 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 25514ed3149..9cdad22e921 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 5be02cebad0..c42fa4204a9 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 f98adb8047e..9df48be5d6b 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 6f19176c383..79bcd8f240f 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 1efc68daeef..f33e15b78d4 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 5e4fdd29eb1..cd72eed57e5 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 9e0c9357f67..9c02b959522 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 38f0cf237fe..3df6bbd1ebc 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 ddb3b008aad..dc98bfbf1cf 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 4d4b5cf5f83..211f152cbc0 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 79327c2bdc3..4a4bbc8bde0 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 42e15174acb..77b72db9894 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 4c5a41cc435..33e086171fd 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 2bb8f32ec5b..91ac111d49d 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 1fd039b0133..ebc154ea230 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 b68b2a65869..84bb3257f7e 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 706ec5da91b..b6346988b3f 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 9eaaaa1959d..9fcbe837f0b 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 e2c6175763c..9264c1ec262 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 4783ed90c79..ef2980b1aa9 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 5ed77c6517b..27b86517e2b 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 6c1a98be09b..148a8b3616c 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 4cfa47ce8d6..c647f560c37 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 4cb284b3173..c4d2ad5c339 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 5ffce07be62..ab345645fb7 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 f4e1d254150..7d78d67f6ba 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 51a31a4fbc2..b6dba37ba38 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 acbe30ed556..7c48fa83ab8 100644 --- a/docs/0.71/new-architecture-app-renderer-ios.html +++ b/docs/0.71/new-architecture-app-renderer-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/new-architecture-appendix.html b/docs/0.71/new-architecture-appendix.html index 6283bb79484..8119f23d5ba 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 0cfbb7ee607..f8ec70fb4b5 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 cb07b5d19a4..9b81d7dbc64 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 2fd3173c449..3171d4fe0fe 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 c8006a5f5e3..e42aab2ee82 100644 Binary files a/docs/0.71/new-architecture-library-ios.html and b/docs/0.71/new-architecture-library-ios.html differ diff --git a/docs/0.71/new-architecture-troubleshooting.html b/docs/0.71/new-architecture-troubleshooting.html index 2e1f44515b2..55ae1a859f9 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 a74975e77ac..34ba544c6ee 100644 --- a/docs/0.71/optimizing-flatlist-configuration.html +++ b/docs/0.71/optimizing-flatlist-configuration.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/out-of-tree-platforms.html b/docs/0.71/out-of-tree-platforms.html index a99eacb1989..8fee0866687 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 c839f75f8d7..146761f6f0d 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 af3a8ce5147..f2c70486ea3 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 16034fc4fca..8dec2e05fcf 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 e4a7b340cd3..564a8dee008 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 c32ca1e5a5b..d74bea98355 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 c6123ebdf76..37a51f74ea9 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 6fc25ba632c..7a985f3e99d 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 19737a52c01..f5ca75e234c 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 f309e478ffe..bc830b4d954 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 a4bede8c6a1..e6ebb427a00 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 11910736855..ee80edd9b97 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 1cc53b69f58..87bc337c794 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 6a1b1d95590..b5b69e15d7a 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 70b3f8d15e0..fb06b92458a 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 d89abbfe17c..560c2c7b46b 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 6b4b4d3f274..f050577599e 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 912884245d9..74430701617 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 a1441575283..d5521b22c56 100644 Binary files a/docs/0.71/ram-bundles-inline-requires.html and b/docs/0.71/ram-bundles-inline-requires.html differ diff --git a/docs/0.71/react-18-and-react-native.html b/docs/0.71/react-18-and-react-native.html index 129848969dc..6145982391a 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 fe1ae0121a8..6d45c9f470e 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 3c35f18d80d..1c4e2b02297 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 b5d04df0b71..ff6d078c20b 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 1c221d5d177..96d054e31a9 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 20c8cfe8da7..20fc7a687d7 100644 Binary files a/docs/0.71/removing-default-permissions.html and b/docs/0.71/removing-default-permissions.html differ diff --git a/docs/0.71/render-pipeline.html b/docs/0.71/render-pipeline.html index 4c437a19337..dc15f982548 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 acc78140d8c..33016b9ae5d 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 f64a09c366a..e03385fb0ce 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 5ea42716959..5f0f1daf5a2 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 db74a136ede..6fa30757a22 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 000faf8165e..6eafdf80fdb 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 e3341216de8..102e78a1392 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 e53f477ae04..47deabc06f6 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 d96d65370e1..39992a82651 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 6daea5c5c68..a0f5b7ba2dd 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 002e88d68ab..f3c81bf20fa 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 a9f3d0a0438..f2d1e01f672 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 6f3bdad01ce..b55d18ac40a 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 1d3990f6ab3..5597091f6ca 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 1c5cbed6775..a7a57544ebf 100644 --- a/docs/0.71/slider.html +++ b/docs/0.71/slider.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/state.html b/docs/0.71/state.html index 2cd918b5842..e10b2088f40 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 6b400e33276..0fd52bfcff4 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 b0a67ee07ea..73a25e7a274 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 edf171f9797..3d71cfa03df 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 5d959c2693c..ec2f2dfe264 100644 --- a/docs/0.71/switch.html +++ b/docs/0.71/switch.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/symbolication.html b/docs/0.71/symbolication.html index f9ac1d7cb28..f66cfe3b463 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 c2e281b3d2b..a40600f4634 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 8c0fac58d12..3d19af2264e 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 3ff2dbf3c84..3b7d2bfc149 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 97caffc062f..96602701909 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 60019d2c2ac..fdb5a0cecbb 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 5cba166296e..08c9f322af6 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 a381aab9827..76d7c41b303 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 32bae5d0c56..42401b96347 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 9cce3b372b5..fdc9d397d2a 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 84ec2ab12cd..d3da8508ed8 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 655cc7640ca..bf7405fa1a5 100644 --- a/docs/0.71/the-new-architecture/landing-page.html +++ b/docs/0.71/the-new-architecture/landing-page.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/the-new-architecture/pillars-codegen.html b/docs/0.71/the-new-architecture/pillars-codegen.html index a17d44dfa5f..bd7a7b4a5fb 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 9af5ffe717e..6b3839ca623 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 104a3523708..e83affcb831 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 053d710c3ad..c8be2e8229b 100644 Binary files a/docs/0.71/the-new-architecture/pillars.html and b/docs/0.71/the-new-architecture/pillars.html differ 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 1c9f5ddfaa2..1b2d25fbbd7 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 aadd3fc8ba7..fc0cc02b995 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 0e1165909ba..cd450b028e0 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 99b216c6c93..f0588ce7d34 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 9ccc6a0c408..2eb1b881ced 100644 --- a/docs/0.71/timers.html +++ b/docs/0.71/timers.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.71/toastandroid.html b/docs/0.71/toastandroid.html index 855c0d232e9..5c468f44d68 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 383525535c3..18321e9e3c5 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 f3e1b93e60b..80442d6fc99 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 b29e8ddc7dc..442176ae12e 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 8680c47d604..cee510afa7b 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 981ee4f7796..31b74b26635 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 3b2b8cb4c97..4938dd4b76e 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 395d305b4a0..5073fc43ce0 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 ba8b1d5b94a..c051ed5aea1 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 027930812d0..beccb1e005c 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 0dcf6bdbdd9..95c4e1396db 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 799a8806565..2a46b5ad11a 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 7c17eabc6d3..a8ac5e008c9 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 174615ffd4e..e1b76783cd0 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 1c8fbef288b..b2d17d28c48 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 56ced132f33..dd1e9ad07b1 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 8d934b0820c..888ab68ef6a 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 e81f232d1ca..b2db08e92e7 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 1623c2bddc9..3890fb46109 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 b1cdaeb6b7e..6a2cb41080a 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 4663712887b..a20593b82d0 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 36fbed9a202..e74e128e8e3 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 3c5788e6c9e..8334585fe96 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 d1436a7be8d..9ff3016af9c 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 ccab7e2c8a7..1cd7411e29a 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 2265b169d16..bf0f98abb16 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 2c3cfa4d14c..f3d564aa599 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 1dcf14a5b5d..fbc7966fc56 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 a734f762a00..928c9aca164 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 8cef1ea8070..6af51206404 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 7c4e3d922b7..8f1ab4b156c 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 7c235a8bbb1..d10aea6054e 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 c71b092142e..24c4a50f071 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 f98aaa01505..0e700c8c83e 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 e28f8486ed9..b1a5f008b22 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 f07d64fcbc2..f19ff9acbbe 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 a35d1c71717..0554461bacf 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 cf3457f2206..d0125ae2a12 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 4003d7933f9..ddb2333d521 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 480b2308f6c..4a2542023b4 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 9f71a42b269..3667dbc8481 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 084cbf29fcc..1d4737b6fe9 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 3716fbb909a..78e784de5e7 100644 --- a/docs/0.72/button.html +++ b/docs/0.72/button.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/checkbox.html b/docs/0.72/checkbox.html index af8a2ee7e41..e36012f255b 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 55e83a30eac..49bd7e426d4 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 14f4723fff3..266bcfe1c9c 100644 --- a/docs/0.72/colors.html +++ b/docs/0.72/colors.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/communication-android.html b/docs/0.72/communication-android.html index 371fef37b74..a66ccdb2396 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 428a6a7cfbd..d69c32fc372 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 9cc018f4ee4..1e666ab9ff0 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 dfb0d79f8b4..b918e023429 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 912459c5b64..1a44635049a 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 64e90e9b163..15de1c87dc5 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 5a2bba76d27..84da508bf57 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 6a83f96829e..9555c6ae332 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 e913a71708e..b8086aaab42 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 22fd1a2a8e1..4f16f3b9d81 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 0514b235695..6417bfcd3e6 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 0bf88306215..88ab97b5a36 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 c523902f88d..9277341140a 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 c22e73910b5..b1583e806a0 100644 --- a/docs/0.72/easing.html +++ b/docs/0.72/easing.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/environment-setup.html b/docs/0.72/environment-setup.html index 029e380aac8..c3cf86955fa 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 0400db9b0c5..bf21e5d707f 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 969478ff9a4..7c27704353e 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 15ed4c62b30..11a95f42321 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 8aa5afc87d6..37ff8f5cfb7 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 f2e0e510bc0..e0fb4183c20 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 84ae97e91ed..2c3d81d539a 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 59a15c5e3dc..8fc4014f447 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 ce1450c8f13..b313284386d 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 d589a19b1e5..3d86234bb76 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 48258b44935..e3214ce31c2 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 fee8d3dba24..d7ddadc604a 100644 --- a/docs/0.72/hermes.html +++ b/docs/0.72/hermes.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/image-style-props.html b/docs/0.72/image-style-props.html index 0bba6184971..272922c0182 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 47bed539ed2..cb6e9bc1a05 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 9650cf19687..aecbd286f26 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 a08b739246b..2c7079d7858 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 10c03667e9b..14feff2837c 100644 --- a/docs/0.72/images.html +++ b/docs/0.72/images.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/improvingux.html b/docs/0.72/improvingux.html index fc91c52d926..7459de7a823 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 ce59c2ad068..5ee458506f8 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 0b5f6491cbc..3952412eb17 100644 --- a/docs/0.72/integration-with-android-fragment.html +++ b/docs/0.72/integration-with-android-fragment.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/integration-with-existing-apps.html b/docs/0.72/integration-with-existing-apps.html index 0eed85fdb1f..8451452b0a2 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 b11254e44de..30205e92cc6 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 e52864ac2e4..eb2ad405a92 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 1a31e9df6a3..4e22b36204d 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 b9d741ce268..4e8487f24d9 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 89ab94d28cb..1618b034882 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 e12b965b6ac..17a37bdfab5 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 fe2a3bc2227..8539454e2d2 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 9c5eee635c7..0aff270c288 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 319fc41f4a8..c4dd89522ad 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 ac17ee33620..9189c2b5f9d 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 6537522cd05..e25a9132f23 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 d0c7d19852d..22340b04926 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 613debb664e..0b2ead46b1e 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 eea9d95d734..4581ec697ec 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 a0dfeaf02b3..fec414fa15f 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 c45f7a90a9a..75ddbea8429 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 023b10c31a4..4e164c181c9 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 c68f874183c..4eedbce8ff2 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 c5d9974979a..a8f689fb8b6 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 6e9c542cd6e..c739e9feafe 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 67a03b6762f..4bf96558fd2 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 34d9108943e..bfb76d67029 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 ae29fc92c4d..e0c49113192 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 ccc1431c4c8..31252c50cdb 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 ac903a7760e..0805c9ef963 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 a51004947f1..6821f32e95b 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 bd16671e50d..026adbe4d1f 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 95f78c1efbe..068b1c5c860 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 e6e503abad1..e5981622c24 100644 --- a/docs/0.72/new-architecture-app-renderer-ios.html +++ b/docs/0.72/new-architecture-app-renderer-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/new-architecture-appendix.html b/docs/0.72/new-architecture-appendix.html index 15951cbc319..821e114cd2b 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 a96634745ae..fb9c2df38df 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 e129185539e..60b0ccefa9d 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 cfa0d8fea69..414a784cacd 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 c4c94965c6b..66d70bdc4ac 100644 Binary files a/docs/0.72/new-architecture-library-ios.html and b/docs/0.72/new-architecture-library-ios.html differ diff --git a/docs/0.72/new-architecture-troubleshooting.html b/docs/0.72/new-architecture-troubleshooting.html index 810e2a9aea6..47585a975d0 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 06171e7b4c2..2503da619aa 100644 --- a/docs/0.72/optimizing-flatlist-configuration.html +++ b/docs/0.72/optimizing-flatlist-configuration.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/out-of-tree-platforms.html b/docs/0.72/out-of-tree-platforms.html index 0f9db159746..a40979ad1a6 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 1cbceb10188..5b282fdda79 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 b23ba5db01d..3d751c26548 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 aa15a0edfaf..a762f29d1e6 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 1e410a5f351..c8d823237e4 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 7dfcdfabb1a..e6987af8562 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 7eea661ad2e..ba4b969eca1 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 000f3b29962..6d332fc4f30 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 ccaef7cc8bc..d31d994071d 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 81aa0acda6e..d39baf35743 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 453b751b291..746020585ad 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 11bc8e3fe17..5b494aa8a1f 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 6a9b966d133..0e6e3038256 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 69051033123..d4f8d2cb67d 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 b0fa18c0cbc..41fd709b028 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 a4ff5f864d4..a7db545052c 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 30c2d1b3f79..2f8bf8e14b3 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 f5af269c641..d6c5fd24e71 100644 Binary files a/docs/0.72/ram-bundles-inline-requires.html and b/docs/0.72/ram-bundles-inline-requires.html differ diff --git a/docs/0.72/react-18-and-react-native.html b/docs/0.72/react-18-and-react-native.html index 8c5b4fba895..fec41864711 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 f381c1b6532..2375033c457 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 0aa4c46c309..8a459b61727 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 0e225b577f6..a1978b35a31 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 5903f18cca3..51253e7c991 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 205138bb884..2314cbc00f1 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 1d34d2c4ae5..a4728f19d2d 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 2bb5a1c3d52..9876cdc9b14 100644 Binary files a/docs/0.72/removing-default-permissions.html and b/docs/0.72/removing-default-permissions.html differ diff --git a/docs/0.72/render-pipeline.html b/docs/0.72/render-pipeline.html index 25d810cbd4c..47608cd7432 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 be501032158..f154f9a14a3 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 597b01f351f..a4e683dba21 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 fec047ace2b..f772113e754 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 2d6a5cd190e..83128737e3d 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 b35fcc90cff..6581b927ee8 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 1b1a705b6de..2e4e3fc3c87 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 8f0e4262a42..80d4c8d0df5 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 906a9558f32..46d6939d003 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 a66b19fe048..cc99ee14ed1 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 dede7e73ae5..2f0700f04a5 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 8427d755d7d..b3d089ffaaa 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 1065e8aa3f6..959314bd1d3 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 deb8ca26247..d873a679891 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 af5622145be..77da8e7688f 100644 --- a/docs/0.72/slider.html +++ b/docs/0.72/slider.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/speeding-ci-builds.html b/docs/0.72/speeding-ci-builds.html index 465f98ff4bf..d3da6bac5bd 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 8895dc91f2d..fd29a4ccfa9 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 4ea7bf4b1a1..8a34d41a8b2 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 11fec3735cb..dc4cb54a6db 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 b13d6ca30f5..640767ba83b 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 54ceed1c020..360f053c437 100644 --- a/docs/0.72/switch.html +++ b/docs/0.72/switch.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/symbolication.html b/docs/0.72/symbolication.html index ad28e74cd5e..b56385bdde9 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 f718bfa68b8..332029802a1 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 14a25ca3a26..84fde0aa0dd 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 be5bb32c84b..857f477a6bd 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 a29ae3170af..52148310862 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 ea400da3190..be019b190ca 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 4f210e9b3f9..7054324168a 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 bf2f1c1eff0..d989914d03c 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 8be1b1d657b..cff24fce5ef 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 71ff609b2b6..0db1eab90d3 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 600a028698e..3d9f1eff1c6 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 28376c0545a..261caa6d06f 100644 --- a/docs/0.72/the-new-architecture/landing-page.html +++ b/docs/0.72/the-new-architecture/landing-page.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/the-new-architecture/pillars-codegen.html b/docs/0.72/the-new-architecture/pillars-codegen.html index 508396a40fc..ad424a76258 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 1b21705153a..e260c3823b3 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 329ed7bdbfa..8716641566f 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 64d9b53e5b3..71cb3149050 100644 Binary files a/docs/0.72/the-new-architecture/pillars.html and b/docs/0.72/the-new-architecture/pillars.html differ 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 4114d762f8e..4fcf936056c 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 f9431341a8d..804ab13e89c 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 9c8ad05a389..9f05d8848a5 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 bc32c9463a8..9b50a2fc974 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 fbebd72bbce..58fa981154f 100644 --- a/docs/0.72/timers.html +++ b/docs/0.72/timers.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.72/toastandroid.html b/docs/0.72/toastandroid.html index 5f0a30dcd83..b239d8e74e9 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 34ce50c97b7..98610640535 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 0339bb38ef8..0fc0821099e 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 48a7b178fa6..59dd69aa5ba 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 796ba549b31..24cc5be83c8 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 24161503321..c7750adfb53 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 d565ff17905..730ef144457 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 4b9d79915bd..0be3da177d4 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 36fb88772de..724b425787b 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 d20d19c4e61..366a60615f3 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 98a543d3467..6e742f45f90 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 b5d3507cf9c..f503d0d96d5 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 93d2404244f..f1e5e64c559 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 f1a6be14ae0..f4943841223 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 c77638c8e3b..5355c29f044 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 19f758f058e..142ea7a24dc 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 6e09d75c74a..da28d0aa447 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 316acf1e91c..4a93840756b 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 021c1c34fb2..0e175d56316 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 0058c1087e3..92781706370 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 383ee794aaa..4b1625023aa 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 b1197534b75..2ffc6e77712 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 ecbe8109d8b..8c18bc65688 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 0d57a86ba71..5bb22991708 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 5587557d795..21817072c76 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 023fdf8ae55..9501ca19817 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 ca0c75b5153..b4639016bb1 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 fdcbcea0299..e7e9d0ed608 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 33ba468dab5..3fb973cf451 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 5f8cd7308a5..852c0411161 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 82c441140ad..1818aa6a330 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 5963b57c3fe..305cb19c9aa 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 9542c6f2581..f169b3b445a 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 20a35908c23..0444151d282 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 db7403a0e7c..bf33142ea3d 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 ac718adf62d..69686ebc119 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 a97a6b1f046..8a8fb7706cb 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 33e23d550c2..fff05d8119b 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 0146a9f3286..0fd50f254c8 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 35bcac23be9..9daa40f44be 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 de66d344d71..c70943ead57 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 f01890fcd12..f0389400160 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 bab8f0f38b7..5d00f955ce8 100644 --- a/docs/0.73/button.html +++ b/docs/0.73/button.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/checkbox.html b/docs/0.73/checkbox.html index 35822763e00..c83fbeb9f2a 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 4a391d2c7cb..4874151ead1 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 2ea782467e5..b6dd36594c1 100644 --- a/docs/0.73/colors.html +++ b/docs/0.73/colors.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/communication-android.html b/docs/0.73/communication-android.html index f028350eb1c..0e2a56086ae 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 791f760772f..dba9065455d 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 8d82c57aa74..ef80b428bf0 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 ea14797070d..1779b0b2bd4 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 ac4f42ad94a..390ba34b4d1 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 1575c58e43a..35e26d3b04f 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 b60aec20ccf..5a117b94f08 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 b583bd96591..09335b69e4b 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 03c92cf6d14..bd6819756b7 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 cbebf1d80ee..607283799c7 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 1c8c2eb5daf..f4d2a6da15e 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 0f07f2989de..9db7f064d61 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 ab7333e09a6..4208bc2a711 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 33b5957a4dc..af67136f2ae 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 19c5649b49f..641ddab08b5 100644 --- a/docs/0.73/easing.html +++ b/docs/0.73/easing.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/environment-setup.html b/docs/0.73/environment-setup.html index fba2684901e..8adde131ab5 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 1ed7cfa1153..6292e5813c5 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 ab7fd4736e3..0ce3cba0868 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 b0376630802..cda9cdd1cc7 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 e7560cc2da4..7e13d24297e 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 3253781d5c7..f83ee465761 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 d57866d6d98..aa816e69429 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 7ce2c53a4d6..06fc19992f5 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 5b28cee695d..003eef067b3 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 90549825c84..e3e944221ae 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 898b71cafb9..2a5a335fcda 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 45b161c2911..8d577538994 100644 --- a/docs/0.73/hermes.html +++ b/docs/0.73/hermes.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/image-style-props.html b/docs/0.73/image-style-props.html index 269c192d825..f531e5e947d 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 ec5c99e9433..931bcc659e4 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 44a206cae2f..dd236aa83e2 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 184d66b42a9..983936d6022 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 7edb74a9412..c912d77e214 100644 --- a/docs/0.73/images.html +++ b/docs/0.73/images.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/improvingux.html b/docs/0.73/improvingux.html index 319bc330430..737504a94ff 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 1d24f351c20..a2f0b4cdbd1 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 7d274160c96..19640afdcdc 100644 --- a/docs/0.73/integration-with-android-fragment.html +++ b/docs/0.73/integration-with-android-fragment.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/integration-with-existing-apps.html b/docs/0.73/integration-with-existing-apps.html index 82f2ca12de6..f4fdade9d94 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 a9cb8a728ad..37e02ea5977 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 6a7bce05c85..da9b4822ffd 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 337bc3802de..6f087da2ca5 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 a64c28d6a4d..76beadc033e 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 b7be70a9da3..05752fc5aa1 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 5a6e3cd1501..c4908fe9576 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 a2da72e7121..8449a90356d 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 88ca789c4ab..5678cd432b8 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 2f8e7d5350f..3f5adc27345 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 bf11f728679..ab649b10283 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 e59857ad2be..55524246f5b 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 0b34a03c8d0..202e4229040 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 51e38707d26..ba34cf7f5be 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 c52b61ecfb9..101635d2dfb 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 8cc6b3100df..276241ed7fd 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 11602261c3c..b69c882e4c3 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 400ec8c6957..4e4959f3098 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 ec444694c6b..c154dbd6da7 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 7d08746d335..2c1a4d750a9 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 5b822cfbc6c..19a5f99f7af 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 fe3afebf9cb..5853479fb36 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 f5194db8bf9..08c65bedc8b 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 6069e25578b..fbd6476c16d 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 c48e7de5243..afbb04f55f0 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 f627e220897..648199a23a1 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 d20f4a70bcb..d6649612a11 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 ded315112b2..e2b84b31930 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 f9b80f73efc..bf6b872989c 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 0bed8646a34..991103d5ab4 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 f0939e455ae..f508c28070e 100644 --- a/docs/0.73/new-architecture-app-renderer-ios.html +++ b/docs/0.73/new-architecture-app-renderer-ios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/new-architecture-appendix.html b/docs/0.73/new-architecture-appendix.html index 0c4ffc04bae..02d9e4133cc 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 cbf33210d4f..2ac12ca32b2 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 6d0ab60e778..423b675a3c7 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 1035979de3f..45b85917dba 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 b82963ba4af..de6ec3f55f6 100644 Binary files a/docs/0.73/new-architecture-library-ios.html and b/docs/0.73/new-architecture-library-ios.html differ diff --git a/docs/0.73/new-architecture-troubleshooting.html b/docs/0.73/new-architecture-troubleshooting.html index b478630069c..bf4086b0080 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 08b14a2163b..8d14c713f7a 100644 --- a/docs/0.73/optimizing-flatlist-configuration.html +++ b/docs/0.73/optimizing-flatlist-configuration.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/other-debugging-methods.html b/docs/0.73/other-debugging-methods.html index b5f57fafd1a..a2a04bde6a2 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 cf9764727a3..2f9d80e5e4c 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 50f2757bf7a..acff2a800af 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 23c9ea686b4..7307c8c1e04 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 e32fe38c5a5..51fa6e42fbf 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 42950a5c520..759c57e57cc 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 4aa5d5aa790..65933f73807 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 96cfe6eadc5..228f3a7ffb4 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 ce15a153c2a..52574cdcebf 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 3d24d089cc6..c26c93edfb8 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 b0eeb2f4f8f..938bf5e61e1 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 354a5d65aa3..69b2c7ea802 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 e1df1a587c0..0507a6920ea 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 222abd8db03..64bb843654c 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 b79b9206daa..c49f5421649 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 45bd8cb4aec..2c567408e75 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 a7a29c44e24..3bffe3cc613 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 d69f9d2e486..2024b975ade 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 b0c463648ce..7f848920d9c 100644 Binary files a/docs/0.73/ram-bundles-inline-requires.html and b/docs/0.73/ram-bundles-inline-requires.html differ diff --git a/docs/0.73/react-18-and-react-native.html b/docs/0.73/react-18-and-react-native.html index 4a5440d63f4..c74596fc4f4 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 fa28a8ec7f7..a79c5132990 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 70c9359bee0..a3039a35509 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 96d4991f639..79de46ed4df 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 ab19f46d984..8c2fb8755ea 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 65a7585e0d8..7e80d793b6b 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 03cef1f884d..478532f5279 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 e8803ec6033..c9c97c5d1b4 100644 Binary files a/docs/0.73/removing-default-permissions.html and b/docs/0.73/removing-default-permissions.html differ diff --git a/docs/0.73/render-pipeline.html b/docs/0.73/render-pipeline.html index 33bfe314d9e..3d1a87aecb0 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 215f055e655..0ff850d81b1 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 c5366e569b6..b233d7473f1 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 a7a337be6c0..336afdfe226 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 86d6c2c98f7..dfa6846e629 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 d4a46322af2..0c1de2edbc8 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 1a9b3b34207..3ac7fae6041 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 6e3f81dd6db..16a3871fa01 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 4221993878d..e868bc45b25 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 84618125952..c122058cafd 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 4b7a527f212..3e0e4dcfe9a 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 8a9c28f778f..b824ba054c9 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 1c3c4df33d4..00fbd3b5ef6 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 9940dcc1148..b0f9a8955d2 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 44369ebf3ce..3c2c648a554 100644 --- a/docs/0.73/slider.html +++ b/docs/0.73/slider.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/speeding-ci-builds.html b/docs/0.73/speeding-ci-builds.html index 82e9ef838ae..ca9c6c971d6 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 76e7ad74ab1..88894d2f205 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 4460c21e934..0909838a045 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 db556874a8d..0f40ab7131a 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 dd91e99a0ef..5511650f157 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 fa740bc9bc5..1a8894a39ab 100644 --- a/docs/0.73/switch.html +++ b/docs/0.73/switch.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/symbolication.html b/docs/0.73/symbolication.html index e920cf3b61e..a179c7e2f8c 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 d1e014891fb..f9d40c09988 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 64a3ac960cf..0aeb462edc6 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 7686465c28d..f18a32b43fb 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 3206e30237d..0d9972a699a 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 6fb7af1484f..bdf6cbd8aae 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 fd36f9f0411..c1b7af1cc6f 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 64a73bd1f9a..43c07f78046 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 44453bc36da..c3223e4080c 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 ae0ecd43d1e..ea129fe4755 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 93dbcc6ceb5..f01930350d7 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 e0a3d713c7f..90295282ad9 100644 --- a/docs/0.73/the-new-architecture/landing-page.html +++ b/docs/0.73/the-new-architecture/landing-page.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/the-new-architecture/pillars-codegen.html b/docs/0.73/the-new-architecture/pillars-codegen.html index 4317b9a79cf..02e221b390f 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 3bc51cde6c5..63dc63d6b9b 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 7a3c378f71b..475e3f972a9 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 1f790e6beea..47ef87f0e26 100644 Binary files a/docs/0.73/the-new-architecture/pillars.html and b/docs/0.73/the-new-architecture/pillars.html differ 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 aa0d3c5b1d5..a0d5599c5ac 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 f68b15c1ed7..562acc93ee3 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 14f7d31c2c2..1212594d4e3 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 dd07389c6f1..87d8d8f6b31 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 88cfc8f1529..bb79c099ae8 100644 --- a/docs/0.73/timers.html +++ b/docs/0.73/timers.html @@ -17,7 +17,7 @@ - + diff --git a/docs/0.73/toastandroid.html b/docs/0.73/toastandroid.html index 7d544bc3023..48f0ba30d37 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 cbc2aea4bad..55d1deae4e8 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 1f8a6bc0839..1d885d89899 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 aab3052ac16..eea8a832a2d 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 03da2d1ac0f..af89ba30b31 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 3f4f199f1f9..c8a1b1dc4b9 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 c7ab9a5205a..572dde66026 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 a5f8fdf3a3d..8a8754b6c36 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 175023de204..743b075e29b 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 4c6a189a572..c36cc5335b9 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 650f45af9cf..36e295228f0 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 e19625385c7..7b86875edb5 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 87acce021d8..b7e6b6e16eb 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 27fb3273a8b..27ac7eeb12f 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 281a4565bac..996275c8109 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 23242f2144d..c7214619efc 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 a574167171b..565adf47324 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 e5f0df13b31..6dda1e8e43d 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 77af85fb4d3..cb5635bebc1 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 c06ce8937aa..f992a702182 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 1415fae12b2..964a3da0b28 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 109b7774755..5d6bf8a5751 100644 --- a/docs/0.73/xplat-implementation.html +++ b/docs/0.73/xplat-implementation.html @@ -17,7 +17,7 @@ - + diff --git a/docs/accessibility.html b/docs/accessibility.html index bd3b34f309f..8859168a4bd 100644 --- a/docs/accessibility.html +++ b/docs/accessibility.html @@ -17,7 +17,7 @@ - + diff --git a/docs/accessibilityinfo.html b/docs/accessibilityinfo.html index a64a6558326..45a4ae3e7ad 100644 --- a/docs/accessibilityinfo.html +++ b/docs/accessibilityinfo.html @@ -17,7 +17,7 @@ - + diff --git a/docs/actionsheetios.html b/docs/actionsheetios.html index d29ea31ed0d..89dfa277576 100644 --- a/docs/actionsheetios.html +++ b/docs/actionsheetios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/activityindicator.html b/docs/activityindicator.html index 3f42b492999..46d3b12b5d6 100644 --- a/docs/activityindicator.html +++ b/docs/activityindicator.html @@ -17,7 +17,7 @@ - + diff --git a/docs/alert.html b/docs/alert.html index a358327e1dc..3934cf370d9 100644 --- a/docs/alert.html +++ b/docs/alert.html @@ -17,7 +17,7 @@ - + diff --git a/docs/alertios.html b/docs/alertios.html index f2b75b02c4c..3f10d2622eb 100644 --- a/docs/alertios.html +++ b/docs/alertios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/animated.html b/docs/animated.html index 705f1037e52..d4cf5338cd5 100644 --- a/docs/animated.html +++ b/docs/animated.html @@ -17,7 +17,7 @@ - + diff --git a/docs/animatedvalue.html b/docs/animatedvalue.html index f840ba42b28..2258b6ec35c 100644 --- a/docs/animatedvalue.html +++ b/docs/animatedvalue.html @@ -17,7 +17,7 @@ - + diff --git a/docs/animatedvaluexy.html b/docs/animatedvaluexy.html index ef914267530..155348263d2 100644 --- a/docs/animatedvaluexy.html +++ b/docs/animatedvaluexy.html @@ -17,7 +17,7 @@ - + diff --git a/docs/animations.html b/docs/animations.html index 4a2730121c1..34f712d80b2 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 0acc367cc1d..91e0c32802b 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 00942438a1b..279ca3bfd89 100644 --- a/docs/appearance.html +++ b/docs/appearance.html @@ -17,7 +17,7 @@ - + diff --git a/docs/appregistry.html b/docs/appregistry.html index d0b4e08af19..ed0f926eda8 100644 Binary files a/docs/appregistry.html and b/docs/appregistry.html differ diff --git a/docs/appstate.html b/docs/appstate.html index ff6e528abbe..b0aae9dcff4 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 3d7587b0ff9..c275192f1d0 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 cddad12eec3..4e0fcccafa5 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 43f717574a9..ae4cb5ac8ed 100644 Binary files a/docs/asyncstorage.html and b/docs/asyncstorage.html differ diff --git a/docs/backhandler.html b/docs/backhandler.html index 10832e0a55d..ee1035555be 100644 Binary files a/docs/backhandler.html and b/docs/backhandler.html differ diff --git a/docs/build-speed.html b/docs/build-speed.html index 952e091b12a..c6f3cac0827 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 91f46add3a8..fe4c510b37c 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 75f9b1ee3c7..1e657332c6a 100644 --- a/docs/button.html +++ b/docs/button.html @@ -17,7 +17,7 @@ - + diff --git a/docs/checkbox.html b/docs/checkbox.html index 2009e33625d..9e016f236a7 100644 --- a/docs/checkbox.html +++ b/docs/checkbox.html @@ -17,7 +17,7 @@ - + diff --git a/docs/clipboard.html b/docs/clipboard.html index 913a2582bec..060a94e24e0 100644 --- a/docs/clipboard.html +++ b/docs/clipboard.html @@ -17,7 +17,7 @@ - + diff --git a/docs/colors.html b/docs/colors.html index 56a7e429c8f..b25b8e32ba4 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 a4bdd45777b..05fdf33bcaa 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 403a4e0c383..2c038bb92ac 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 0d29b429d67..29e55bf6aed 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 8895ec09b82..14ea518ac12 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 13ea120ba6b..3206f5abc38 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 fda97baf75f..4a64f5b357d 100644 --- a/docs/datepickerandroid.html +++ b/docs/datepickerandroid.html @@ -17,7 +17,7 @@ - + diff --git a/docs/datepickerios.html b/docs/datepickerios.html index 4fd5888b5f5..295299b50ca 100644 --- a/docs/datepickerios.html +++ b/docs/datepickerios.html @@ -17,7 +17,7 @@ - + diff --git a/docs/debugging-release-builds.html b/docs/debugging-release-builds.html index e3deb811ca9..e7965ad034f 100644 --- a/docs/debugging-release-builds.html +++ b/docs/debugging-release-builds.html @@ -3,7 +3,7 @@ -Debugging Release Builds · React Native 中文网 +调试发行版本 · React Native 中文网 @@ -17,18 +17,18 @@ - + -
新架构实战课 实操 + 基建 + 原理全维度包揽,抢先掌握 React Native 新架构精髓 立即查看 >

Debugging Release Builds

符号化堆栈跟踪

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

调试发行版本

符号化堆栈跟踪

在发布版本中,React Native 应用如果触发了未处理的异常,其输出可能会被混淆并且难以阅读。

07-15 10:58:25.820 18979 18998 E AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
07-15 10:58:25.820 18979 18998 E AndroidRuntime: Process: com.awesomeproject, PID: 18979 07-15 10:58:25.820 18979 18998 E AndroidRuntime: com.facebook.react.common.JavascriptException: Failed, js engine: hermes, stack:
07-15 10:58:25.820 18979 18998 E AndroidRuntime: p@1:132161
07-15 10:58:25.820 18979 18998 E AndroidRuntime: p@1:132084
07-15 10:58:25.820 18979 18998 E AndroidRuntime: f@1:131854
07-15 10:58:25.820 18979 18998 E AndroidRuntime: anonymous@1:131119

在上述堆栈跟踪中,类似p@1:132161的条目是经过压缩的函数名称和字节码偏移量。为了调试这些调用,我们希望将它们转换为文件、行和函数名称,例如AwesomeProject/App.js:54:initializeMap。这被称为符号化

您可以通过将堆栈跟踪和生成的源映射传递给metro-symbolicate来对上述类似的经过压缩的函数名称和字节码进行符号化。

启用源映射(source map)

源映射是符号化堆栈跟踪所必需的。请确保在目标平台的构建配置中启用了源映射。

-
info

在 Android 上,默认情况下已经启用了源映射。

要启用源映射生成,请确保在 android/app/build.gradle 中包含以下 hermesFlags

react {
hermesFlags = ["-O", "-output-source-map"]
}

如果操作正确,您应该在 Metro 构建输出期间看到源映射的输出位置。

Writing bundle output to:, android/app/build/generated/assets/react/release/index.android.bundle
Writing sourcemap output to:, android/app/build/intermediates/sourcemaps/react/release/index.android.bundle.packager.map