我使用survivejs.com网站作为模板来构建一个基于Map的React应用程序。对于Map,我使用传单,但我找不到添加leaflet.css的方法。如果没有这个,Map切片将以错误的顺序显示。
我尝试过使用以下方法将leaflet.css添加到App.jsx文件中:
require('leaflet/dist/leaflet.css');
但得到以下错误
ERROR in ./~/leaflet/dist/leaflet.css
Module parse failed: myApp/node_modules/leaflet/dist/leaflet.css Unexpected token (3:0)
You may need an appropriate loader to handle this file type.
如果我可以访问index.html,我可以添加它,但我与webpack,我不清楚如何做到这一点?
7条答案
按热度按时间nnsrf1az1#
我通过简单地导入CSS解决了这个问题,如下所示:
fruv7luv2#
在使用webpack的应用程序中(通过create-react-app),我在与Map相关的css文件的顶部添加了以下行:
例如,这个文件可以是
map.css
。我还把任何自定义的Mapcss样式放在这个文件中。然后,在使用
Map
组件的javascript / jsx文件中,导入以下css文件:nuypyhwy3#
没有加载器的帮助,Webpack无法解析CSS。最常用的CSS加载器是webpack/css-loader。
我不同意Lakshman Diwaakar的回答,因为我认为在组件的JSX中导入特定于组件的CSS文件是非常有益的,因为它允许该组件的所有相关代码都位于一个位置。如果我删除了该组件,那么CSS就不再是任何构建的一部分。如果我想重用一个组件,那么CSS就在那里。
9q78igpj4#
这个代码对我有用。
1/直接从传单(位于node_modules内)导入leaflet.css
2/添加useEffect,替换Map标记图标(默认情况下,在leaflet.css导入后,标记不可见)
3/渲染任何瓣叶组件🥳
stszievb5#
好吧,所以我得到了来自幸存者的Juho Vepsäläinen的帮助。他的建议是
我听从了他的建议,在webpack.config文件中添加了以下内容:
但我也需要添加一个文件加载器后
yyyllmsg6#
我已经处理过传单,并且将传单添加到index.html中的操作是正确的。通常,你不会在JSX中添加CSS文件。所有的样式和外部库都添加到index.html中。
在我的例子中,它是index.jade。使用leaflet和reactJS实现了开放的街道Map。
xxslljrj7#