javascript - 如何在多个 React Native 组件中保持变量的当前值
问题描述
我有一个Parent
React Native 组件,它由三个子组件 、Header
和Body
组成Footer
。这是它在文件中的排列方式MyScreen.js
:
<Container> // I am using NativeBase Container
<Header />
<Body />
<Footer />
</Container>
这三个子组件的定义包含在单独的文件中,例如Body.component.js
,等等。
我想访问Foo
包含在不同文件中的数组数据结构,FooArray.js
它由两个组件导入。在组件内部进行操作(我在这里反对这个数组)并且它的长度显示在组件中。Body
Footer
Foo
Body
push()
Foo.length
Footer
我如何确保每当一个新对象被推送到组件Foo
中Body
时,它的新长度会立即反映在单独的Footer
组件中?
任何想法,不仅涉及预期的解决方案,而且如果需要,还涉及项目文件的最佳重组,我们将不胜感激。
解决方案
React 用状态解决了这个问题。
您将数据 (foo) 导入顶级组件 (Container) 并将其分配给状态。然后您可以将状态作为道具传递给子组件。
所有子组件都可以使用这些道具,并且会在道具更改时自动更新。
如果要从子组件中更改状态,则应将处理函数(在父组件中定义)作为道具传递给子组件。
推荐阅读
- amazon-web-services - 使用命令包启动 EC2 实例
- c++ - 在不使用早于或等于 g++ 4.8.5 的语法的情况下,我可以遵循其他方法吗?
- javascript - 可以在 array.from 中返回元素 ID?
- winapi - 什么是 wil::ResultException 以及重新抛出意味着什么?
- java - 什么可以使Java应用程序平台依赖?
- flutter - 如何在使用 SearchDelegate Flutter 时自定义 appBar
- python - 如何使用 NumPy 将整数向量转换为二进制表示矩阵?
- xamarin - Xamarin OxyPlot 未在 iOS 中显示
- python - 将时区设置为 00:00, datetime.now() 但只有日期
- recaptcha - 全局使用 reCAPTCHA