我正在尝试制作我自己的Python基础教程,类似于codecademy.com所拥有的交互式编辑器。然而,我正在努力使Pyodide与反应一起工作。
使用非常基本的入门示例,我可以在我的index.html应用程序的create-react-app中完成以下工作:
<!-- PYODIDE -->
<script src="https://cdn.jsdelivr.net/pyodide/dev/full/pyodide.js"></script>
<title>React App</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<script type="text/javascript">
async function main() {
let pyodide = await loadPyodide();
console.log(pyodide.runPython(`
import sys
sys.version
`));
pyodide.runPython("print(1 + 2)");
}
main();
</script>
.....
</body>但是,当我试图将相同的代码移动到一个单独的组件时,它说的是'loadPyodide' is not defined
import React from 'react'
const Task1 = ({ replNum, task }) => {
async function main() {
let pyodide = await loadPyodide();
console.log(pyodide.runPython(`
import sys
sys.version
`));
pyodide.runPython("print(1 + 2)");
}
main();
return (
SOME CODE
)为什么会这样呢?
发布于 2022-10-13 21:18:23
尝试使用window.loadPyodide而不是loadPyodide。React使用设置“使用严格”的模块,因此不允许未声明的全局变量。
https://stackoverflow.com/questions/74061589
复制相似问题