当我尝试在 clojurescript 项目中初始化 Framework7 和 Framework7-React 时,使用 shadow-cljs 出现如下错误:
f7.js:31 Uncaught TypeError: Framework7 is not a constructor
at Object.init (f7.js:31)
at F7App.value (app.js:162)
at commitLayoutEffects (react-dom.development.js:21965)
at HTMLUnknownElement.callCallback (react-dom.development.js:363)
at Object.invokeGuardedCallbackImpl (react-dom.development.js:412)
at invokeGuardedCallback (react-dom.development.js:467)
at commitRootImpl (react-dom.development.js:25025)
at exports.unstable_runWithPriority (scheduler.development.js:816)
at runWithPriority$2 (react-dom.development.js:12189)
at commitRoot (react-dom.development.js:24866)
Framework7 初始化通常只包含以下内容
// Import Framework7
import Framework7 from 'framework7/framework7-lite.esm.bundle.js';
// Import Framework7-React Plugin
import Framework7React from 'framework7-react';
// Import Framework7 Styles
import 'framework7/css/framework7.bundle.css';
// Init F7 React Plugin
Framework7.use(Framework7React);
有一个 hacky 解决方案,它涉及两个单独的构建管道,以便在一个简单的 shadow-cljs 示例项目中启动并运行 Framework7。
我创建了一个显示两个版本的测试项目,即发生错误的非工作 clojurescript 版本,可以通过以下方式运行:
npx shadow-cljs watch :direct-no-webpack
它使用 client2.cljs
工作版本使用 ES6 导入语法初始化 Framework7,并使用 webpack 进行转译。
yarn run build-dev
npx shadow-cljs watch :direct
它会产生上述错误。
我不详细了解,因为涉及多个包装器,Framework7 中到底发生了什么。
如何正确导入和使用带有 Clojurescript 和 Shadow-CLJS 的 Framework7?