gpt4 book ai didi

javascript - es6如何导入已经在另一个js包中定义的

转载 作者:行者123 更新时间:2023-11-30 09:21:06 24 4
gpt4 key购买 nike

我有一个像这样使用的包:

import { something } from 'somewhere';

但是我有另一个导入的包,我需要定义在其中定义的相同的 something 名称。

import myConsts from 'SomewhereElse';
const { something, another } = myConsts;

我得到一个 eslint 错误(这是正确的)一些已经定义的东西

这是一个真实的例子:

import { connect } from 'react-redux';
// following lines from react-native-kontaktio sample code...
import Kontakt from 'react-native-kontaktio';
const { connect, configure, startScanning } = Kontakt;

我试过了

import { connect as kontaktConnect, configure, startScanning } from 'react-native-kontaktio'  

但得到 Possible promise rejection ... (reactNativeKontaktio.connect) is not a function

如果我尝试改变

import { connect as reduxConnect } from 'react-redux';

我必须按如下方式更改导出。这不会破坏我在其他地方的代码吗?

// export default connect(mapStateToProps, mapDispatchToProps)(AppMain);
export default reduxConnect(mapStateToProps, mapDispatchToProps)(AppMain);

我该如何克服这个问题?在某些情况下我可以忽略警告吗? Ecma6 中没有多态性,对吗?


这不是 a question about two classes with the same name ,而是关于两个具有同名方法或常量的类。那里的答案似乎适用于此,使用:

// instead of: import myConsts from 'SomewhereElse';
import { something as somethingElse, another } from 'SomewhereElse';

但是,当我使用... somethingElse().then(()=> ... 我得到一个错误 Possible promise rejection ... (SomewhereElse.something)不是函数

这也不是 [关于修复一般 is already defined eslint 错误的问题] ( Javascript standardjs - how to fix 'is already defined'? ),因为我不是在谈论编写我的代码,而是在谈论如何 导入并使用 别人的两个包,当他们有这个冲突问题。

最佳答案

不,我认为您不能忽略该警告,因为同一范围内存在 2 个同名变量。

你可能需要这样导入:

import { connect as somethingElse} from 'react-redux';

避免变量重名。

希望对你有帮助

关于javascript - es6如何导入已经在另一个js包中定义的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51589676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com