javascript - 使用 setInterval 调用一个 react 组件函数
问题描述
我创建了一个名为 IsLoggedIn 的函数,它使用带有 axios.get 的 useEffect 挂钩来查询服务器以获取用户的 cookie 会话时间。我想使用 setInterval 函数调用 IsLoggedIn,如下所示:
setInterval(<IsLoggedIn></IsLoggedIn>, 2000) //--> This is in app.js
但是,我收到一个错误:
Uncaught SyntaxError: Unexpected identifier
setInterval (async)
eval @ App.js:92
./src/App.js @ bundle.js:75202
__webpack_require__ @ bundle.js:790
fn @ bundle.js:101
eval @ index.js:6
./src/index.js @ bundle.js:75272
__webpack_require__ @ bundle.js:790
fn @ bundle.js:101
eval @ client:3
1 @ bundle.js:75389
__webpack_require__ @ bundle.js:790
(anonymous) @ bundle.js:857
(anonymous) @ bundle.js:860
如果有人对为什么会发生这种情况有任何想法,请告诉我。谢谢!
解决方案
有几件事情需要解决:
我创建了一个名为 IsLoggedIn 的函数,它使用了一个 useEffect 钩子
假设您已经创建了一个自定义钩子,则不应将其用作组件(),正确的方法是:
const bla = useLoggedIn(); // custom hooks are also prefixed with 'use'
我想使用 setInterval 函数调用 IsLoggedIn
钩子只能在函数组件的主体内部调用,所以最好将其移到setInterval
自useEffect
定义钩子的内部。
推荐阅读
- javascript - Bootstrap 下拉子菜单关闭上游子菜单
- docker - 使用 docker 映像作为依赖项,我想在 docker compose 中运行多个命令但无法执行
- r - 如何将 JSON 文件转换为 R 中的数据框?
- javascript - Dragend 客户端在 Safari 和 Firefox 上的坐标不一致
- sql - SQL 日期智能:从最后一个已知有效结果开始按秒过滤数据
- java - 是否有使用 ImageIcon 和 URL 下载图像的异步方式?
- php - PHP 错误提示:尝试在第 303 行获取 C:\code 中非对象的属性
- java - SpringBoot Java Linux
- python - 如何获取 Javascript 中的内容