如果变量是某个值,我想添加一个useEffect if语句的依赖项.例如:

let counter = 5;


    useEffect(() => {
        socket.on("counter", counter => {
            setCounter(counter);
        });
        return () => socket.off('counter', counter);
    }, [socket])


useEffect(() => {
//do something
}, counter = 0)

最后这个"COUNTER=0"显然是错误的.那么,当计数器为0时,我如何运行第二个useEffect呢?

推荐答案

你不能做你描述的事情(或者至少不应该做),所以你只需要移动你的逻辑.不是只在一个变量等于另一个值时才运行useEffect,而是需要在该变量发生变化时随时运行useEffect,并在回调中判断值inside.

let counter = 5;


useEffect(() => {
  if (counter == 0) {
    //do something
  }
}, [counter])

还要注意的是,=始终是一项任务.要判断相等性,您需要=====.

Reactjs相关问答推荐

无法覆盖MUI工具栏上的左右填充,除非使用!重要

CreateBrowserRouter将props 传递给父组件以验证权限

如何避免react 使用ESLINTreact 挂钩/穷举-deps进行第一次呈现

如何将Redux工具包添加到expo (SDK 50)项目?

REACTION 18功能组件正在开发中的S

一键MUI导出

需要特定的数学函数来标准化动画持续时间

为什么react日历时间轴项Renderprops 不能与useState挂钩一起使用?

React 在第一次渲染时为 null

从 MongoDB createAt 字段中分割精确时间

如何在我的自定义主题中样式化MUI TreeItem组件

这个简单的React组件为什么会多次渲染?

React中useAuthenticator的authState在成功登录后仍保持未认证状态 - 需要强制刷新

React - 将一个充满空值的无限大小的数组存储在 ref 中是否可以,或者我应该重置数组吗?

Redux Toolkit 配置,是否适用于全栈应用程序?

Next.js i18n 路由不适用于动态路由

添加新行时自动打开可扩展表格(Antd 表格,ReactJS)

setState 改变对象引用

用 scss 覆盖 MUI

在 redux 工具包中使用 dispatch 发送多个操作