我有一个简单的项目
import Music from '../components/music';
export default function Home() {
return (
<Music></Music>
)
}
import dynamic from 'next/dynamic';
const abcjs = dynamic(import('abcjs'), { ssr: false });
export default function Music({note}) {
return (
<>
<div id="paper"></div>
{abcjs.renderAbc("paper", "X:1\nK:D\nDDAA|BBA2|\n")}
</>
)
}
我的package.json
是
{
"name": "music-quiz",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "cross-env NODE_OPTIONS='--inspect' next dev",
"build": "next build",
"start": "next start"
},
"dependencies": {
"abcjs": "^5.12.0",
"next": "10.2.0",
"react": "17.0.2",
"react-dom": "17.0.2",
},
"devDependencies": {
"cross-env": "^7.0.3"
}
}
但是,浏览器告诉我abcjs.renderAbc is not a function
,据我所知,这应该可行。
如果它使我运行任何区别next.js
与npm run dev
。
如果我尝试记录 abcjs,我似乎得到了一个空对象。vscode
告诉我它找不到 的声明类型abcjs
,但这无关紧要。
显然库没有被正确导入,但我不知道为什么会这样。
编辑:我应该补充一点,我发现了这个例子并且正在将它改编为next
.
FAQ中也有关于这个的内容,但它并没有解决问题