当前位置: 首页 > article >正文

React 搜索时遇到的坑

一、业务场景:
最近在优化React的天枢项目里面,搜索时遇到了一些问题。为了大家后面遇到和我一样的问题,给大家分享一下

二、问题描述:
1.点击搜索按钮,报以下错误。

TypeError: Converting circular structure to JSON
–> starting at object with constructor ‘HTMLSpanElement’
| property ‘parser’ -> object with constructor ‘FiberNode’
— property ‘socket’ closes the circle

主要原因是参数传过去,打印出来一直显示事件对象,并不是传过去的值(不能传参,只能用useRef全局定义并接收
在这里插入图片描述
解决方案

   <Button type='primary' onClick={Search}>查询</Button> //这里传会一直调接口
//条件搜索
  function Search() {
    getConfigList(
      {
        isShelf:isShelf.current ,  //就用全局来接,不传值
      }
    ).then( (res)=> {
    })
      .catch(function (error) {
        console.log(error);
      })
  }

2.点击radio组件时,需要点击两次才生效

主要原因是参数没传过去,打印出来一直显示事件对象(不能用
const [isShelf, setIsShelf] = useState(undefined)来定义
只能用useRef和current来操作

  const handleHotText = (i: number) => {
    setCurrentIndex(i)
    console.log(currentIndex)
// 全部
    if (i == 0) {
      // setIsShelf()            //不能用setIsShelf
      isShelf.current = null
      Search()
    } else if (i == 1) {
        // setIsShelf(1)  //不能用setIsShelf
      isShelf.current = 1
        Search()
    } else if (i == 2) {
      // setIsShelf(0)  //不能用setIsShelf
      isShelf.current = 0
      Search()
    }
  }

三、效果展示:
const isShelf = useRef(null);
getConfigList(
{
isShelf:isShelf.current ,
pageNum:pageCode.current,
pageSize:bannerSize.current
}
).then( (res)=> {
console.log(res)
}) .catch(function (error) {
console.log(error);
})

你已经成功了,撒花。
今天的分享到此结束,欢迎小伙伴们一起交流


http://www.kler.cn/a/11816.html

相关文章:

  • 如何将现有VUE项目所有包更新到最新稳定版
  • 无人机之姿态融合算法篇
  • 蔚来Android面试题及参考答案(3万字长文)
  • 小程序开发进阶之路: 重新认识产品经理
  • 若依框架-添加测试类-最新
  • 《今日制造与升级》是什么级别的期刊?是正规期刊吗?能评职称吗?
  • 适配器模式:C++设计模式中的瑞士军刀
  • 确保实时操作系统(RTOS)设备中的数据安全
  • RHCE第一次作业at和cront两个任务管理程序的区别
  • [python刷题模板] 博弈入门-记忆化搜索/dp/打表
  • 基于逻辑回归构建肿瘤预测模型
  • Java面试题总结 | Java基础部分2(持续更新)
  • 《人体地图》笔记
  • 【京准小课堂】NTP网络校时服务器(时间同步系统)参数详解
  • 企业级信息系统开发讲课笔记2.3 利用MyBatis实现关联查询
  • windows下的wsl2如何进行docker数据卷挂载
  • 1.1 Docker Engine-详细介绍
  • SCADE Display(OpenGL)软件设计文档生成工具的设计考虑
  • Cad二次开发 Database类的方法和属性
  • 【数据结构】第九站:树和二叉树
  • STM-32:I2C外设总线—硬件I2C读写MPU6050
  • 在Mac上安装Appium Desktop的具体步骤
  • Linux系统中curl命令用法
  • Redis高可用
  • Android之AppWidget 开发浅析
  • 配电网电压调节及通信联系研究(Matlab代码实现)