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

react 使用状态管理调用列表接口渲染列表(包含条件查询,统一使用查询按钮,重置功能),避免重复多次调用接口的方法

react开发调用api接口一般使用useEffect来监听值的变化,通过值的变化与否来进行接口调用。
比如我们要进行一个查询接口

    const [pageParams, setPage] = useState({name: '',id: '',});const [dataList, setDataList] = useState([]);const getList = async () => {const res = await requirementList({...pageParams,});setDataList(res.data.records);};useEffect(() => {getList();}, [pageParams]);//当pageParams值变化的时候,就会触发list接口

当然,页面内可能会有很多的按钮,比如有两个input框,一个input框是控制查询名称,一个input是查询id。这两个按钮后面有一个查询按钮,当点击查询按钮的时候,才会进行页面的数据处理。
因此需要绑定两个input的值,但是每次进行input值的时候就会触发接口调取,

const app =()=>{const handleName = (value) =>{setPage((prev)=>{return {...prev,name:value}});}const handleId = (value) =>{setPage((prev)=>{return {...prev,id:value}});}//查询按钮const handleSearchDemand = () => {getList();}//因为我们每次更改input的值,都会导致pageParams的值发生变化,这就会导致接口调用,但是我们需要再查询的时候才调用,因此需要更改useEffect的监听条件,改为首次进入页面触发,[pageParams] 更改为[]useEffect(() => {getList();}, []);return (<div><Input value={pageParams.name} onChange={handleName}   /><Input value={pageParams.id} onChange={handleId} /><Button onClick={handleResetSearch}>重置</Button><Button type="primary" onClick={handleSearch}>查询</Button></div>)}

重置按钮也需要我们不仅把input的值置为空,并且在置空完成后,需要对接口重新进行调用。

错误代码:

	const handleResetSearch = () =>{setSearchValue((prevData) => ({...prevData,name: '',id: '',}));list();	}

如果我们在这里直接调用list接口,是无法进行同步的接口数据调用的,因为setSearchValue函数是一个异步函数,会导致我们调用接口的时候还是老的值,没有进行重置值。因此还是通过监听input的值的变化来进行接口调用,但是同时我们又不想在input值变化时候立即调用,因为我们可以添加一个中间状态,通过一个中间状态来进行处理。

正确代码:

	//设置一个状态,在点击重置按钮,设置为true,useEffect监听到值变化,我们再设置为false,从而形成一个完美闭环const [resetStatus, setResetStatus] = useState(false);const handleResetSearch = () =>{setSearchValue((prevData) => ({...prevData,name: '',id: '',}));setResetStatus(true);}useEffect(() => {if (resetStatus) {getList();setResetStatus(false);}}, [resetStatus])

这样处理,就可以解决上述问题产生的矛盾,只需要在重置完成后,准确的同步调用列表接口了。

相关文章:

react 使用状态管理调用列表接口渲染列表(包含条件查询,统一使用查询按钮,重置功能),避免重复多次调用接口的方法

react开发调用api接口一般使用useEffect来监听值的变化&#xff0c;通过值的变化与否来进行接口调用。 比如我们要进行一个查询接口 const [pageParams, setPage] useState({name: ,id: ,});const [dataList, setDataList] useState([]);const getList async () > {const…...

Stable Audio Open模型部署教程:用AI打造独家节拍,让声音焕发新活力!

Stable Audio Open 是一个开源的文本到音频模型&#xff0c;允许用户从简单的文本提示中生成长达 47 秒的高质量音频数据。该模型非常适合创建鼓点、乐器即兴演奏、环境声音、拟音录音和其他用于音乐制作和声音设计的音频样本。用户还可以根据他们的自定义音频数据微调模型&…...

加油站-(贪心算法)

题目描述 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发&#xff0c;开始时油箱为空。 给定两个整数数组 gas…...

k8s-持久化存储PV与PVC(1)

1、概述 为什么 kubernetes 要持久化存储&#xff1f; 在 kubernetes 中部署应用都是以 Pod 的容器运行的&#xff0c;而 Pod 是有生命周期&#xff0c;一旦 Pod 被删除或重启后&#xff0c;这些数据也会随着丢失&#xff0c;则需要对这些数据进行持久化存储。 PV&#xff1…...

Linux Red Hat Enterprise

下载 https://developers.redhat.com/products/rhel/download 安装...

《中型 Vue 项目:挑战与成长》

一、引言 在当今的前端开发领域&#xff0c;Vue 作为一款渐进式 JavaScript 框架&#xff0c;以其强大的功能和灵活性备受开发者青睐。对于中型 Vue 项目而言&#xff0c;其重要性不言而喻。中型 Vue 项目通常在功能复杂度和规模上介于小型项目和大型项目之间&#xff0c;既需要…...

配置 DNS over HTTPS阻止DNS污染

概念介绍 DOH简介 ​ DNS&#xff08;域名系统&#xff09;的主要功能是将域名解析成IP地址&#xff0c;域名的解析工作由DNS服务器完成。从安全角度来看&#xff0c;域名解析的请求传输时通常不进行任何加密&#xff0c;这导致第三方能够很容易拦截用户的DNS&#xff0c;将用…...

Facebook广告文案流量秘诀

Facebook 广告文案是制作有效 Facebook 广告的关键方面。它侧重于伴随广告视觉元素的文本内容。今天我们的博客将深入探讨成功的 Facebook 广告文案的秘密&#xff01; 一、广告文案怎么写&#xff1f; 正文&#xff1a;这是帖子的正文&#xff0c;出现在您姓名的正下方。它可…...

22. 五子棋小游戏

文章目录 概要整体架构流程技术名词解释技术细节小结 1. 概要 &#x1f50a; JackQiao 对 米粒 说&#xff1a;“今天咱们玩个五子棋小游戏&#xff0c;电脑与你轮流在一个 nn 的网格上放置棋子&#xff08;X 或 O&#xff09;&#xff0c;网格由你输入的正整数n决定&#xff0…...

fastadmin框架同时使用 阿里云oss和阿里云点播

背景 项目的实际需求中既要用到阿里云oss产品又用到阿里云点播系统&#xff0c;实现完美的统一。设置两个地址downUrl&#xff0c;thirdCode。分别代表阿里云oss上传路径和阿里云点播系统vId。 实现 默认框架你已经集成好阿里云oss集成工作&#xff0c;前端html页面实现 <…...

Java-JMX 组件架构即详解

JMX架构由三个主要组件构成&#xff1a; ‌MBeans&#xff08;Managed Beans&#xff09;‌&#xff1a;代表可管理的资源&#xff0c;是JMX的核心。MBean可以是Java类或接口&#xff0c;提供了管理操作的接口&#xff0c;如获取系统信息、设置参数等。‌MBeanServer‌&#x…...

unity打包web,发送post请求,获取地址栏参数,解决TypeError:s.replaceAll is not a function

发送post请求 public string url "http://XXXXXXXXX";// 请求数据public string postData "{\"user_id\": 1}";// Start is called before the first frame updatevoid Start(){// Post();StartCoroutine(PostRequestCoroutine(url, postData…...

java+ssm+mysql校园物品租赁网

项目介绍&#xff1a; 使用javassmmysql开发的校园物品租赁网&#xff0c;系统包含管理员、用户角色&#xff0c;功能如下&#xff1a; 管理员&#xff1a;用户管理&#xff1b;物品管理&#xff08;物品种类、物品信息、评论信息&#xff09;&#xff1b;订单管理&#xff1…...

Spring Boot中实现JPA多数据源配置指南

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;本文详细介绍了在Spring Boot项目中配置和使用JPA进行多数据源管理的步骤。从引入依赖开始&#xff0c;到配置数据源、创建DataSource bean、定义实体和Repository&#xff0c;最后到配置事务管理器和使用多数据…...

服务器加固

1.服务器密码复杂度 密码最小长度&#xff0c;密码复杂度策略 vim /etc/pam.d/system-auth --------------- #密码配置 #ucredit&#xff1a;大写字母个数&#xff1b;lcredit&#xff1a;小写字母个数&#xff1b;dcredit&#xff1a;数字个数&#xff1b;ocredit&#xff1a;…...

探索CSS中的背景图片属性,让你的网页更加美观

导语&#xff1a;在网页设计中&#xff0c;背景图片的运用能够丰富页面视觉效果&#xff0c;提升用户体验。本文将详细介绍CSS中背景图片的相关属性&#xff0c;帮助大家更好地掌握这一技能。 一、背景图片基本属性 1、background-image 该属性用于设置元素的背景图片。语法如…...

Oracle的打开游标(OPEN_CURSORS)

一、OPEN_CURSORS 概述 OPEN_CURSORS 指定会话一次可以拥有的打开游标&#xff08;私有 SQL 区域的句柄&#xff09;的最大数量。可以使用此参数来防止会话打开过多的游标。 OPEN_CURSORS参数说明 特性 描述 参数类型 Integer 默认值 50 修改方式 ALTER SYSTEM PDB级别…...

数值分析—数值积分

研究背景 积分的数学解法为牛顿莱布尼兹公式&#xff0c;数学表示为 ∫ a b f ( x ) d x F ( b ) − F ( a ) \int_{a}^{b} f(x)dxF(b)-F(a) ∫ab​f(x)dxF(b)−F(a)&#xff0c;但应用该方法有如下困难&#xff1a; 1&#xff0c; f ( x ) f(x) f(x)的原函数有时不能用初等函…...

克服大规模语言模型限制,构建新的应用方法——LangChain

大模型 大模型的出现和落地开启了人工智能(AI)新一轮的信息技术革命&#xff0c;改变了人们的生 活方式、工作方式和思维方式。大模型的落地需要数据、算力和算法三大要素。经过几 年发展&#xff0c;大模型的数据集(包括多模态数据集)制作已经形成了规约&#xff0c;Meta、Go…...

计算机网络 —— HTTPS 协议

前一篇文章&#xff1a;计算机网络 —— HTTP 协议&#xff08;详解&#xff09;-CSDN博客 目录 前言 一、HTTPS 协议简介 二、HTTPS 工作过程 1.对称加密 2.非对称加密 3.中间人攻击 4.引入证书 三、HTTPS 常见问题 1.中间人能否篡改证书&#xff1f; 2.中间人能否调…...

React第十七章(useRef)

useRef 当你在React中需要处理DOM元素或需要在组件渲染之间保持持久性数据时&#xff0c;便可以使用useRef。 import { useRef } from react; const refValue useRef(initialValue) refValue.current // 访问ref的值 类似于vue的ref,Vue的ref是.value&#xff0c;其次就是vu…...

React第十五节useReducer使用详解差异

useReducer() 的用法注意事项 1、 概述&#xff1a; useReducer() 常用于管理复杂的状态更新逻辑&#xff0c;特别是在状态更新依赖于多个条件或动作时&#xff0c;useReducer 提供了一种更加结构化和可维护的方式来处理状态。可以将更新函数写在组件外面 它与 useState() 相…...

NanoLog起步笔记-5-客户端简要描述

nonolog起步笔记-5-客户端简要描述 客户端的简要的设计图路notify模式服务端最好分两个核 NanoLog::setLogLevel(NOTICE);从 NANO_LOG 开始NANO_LOGcompiling time的语句getNumNibblesNeeded&#xff1a;得到prompt中&#xff0c;number的数量countFmtParams&#xff1a;得到所…...

Flink:入门介绍

目录 一、Flink简介 2.1 Flink 架构 2.2 Flink 应用程序 运行模式 二、Flink 集群 部署 2.1 本地集群模式 2.1.1 安装JDK​编辑 2.1.2 下载、解压 Flink 2.1.3 启动集群 2.1.4 停止集群 2.2 Standalone 模式 2.2.0 集群规划 2.2.1 安装JDK 2.2.2 设置免密登录 2…...

目标跟踪领域经典论文解析

亲爱的小伙伴们&#x1f618;&#xff0c;在求知的漫漫旅途中&#xff0c;若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界&#xff0c;亦或是读研论文的撰写攻略有所探寻&#x1f9d0;&#xff0c;那不妨给我一个小小的关注吧&#x1f970;。我会精心筹备&#xff0c;在…...

网络编程 | TCP套接字通信及编程实现经验教程

1、TCP基础铺垫 TCP/IP协议簇中包含了如TCP、UDP、IP、ICMP、ARP、HTTP等通信协议。TCP协议是TCP/IP协议簇中最为常见且重要的通信方式之一&#xff0c;它为互联网上的数据传输提供了可靠性和连接管理。 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议…...

SAP导出表结构并保存到Excel 源码程序

SAP导出表结构并保存到Excel,方便写代码时复制粘贴 经常做接口,需要copy表结构,找到了这样一个程程,特别有用。 01. 先看结果...

Linux下redis环境的搭建

1.redis的下载 redis官网下载redis的linux压缩包&#xff0c;官网地址:Redis下载 网盘链接&#xff1a; 通过网盘分享的文件&#xff1a;redis-5.0.4.tar.gz 链接: https://pan.baidu.com/s/1cz3ifYrDcHWZXmT1fNzBrQ?pwdehgj 提取码: ehgj 2.redis安装与配置 将包上传到 /…...

REDMI瞄准游戏赛道,推出小屏平板

近日&#xff0c;REDMI推出了一款8.8英寸的小屏平板&#xff0c;引发市场关注。该平板采用LCD屏幕&#xff0c;搭载天玑9400处理器&#xff0c;定位游戏市场&#xff0c;意在开拓小屏平板的新领域‌。 ‌小屏平板新尝试‌ 这款REDMI平板未追随大屏潮流&#xff0c;而是选择了8…...

springai结合ollama

目录 ollama 介绍 使用 下载&#xff1a; 安装&#xff1a; 点击这个玩意next就行了。 运行 spring ai使用ollama调用本地部署的大模型 加依赖 配置yml 写代码 ollama 介绍 官网&#xff1a;Ollama Ollama是一个用于部署和运行各种开源大模型的工具&#xff1b; …...

高品质网站建设公司/怎么自己做网页

2019独角兽企业重金招聘Python工程师标准>>> 在Java的集合框架中&#xff0c;经常需要通过构造方法传入一个比较器Comparator&#xff0c;或者创建比较器传入Collections的静态方法中作为方法参数&#xff0c;进行比较排序等&#xff0c;使用的是策略模式。 策略模式…...

如何登录我的wordpress/新手怎么做seo优化

开箱揭秘显示器戴尔UP3221Q到底怎么样&#xff1f;真的好吗&#xff1f;使用八个月反馈感受&#xff1f;这个戴尔UP3221Q可以的哈&#xff0c;才购的&#xff0c;显示器非常满意&#xff0c;支架做工精良&#xff0c;包装的泡沫非常厚&#xff0c;1500R的曲率沉浸感十足&#x…...

phpcms转wordpress/网站优化公司认准乐云seo

通常大家会认为项目不成功是执行的问题&#xff0c;执行因素导致的项目失败的确占到一定的比例。但是从美国权威机构Standish Group跟踪研究的1484个项目的数据来看&#xff0c;项目团队组织上的问题导致项目失败的比例高达23%&#xff0c;具体表现为团队人员配置不当、职责不明…...

做网站销售是干什么的/培训课程有哪些

# -*- coding: utf-8 -*- import matplotlib.pyplot as plt from skimage.feature import local_binary_pattern import numpy as np import cv2""" 局部二值模式 LBP 1. 在原始图像中取一个3 * 3的区域2. 以中心区域像素为阈值&#xff0c;将周围像素值与其进行…...

个人 可以备案做分类信息网站吗/搭建网站需要哪些步骤

分割等和子集 给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: [1, 5, 11, 5] 输出: true 解释: 数组可以分割成 [1, 5, 5] 和 [11]…...

做简单网站怎么做/武汉网络推广广告公司

要处理一批文本类型的日期数据&#xff0c;这些文本日期的格式均为 2008-01-31 00:00:00 这样的格式&#xff0c;目标是通过一个函数转化为 20080131 这样的文本样式&#xff0c;于是乎写了一个转化程序&#xff1a; def btk_datetime2cvh(table, title): datetimes list(tabl…...