我正在使用 uber 的react-map-gl
和deck-gl
库来尝试动态显示数据。我的React小应用程序中有2个组件。和Mapbox map
。这是我的管道。页面首次加载时,仅显示地图,没有任何标记或可视数据。但是当我单击导航栏link
时,{{当我进行action creator
调用以获取一些数据时,将调用1}},并从分派的操作中将响应数据作为有效负载传递并到达ajax
,以便我有一个新的我想在其中存储的数据的存储键版本:reducer
,其中包含mainProjects
的数组。我在导航栏链接上的点击成功更新了该值,而实际的{ {1}}组件,我可以加载新值,但是geojson
无法更新我的localstate。这是我的地图代码:
Map
在上面的代码中,我尝试通过is setters来更新我的本地状态值,但是useEffect
似乎不起作用。它看起来像只被调用了一次,在组件第一次渲染时时间。我该如何解决这个问题?
谢谢!!
答案 0 :(得分:1)
您的useEffect具有一组与实际使用的依赖项不匹配的依赖项。 您正在使用mainProjects的元素设置您的本地状态,因此useEffect仅在mainProjects更改时才会执行某些操作。
您似乎并没有对useState-Variables做任何事情,因此您不更改状态,因此反应不会重新呈现。
更新:检查依赖数组(useEffect的第二个参数)和函数内部使用的变量(第一个参数)是否对应非常重要,否则会发生不好的事情;-)
有一个附带规定:https://www.npmjs.com/package/eslint-plugin-react-hooks