码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • React+ts学习文档


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

    1.顶部的查询按钮

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

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

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

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

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

    1. useEffect(()=>{
    2. console.log('查询');
    3. getFilteredTableData()
    4. },[inquireState])
    5. // 点击查询按钮,按照条件进行查询
    6. function getFilteredTableData() {
    7. const p4 = axios.post('/api/project/project', {
    8. action: "getProjectInfoSearch",
    9. filterList: topFilterFieldValue
    10. }).then(
    11. response => {
    12. console.log(response.data.retlist);
    13. // setTableList(response.data.retlist)
    14. return response.data.retlist
    15. },
    16. error => {
    17. message.error('产线列表请求失败,请刷新重试!');
    18. return []
    19. })
    20. }

    3.进入页面的首次请求

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

    4.Modal弹出框的确认按钮

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

    解决方案:

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

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

    1. <Form
    2. name="dynamic_form_nest_item"
    3. onFinish={onFinish}
    4. autoComplete="on"
    5. //绑定form
    6. form={form}
    7. >

    还有:需要通过 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:

    marginTop: '10px',color:'#fff',opacity:'0' }}>提示:

    6.AntD给表头设置tooltip

    1. {
    2. // tooltip描述
    3. title:
    4. <div>有效任务 
    5. <Tooltip placement='top' title='有效任务量,即剔除了异常或删除状态的任务后,调研项目中有效任务的总量'>
    6. <InfoCircleOutlined />
    7. Tooltip>
    8. div>,
    9. dataIndex: 'task_count_eff',
    10. key: 'task_count_eff',
    11. },
    12. {
    13. title: '已分配量',
    14. dataIndex: 'task_count_end',
    15. key: 'task_count_end',
    16. },

    参考: 

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

    7.AntD为Form的List设置默认值 

    form.list实现动态增减表单项,但是没有默认显示一组或者多组数据

    解决方案:AntD为Form的List设置默认值 - 简书 (jianshu.com)

    2.有用的资料

    react-cli | 琥珀丶川

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

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

    React Hooks 初学者指南

  • 相关阅读:
    软件项目管理==风险计划
    JS事件绑定
    【CEOI2022】Drawing(全局平衡二叉树,构造,分治)
    Keepalived
    Pytorch,矩阵求和维度变化解析
    企业中WEB前端项目开发流程
    说说Alpha指令集和那些事儿
    基于go语言gin框架的web项目骨架
    网络地址转换技术NAT(第九课)
    STM32+TMC2209控制步进电机正反转。
  • 原文地址:https://blog.csdn.net/weixin_42934729/article/details/128092957
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号