reactjs - 反应在间接孩子/父母之间发送数据
问题描述
我有以下父/子设置。我这样设置它是为了让它更有条理和更容易,尽管现在我开始明白为什么没有 Redux 就不可能做一些事情。
帐户搜索中有一个搜索字段,因此当用户填写完毕时,我需要触发 API 调用,这没什么大不了的。然后我获取数据并使状态中的数据等于我通过 API 提取的数据。 { isLoaded: true, api: data.data }
然后我必须将此数据发送到 Daily 组件,以便它可以显示数据。将 AccountSearch 组件中的字段值发送到它的父 AppBarPanel 然后发送到他的父骨架,然后更新骨架中的数据状态并将数据发送到 Content 然后发送到它的子路由器,然后再发送到正确的页面,这要复杂得多。 case Daily 显示数据。
我怎样才能在这里简化我的生活?
以下是我的 API 调用
this.apiService
.callApi("A", "B", "C")
.then(data => {
this.setState({ isLoaded: true, api: data.data });
toastr.success('Api returned data successfully.');
})
.catch(error => {
toastr.error(error);
})
解决方案
React 是关于在组件的层次结构中向下流动的数据,这意味着不应该发生横向数据,如果您面临需要横向传递数据的情况,我建议您重新考虑组件的结构。您可以尝试以下几件事:
- 使用 redux 或类似的方式集中应用程序的状态
- 将组件包装在分发数据的父组件上
- 使用上下文 API
推荐阅读
- python - enumerate() 还是显式查找更有效?
- unity3d - Unity:旋转轴中的游戏对象错误
- python - Scrapy 输出空的 JSON / CSV 文件
- r - R:如何降低数据框中的级别数量?
- angular - 在 angular get() 中,如何在标头中发送值,
- vue.js - 如何在 vue js 中使用 pusher 将数据重写为变量?
- python-3.x - opc-ua中如何继承另一个对象
- python - 您将如何计算 CSV 文件中包含 Python 中每个唯一值的行数?
- android - Flurry 有一个总是响应 400 的接口
- outlook-addin - 如何隐藏 OWA 的 Outlook JS 加载项,但不隐藏其他应用程序(桌面 Outlook、Office365)?