我试图在PyScript中使用NextJS,但我看到了几个错误。我不知道如何制作PyScript的反应组件。有人在PyScript中成功地使用了ReactJS吗?谢谢,
const Home: NextPage = () => {
return (
<div>
<Head>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
</Head>
<div className="mx-auto container">
<py-repl></py-repl>
<py-script>
import datetime as dt
pyscript.write(‘today’, dt.date.today().strftime(‘%A %B %d, %Y’))
def compute_pi(n):
pi = 2
for i in range(1,n):
pi *= 4 * i ** 2 / (4 * i ** 2 - 1)
return pi
pi = compute_pi(100000)
pyscript.write(‘pi’, f’π is approximately {pi:.3f}’)
</py-script>
</div>
</div>
)
}错误1。
Type error: Property 'py-repl' does not exist on type 'JSX.IntrinsicElements'.错误2。
Unhandled Runtime Error
Error: Hydration failed because the initial UI does not match what was rendered on the server.
See more info here: https://nextjs.org/docs/messages/react-hydration-error错误3.上面的<py-script>导致
JsException(PythonError: Traceback (most recent call last): File "/lib/python3.10/site-packages/_pyodide/_base.py", line 429, in eval_code .run(globals, locals) File "/lib/python3.10/site-packages/_pyodide/_base.py", line 300, in run coroutine = eval(self.code, globals, locals) File "", line 2, in File "", line 129, in write AttributeError: 'NoneType' object has no attribute 'innerHTML' )发布于 2022-11-15 08:24:37
可以将python脚本设置为dangerouslySetInnerHTML
<div
dangerouslySetInnerHTML={{
__html: `<py-script>
from datetime import datetime
now = datetime.now()
now.strftime("%m/%d/%Y, %H:%M:%S")
</py-script>`,
}}
/>或
PyScript-React还没有可用,但是您可以遵循它- https://github.com/Py4Js/PyScript-React
https://stackoverflow.com/questions/73219847
复制相似问题