使用不同版本的传单库
Use different versions of leaflet library
我正在使用 React 和其他不同的库开发 Web 应用程序。
我正在使用使用传单库 1.4.0 的 Windy API(天气预报)。
我也想在同一个应用程序中使用传单,但这次使用最新版本 1.7.1。
我按照 Windy API 文档中的描述,使用 CDN 导入传单 1.4.0。
我用npm导入最新版本。
问题是 leaflet 正在创建一个全局变量 L,所以当我导入最新版本的 leaflet 时,API windy 不起作用。
我尝试用别名导入传单,但它并没有改变全局变量的问题。
是否可以更改全局变量的名称?
有什么解决这个问题的建议吗?
谢谢!
您可以使用 L.noConflict()
将旧对象应用于 L
和 returns Leaflet 实例:
console.log(L.version) // 1.4.0
import 'leaflet';
console.log(L.version) // 1.7.1
var leaflet1_7 = L.noConflict();
console.log(L.version) // 1.4.0
console.log(leaflet1_7 ) // 1.7.1
但也可能是 noConflict 没有正常工作,其中存在一些错误。但它们已在 1.8.0-beta.3
和未来几天即将发布的版本中修复。
我正在使用 React 和其他不同的库开发 Web 应用程序。
我正在使用使用传单库 1.4.0 的 Windy API(天气预报)。
我也想在同一个应用程序中使用传单,但这次使用最新版本 1.7.1。
我按照 Windy API 文档中的描述,使用 CDN 导入传单 1.4.0。
我用npm导入最新版本。
问题是 leaflet 正在创建一个全局变量 L,所以当我导入最新版本的 leaflet 时,API windy 不起作用。
我尝试用别名导入传单,但它并没有改变全局变量的问题。
是否可以更改全局变量的名称? 有什么解决这个问题的建议吗?
谢谢!
您可以使用 L.noConflict()
将旧对象应用于 L
和 returns Leaflet 实例:
console.log(L.version) // 1.4.0
import 'leaflet';
console.log(L.version) // 1.7.1
var leaflet1_7 = L.noConflict();
console.log(L.version) // 1.4.0
console.log(leaflet1_7 ) // 1.7.1
但也可能是 noConflict 没有正常工作,其中存在一些错误。但它们已在 1.8.0-beta.3
和未来几天即将发布的版本中修复。