React+ts学习文档

news2024/11/17 9:54:57

1.项目中遇到的困难解决以及方案

1.顶部的查询按钮

点击查询如果在该组件去进行axios请求,这样再该组件下获得返回的列表还需要传回父组件,父组件再把列表发给下面的table组件,不太方便。

解决方案:将用户的选择项传给顶级组件index.tsx,再在顶级组件根据筛选项去进行请求,这样只需要父组件把列表发给下面的table组件渲染即可。 

2.查询按钮和index不在一个页面

查询按钮是index的子组件,但是请求是放在index里面去请求的(也是为了方便分发给下面的子组件),但是点击按钮才去进行请求,可是顶级组件如何知道是否点击按钮?

解决方案:设置一个全局redux值:inquireState,点击按钮就将该值从false变成true,或者从true变成false。一旦这个值发生改变,在顶级组件的useEffect就去执行请求

useEffect(()=>{
        console.log('查询');
        getFilteredTableData()
    },[inquireState])


// 点击查询按钮,按照条件进行查询
    function getFilteredTableData() {
        const p4 = axios.post('/api/project/project', {
            action: "getProjectInfoSearch",
            filterList: topFilterFieldValue
        }).then(
            response => {
                console.log(response.data.retlist);
                // setTableList(response.data.retlist)
                return response.data.retlist
            },
            error => {
                message.error('产线列表请求失败,请刷新重试!');
                return []
            })
    }

3.进入页面的首次请求

进入页面时首次加载需要用useEffect,这边需要注意useEffect的第二个参数,不然会导致一旦状态更新,组件将重新呈现,这将再次触发useEffect。可能导致一直执行里面的函数。

4.Modal弹出框的确认按钮

弹出框的确认按钮是作为footer的,无法拿到Modal内部表单的填写项 

解决方案:

 const onFinish =  async () => {
    const values = await form.validateFields();
    //values
    console.log("values", values);
  };

记得在表单的参数值添加:

 <Form
                        name="dynamic_form_nest_item"
                        onFinish={onFinish}
                        autoComplete="on"
                        //绑定form
                        form={form}
                    >

还有:需要通过 Form.useForm 对表单数据域进行交互

const [form] = Form.useForm()

jantd.pro中使用Modal嵌套Form实现表单的验证及表单项的值获取_逆风飞翔的猿的博客-CSDN博客antd.pro是时下很流行的React集成工具,其中包含了,react的核心代码,react路由管理,react的状态管理(dva),以及umi等适应快速开发的一套完整框架解决方案。最近接触到antd.pro,使用到Form表单的验证问题。在前端开发中必不可少的会碰到添加和修改功能。简单的添加/修改功能会在列表页list页面中定义一个Modal,或者以组件的方式创建一个CreateForm,然后在主页面引用。不管哪种方式只要是以Modal的形式展示,那就会牵扯到需要在Modal中嵌入Form表单。https://blog.csdn.net/chenqk_123/article/details/107781437

5. Modal宽高设置

Modal直接设置宽高不是很合适,因为一个页面中可能有多个Modal。但是他们的宽高不一定一致,需要一个个去设置不同的宽和高,而且我试了一下样式不生效,只有在app.less设置全局样式,仍旧没有解决设置不同的宽和高的问题

解决方案:Modal不要直接用样式去设置宽高,在Modal内部有个参数:width可以设置宽度,高度会按照内容自动撑开,如果下面需要留白,可以给一个透明div:

<p style={{ marginTop: '10px',color:'#fff',opacity:'0' }}>提示:</p>

6.AntD给表头设置tooltip

{
    // tooltip描述
     title: 
    <div>有效任务&nbsp;
        <Tooltip placement='top' title='有效任务量,即剔除了异常或删除状态的任务后,调研项目中有效任务的总量'>
            <InfoCircleOutlined />
        </Tooltip>
    </div>,
    dataIndex: 'task_count_eff',
    key: 'task_count_eff',
    
  },
  {
    title: '已分配量',
    dataIndex: 'task_count_end',
    key: 'task_count_end',
  },

参考: 

(5条消息) AntD的Table表头title加Icon图标和气泡提示Tooltip_莉兹Liz的博客-CSDN博客_antd table title

2.有用的资料

react-cli | 琥珀丶川

useEffect详解_IT-CLASS的博客-CSDN博客_useeffect

react hooks组件间的传值方式(使用ts)_一笑奈何@的博客-CSDN博客_hooks传值

React Hooks 初学者指南

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/63552.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kubernetes v1.25 搭建一个单节点集群用于Debug K8S源码

参考说明 参考自&#xff1a;v1.25.0-CentOS-binary-install-IPv6-IPv4-Three-Masters-Two-Slaves.md&#xff0c;按照自己的理解修改了下。 搭建好的单节点v1.25.4版本集群 1. 集群环境准备 1.1. 主机规划 IP主机名主机角色操作系统安装组件192.168.11.71k8s-master1maste…

在Python中使用LSTM和PyTorch进行时间序列预测

顾名思义&#xff0c;时间序列数据是一种随时间变化的数据类型。例如&#xff0c;24小时内的温度&#xff0c;一个月内各种产品的价格&#xff0c;一年中特定公司的股票价格。 去年&#xff0c;我们为一位客户进行了短暂的咨询工作&#xff0c;他正在构建一个主要基于时间序列…

【✨十五天搞定电工基础】正弦交流电路的分析

本章要求 1. 理解正弦量的特征及其各种表示方法&#xff1b; 2. 理解电路基本定律的相量形式及阻抗&#xff1b;熟练掌握计算正弦交流电路的相量分析法&#xff0c; 会画相量图&#xff1b; 3. 掌握有功功率和功率因数的计算,了解瞬时功率、无功功率和视在功率的概…

项目管理(如何进行团队管理)

团队构建与管理6步走 各项工作概述: 获取团队成员需要考虑的因素: 可用性。确认资源能否在项目所需时段内为项目所用。 成本。确认增加资源的成本是否在规定的预算内。 能力。确认团队成员是否提供了项目所需的能力。 有些选择标准对团队资源来说是独特的,包括: 经验。…

HTML人物介绍、个人设计web前端大作业、贝聿铭人物介绍(带报告3000字)

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

Allegro如何使用快捷键快速切换走线线宽操作指导

Allegro如何使用快捷键快速切换走线线宽操作指导 Allegro可以用快捷键快速切换走线线宽,比如在command下方输入数字5,可以切换到5mil的线宽 具体操作如下 打开系统属性,选择环境变量 找到home的环境变量的路径是哪里 找到路径下的pcbenv文件夹 找到env文件 用记事本打…

Android NDK初识

Android NDK是Android软件开发包(SDK)的相关工具集&#xff0c;用来扩展Android SDK的功能&#xff0c;从而使开发人员能够使用机器代码生成的编程语言(如C、C和汇编语言)实现一些对代码性能要求较高的模块&#xff0c;并将这些模块嵌入到Android应用程序中使用。 什么是Andro…

工业物联网案例:智能工厂设备无人值守系统方案

智能工厂又称“黑灯工厂”&#xff0c;具备智能化、自动化、无人化等特点&#xff0c;可以实现全天候高效的生产工作&#xff0c;是制造业的先进典范。通过工厂设备无人值守系统&#xff0c;可以集中采集、传输、处理、显示各类工业设备数据&#xff0c;可以对空压机、变电站、…

Gitee配置静态页面

辛辛苦苦写好了一个静态网页&#xff0c;想让大家都可以通过网络访问看到这个网页。比如&#xff0c;个人简历&#xff0c;个人静态页面作品展示等。 但是不想买服务器&#xff0c;配置域名&#xff0c;备案&#xff0c;什么的。 可以使用 Gitee Pages 服务&#xff0c;将静态…

Qt-FFmpeg开发-打开本地摄像头录制视频(7)

Qt-FFmpeg开发-打开本地摄像头录制视频【软解码 OpenGL显示YUV】 文章目录Qt-FFmpeg开发-打开本地摄像头录制视频【软解码 OpenGL显示YUV】1、概述2、实现效果3、FFmpeg录制视频编码流程4、主要代码5、完整源代码更多精彩内容&#x1f449;个人内容分类汇总 &#x1f448;&…

【车辆动力】基于matlab模拟停车动力学【含Matlab源码 2258期】

⛄一、获取代码方式 获取代码方式1: 完整代码已上传我的资源:【车辆动力】基于matlab模拟停车动力学【含Matlab源码 2258期】 点击上面蓝色字体,直接付费下载,即可。 获取代码方式2: 付费专栏物理应用(Matlab) 备注: 点击上面蓝色字体付费专栏物理应用(Matlab),扫…

【教学类-20-02】20221203《世界杯16强国旗-定量版》(大班)

展示效果&#xff1a; &#xff08;1个国家2张&#xff0c;16国旗&#xff0c;共32张&#xff09; 打印效果&#xff1a; 背景需求&#xff1a; 上一份代码打印后发现&#xff1a; 1.打印时发现随机抽取的图案不稳定&#xff0c;30张”澳大利亚”“波兰”的图片特别多。因为…

STM32定时器笔记

学习江科大自化协的stm32教程记录的笔记 一、TIM定时器 定时器可以对输入的时钟进行计数&#xff0c;并在计数值达到设定值时触发中断 例&#xff1a;stm32中定时器的基准时钟一般是72MHZ&#xff0c;【周期是频率的倒数1T 1/72us】&#xff0c;如果计数72个&#xff0c;就是…

[附源码]Python计算机毕业设计Django松林小区疫情防控信息管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

Netty(三)- NIO三大组件之Channel

文章目录一、Channel 基本介绍二、FileChannel 类三、Channel 应用案例1. 应用实例 1 - 本地文件写数据2. 应用实例 2 - 本地文件读数据3. 应用实例 3 - 使用一个Buffer 完成文件读取、写入4. 应用实例 4 - 拷贝文件transferFrom方法一、Channel 基本介绍 NIO的通道类似于流&am…

Mybatis:自定义映射resultMap(7)

Mybaits笔记框架&#xff1a;https://blog.csdn.net/qq_43751200/article/details/128154837 自定义映射resultMap1. Mybatis环境搭建2. 问题引入3. 解决表中的字段名和对应类的属性名不一致问题方式一&#xff1a; 为字段起别名&#xff0c;保持和属性名的一致方式二&#xff…

html静态网站基于HTML+CSS+JavaScript上海美食介绍网站网页设计与实现共计5个页面

&#x1f380; 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

K邻近算法k值选取以及kd树概念、原理、构建方法、最近邻域搜索和案例分析

一、k值选择 K值过小&#xff1a;容易受到异常点的影响k值过大&#xff1a;受到样本均衡的问题 近似误差&#xff1a;对现有训练集的训练误差&#xff0c;关注训练集&#xff0c;如果近似误差过小可能会出现过拟合的现象&#xff0c;对现有的训练集能有很好的预测&#xff0c;…

基于RockyLinux8.7一键安装OpenStack Yoga版本

硬件环境 虚拟软件&#xff1a;vmware workstation16 操作系统&#xff1a;RockyLinux8 虚拟机硬件配置&#xff1a; CPU&#xff1a;2 memory&#xff1a;8G disk&#xff1a;80G net card&#xff1a;1个—VMnet8 ip/netmask&#xff1a;192.168.9.160/24 下载并安装RockyL…

python:最小二乘法拟合原理及代码实现

这里写目录标题原理代码实现原理 最小二乘法适用于对处理的一堆数据&#xff0c;不必精确的经过每一点&#xff0c;而是根据图像到每个数据点的距离和最小确定函数。需要注意的是&#xff0c;最小二乘是对全局进行拟合优化&#xff0c;对噪声比较敏感&#xff0c;所以如果有噪…