React/Redux 商店内的可变对象(包装器映射框)?

Mutable object inside a React/Redux store ( wrapper mapbox)?

是否可以在 store redux 中存储可变对象?

我正在尝试在我的应用程序的 mapbox 外部库上创建一个包装器。我使用库创建了一个地图对象:

组件 - 地图

import * as MapboxGl from 'mapbox-gl'
.......
componentDidMount() {
  this.mapObject = new MapboxGl.Map({
      container: this.MapContainer
      style: 'mapbox://styles/mapbox/light-v9',
   })
}
.......

接下来,我需要将 mapObject 传递给子组件。 组件结构:

<App>
........
  <Map>
    <Source>
      <Layer />
      <Layer />
    </Source>
  </Map>
.......
</App>  
  1. 如何将 mapObject 传输到子组件(来源/ Laer) (我可以将这个对象保存到 redux 存储还是使用 react 上下文并将 mapObject 的数据保存在商店 redux 中)?
  2. 你能分享一个 link 到一个完整的项目 (gits) 来工作吗 和 实现上述情况的地图?

已经在您提交的 Redux 问题中回答了这个问题,但为了可见性,我也会在这里回答:

我会说这是一个视图层问题,因此不应将其保留在几个级别的 Redux 存储中。

在我们自己的应用程序中,我们正在使用 Cesium 3D 地球库,并且还需要传递对地图相关对象的引用,例如 Cesium 的 Scene class。在我们的应用程序中,我们通过将值作为道具传递来明确地做到这一点,但是 React 16.3 中可用的新 React Context API 也是一个不错的选择。

您可能想通读我在 rendering a Cesium 3D globe using React 上的帖子,其中展示了这种方法。