是否可以检查文件或模块是否已导入。我正在创建一个React组件-如果要在已导入特定软件包的页面上使用它,我希望它以一种方式起作用,否则就以另一种方式起作用。
请注意,“导入”是指import X from 'y'
这可能吗?如果是这样,我该怎么办?
更新
我要检查的文件是Formik库中的Formik
React组件。也就是说,如果他导入了formik(import { Formik } from 'formik'
),那么我想做一件事,否则,我想做另一件事。如何检查组件是否已导入?
答案 0 :(得分:1)
您可以使用Dynamic imports:-
示例-
import React from "react";
import "./styles.css";
import("react-dom")
.then(ReactDOM => ReactDOM.render(<App />, rootElement));
function App() {
return (
<div className="App">
<h2>Dynamic import</h2>
</div>
);
}
const rootElement = document.getElementById("root");
此处import('react-dom')
返回promise
,如果该承诺得以解决,则该程序包可用,您可以在回调函数中使用该模块。
或者您也可以尝试-Reference
if(__webpack_modules__[require.resolveWeak("mod1")]) {
// do something when mod1 is available
}
if(require.cache[require.resolveWeak("mod1")]) {
// do something when mod1 was loaded before
}
希望有帮助!