如何将Framework 7与shadow-cljs和clojurescript集成

问题描述 投票:0回答:2

[当我尝试使用shadow-cljs在clojurescript项目中初始化Framework7和Framework7-React时,出现如下错误:

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';

// Import Icons and App Custom Styles
import '../css/icons.css';
import '../css/app.css';

// Init F7 React Plugin
Framework7.use(Framework7React);

[有一个hacky解决方案,其中涉及两个独立的构建管道,以获取在一个简单的shadow-cljs示例项目中启动并运行Framework7。

我创建了一个a test project,其中显示了两个版本,即出现错误的非工作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?

clojurescript html-framework-7 shadow-cljs fulcro
2个回答
0
投票
(ns foo.bar (:require ["framework7" :as f7] ["framework7-react" :as f7r])) ;; avoiding top-level side-effects because of hot-reload (defn init [] (.use f7 f7r))

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.