【发布时间】:2021-04-17 16:45:31
【问题描述】:
我正在使用 NextJS (v10.0.0) + TailwindCSS (v2.1.1) 构建一个反应应用程序。目前,我正在创建一个包含谷歌地图的页面,其中使用了@react-google-maps/api (v2.1.1)。更具体地说,从 useJsApiLoader 钩子注入返回值的 HOC。此 HOC 获取 google 地图库并在文档中为其创建一个脚本标签。
当尝试导入和渲染 react-select 组件时,其元素的类存在于 DOM 中,但进一步检查,此类类不存在样式,即组件按预期工作但看起来没有样式,甚至它的可访问性文字有时可见。一旦我删除负责加载库的代码,问题就会消失。
这个问题很可能发生在任何执行类似于useJSApiLoader 的任务的 HOC 或钩子上,但我想了解为什么会发生这种情况以及我能做些什么来解决它。到目前为止,我采取这种方法没有运气:
- 使用
next/dynamic(无ssr)动态加载react-select - 重构由 HOC 包装的组件以在其中包含
useJsApiLoader挂钩。 - 隔离地图组件并在其中加载库。
可以在https://github.com/noe-lc/react-select-gm 找到最小的复制回购。当 withGoogleMaps 钩子从 pages/index.js 文件中移除时,Select 组件的样式将被正确加载
感谢任何帮助。谢谢。
【问题讨论】:
标签: javascript reactjs google-maps react-select