当前位置: 首页 > 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/news/11816.html

相关文章:

  • 适配器模式: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代码实现)
  • 物理世界的互动之旅:Matter.js入门指南
  • 初识掌控板2.0、官方拓展板和配套编程软件mpython
  • 【设计模式】如何在业务开发中使用适配器模式?
  • Flutter成不了“顶流明星”的7大理由
  • WPF_Application
  • python输入矩阵的方法
  • 融云出海赋能会干货回顾 | 用户增长、场景玩法、安全合规实用指南
  • 资深PM赞不绝口的【9种项目管理图】
  • 跳槽进阿里了,其实也没那么难...
  • ( “树” 之 DFS) 671. 二叉树中第二小的节点 ——【Leetcode每日一题】