React Navigation 5.x:在 material 个顶部选项卡中共享来自单个 API 调用的数据

React Navigation 5.x: Share data from single API call across material top tabs

我正在使用 React Navigation 5.x。我的要求是在其中一个堆栈导航屏幕中创建一个具有多个 material 顶部选项卡的屏幕。

打开诊所屏幕时,需要调用 API 将一些数据设置为状态,并且需要在所有三个选项卡之间共享数据(示例:if API returns 10 个号码,所有偶数列在选项卡 1 中,奇数列在选项卡 2 中)。

我该如何实现? 提前致谢。

我被 navigation.setParams() 冲昏了头脑,而忽略了反应钩子。

使用 useContext、useState 和 useEffect 达到要求。

添加了一个 ClinicsProvider.js 创建上下文,useState 维护数据状态,useEffect 进行 api 调用和 setData。 将 ClinicsProvider 包裹在包含选项卡导航器的堆栈导航器周围。 每个选项卡屏幕然后使用 useContext 挂钩导入 ClinicsContext 并访问 API 数据。