小编Ahm*_*him的帖子

如何在React JS中5秒后消失警报?

import { useState } from 'react'
    
    const Message = ({ variant, children }) => {
      const [timeOut, setTimeOut] = useState(null)
    
      setTimeout(() => {
        setTimeOut(1)
      }, 3000)
    
      return (
        timeOut !== 1 && <div className={`alert alert-${variant}`}>{children}</div>
      )
    }
    
    Message.defaultPros = {
      variant: 'info',
    }
    
    export default Message
Run Code Online (Sandbox Code Playgroud)

我想在 2 或 3 秒后消失这个警报。我使用了这个逻辑,它很好并且工作正常,但是在我的控制台中,我收到以下警告:

警告:无法对已卸载的组件执行 React 状态更新。这是一个空操作,但它表明应用程序中存在内存泄漏。要修复此问题,请取消 useEffect 清理函数中的所有订阅和异步任务。

它会影响我的应用程序还是没问题?你可以给我一个更好的想法来实现这个逻辑。

javascript reactjs react-bootstrap

9
推荐指数
1
解决办法
5万
查看次数

如何将数组转换为数组对象并将两个数组合并为一个数组?

const absentStudentsId = [78, 15, 41, 30] // ======> [{stdId: 78, isPresent: false}, {stdId: 15, isPresent: false}, {stdId: 41, isPresent: false}, {stdId: 30, isPresent: false}]

const presentStudentsId = [80, 61] // ======> [{stdId: 80, isPresent: true}, {stdId: 61, isPresent: true}]

const students = [
  { stdId: 78, isPresent: false },
  { stdId: 15, isPresent: false },
  { stdId: 41, isPresent: false },
  { stdId: 30, isPresent: false },
  { stdId: 80, isPresent: true },
  { stdId: 61, isPresent: true }, …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

0
推荐指数
1
解决办法
45
查看次数

标签 统计

javascript ×2

reactjs ×2

react-bootstrap ×1