我正在尝试使用 Next.js 从脚本中的页面获取元素 在
index.tsx
中导入文件board.js
,代码如下:
import React, {useEffect} from "react";
function getElementByID(ID) {
// Returns an element of a given ID
// ID: Unique element id
let elem;
useEffect(() => {elem = document.getElementById(ID)}, []);
return elem;
}
let currently_selected = getElementByID('11');
建站失败返回错误
error - TypeError: Cannot read properties of null (reading 'useEffect')
at useEffect (C:\Users\syhma\WebstormProjects\sudoki-next\node_modules\react\cjs\react.development.js:1634:21)
at getElementByID (webpack-internal:///./script/board.js:11:53)
at eval (webpack-internal:///./script/board.js:16:26)
at Object../script/board.js (C:\Users\syhma\WebstormProjects\sudoki-next\.next\server\pages\index.js:32:1)
at __webpack_require__ (C:\Users\syhma\WebstormProjects\sudoki-next\.next\server\webpack-runtime.js:33:42)
at eval (webpack-internal:///./pages/index.tsx:11:74)
at Object../pages/index.tsx (C:\Users\syhma\WebstormProjects\sudoki-next\.next\server\pages\index.js:22:1)
at __webpack_require__ (C:\Users\syhma\WebstormProjects\sudoki-next\.next\server\webpack-runtime.js:33:42)
at __webpack_exec__ (C:\Users\syhma\WebstormProjects\sudoki-next\.next\server\pages\index.js:72:39)
at C:\Users\syhma\WebstormProjects\sudoki-next\.next\server\pages\index.js:73:28
at Object.<anonymous> (C:\Users\syhma\WebstormProjects\sudoki-next\.next\server\pages\index.js:76:3)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.requirePage (C:\Users\syhma\WebstormProjects\sudoki-next\node_modules\next\dist\server\require.js:88:12)
at C:\Users\syhma\WebstormProjects\sudoki-next\node_modules\next\dist\server\load-components.js:48:73
at async Object.loadComponents (C:\Users\syhma\WebstormProjects\sudoki-next\node_modules\next\dist\server\load-components.js:48:26)
at async DevServer.findPageComponents (C:\Users\syhma\WebstormProjects\sudoki-next\node_modules\next\dist\server\next-server.js:563:36)
at async DevServer.findPageComponents (C:\Users\syhma\WebstormProjects\sudoki-next\node_modules\next\dist\server\dev\next-dev-server.js:1041:20)
at async DevServer.renderPageComponent (C:\Users\syhma\WebstormProjects\sudoki-next\node_modules\next\dist\server\base-server.js:951:24)
at async DevServer.renderToResponse (C:\Users\syhma\WebstormProjects\sudoki-next\node_modules\next\dist\server\base-server.js:980:32)
at async DevServer.pipe (C:\Users\syhma\WebstormProjects\sudoki-next\node_modules\next\dist\server\base-server.js:407:25)
at async Object.fn (C:\Users\syhma\WebstormProjects\sudoki-next\node_modules\next\dist\server\next-server.js:759:21)
at async Router.execute (C:\Users\syhma\WebstormProjects\sudoki-next\node_modules\next\dist\server\router.js:253:36)
at async DevServer.run (C:\Users\syhma\WebstormProjects\sudoki-next\node_modules\next\dist\server\base-server.js:384:29)
at async DevServer.run (C:\Users\syhma\WebstormProjects\sudoki-next\node_modules\next\dist\server\dev\next-dev-server.js:743:20)
at async DevServer.handleRequest (C:\Users\syhma\WebstormProjects\sudoki-next\node_modules\next\dist\server\base-server.js:322:20) {
page: '/'
}
我期待它返回一个元素。