react-hooks 常见错误汇总

常见错误

  • Warning: Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?
    在使用react封装了一个公用组件时,组件中使用了connect连接redux后的组件,然后其他地方引用该组件后就提示以上警告,虽然不影响使用,但看着不舒服。
    解决方法:
    导出组件时使用:
export default connect(

stateToProps, null, null, { forwardRef: true }

)(SelectEnumNode);
  • 异步操作的坑
    ① 使用 useEffect 发起异步任务,第二个参数使用空数组可实现组件加载时执行方法体,返回值函数在组件卸载时执行一次,用来清理一些东西,例如计时器。
    ② 使用 AbortController 或者某些库自带的信号量 (axios.CancelToken) 来控制中止请求,更加优雅地退出。
    ③ 当需要在其他地方(例如点击处理函数中)设定计时器,在 useEffect 返回值中清理时,使用局部变量或者 useRef 来记录这个 timer。不要使用 useState。
    ④ 组件中出现 setTimeout 等闭包时,尽量在闭包内部引用 ref 而不是 state,否则容易出现读取到旧值的情况。
    ⑤ useState 返回的更新状态方法是异步的,要在下次重绘才能获取新值。不要试图在更改状态之后立马获取状态。可以使用useRef存储值
  • React Hooks 异步操作踩坑记
  • 使用编辑器braft-editor 前端页面无法展示空格
// 富文本内容的空格处理
#editor p{
  white-space: pre-wrap;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值