【React】上传文章封面基础实现

news/2024/7/7 19:46:34 标签: react.js, 前端, 前端框架
 <Form.Item label="封面">
            <Form.Item name="type">
              <Radio.Group onChange={onTypeChange}>
                <Radio value={1}>单图</Radio>
                <Radio value={3}>三图</Radio>
                <Radio value={0}>无图</Radio>
              </Radio.Group>
            </Form.Item>
            {/* 
              listType: 决定选择文件框的外观样式
              showUploadList: 控制显示上传列表
            */}
            {imageType > 0 && <Upload
              listType="picture-card"
              showUploadList
              action={'http://geek.itheima.net/v1_0/upload'}
              name='image'
              onChange={onChange}
              maxCount={imageType}
              fileList={imageList}
            >
              <div style={{ marginTop: 8 }}>
                <PlusOutlined />
              </div>
            </Upload>}
          </Form.Item>

相关属性

listType: 决定选择文件框的外观样式
在这里插入图片描述
showUploadList: 控制显示上传列表
在这里插入图片描述
onChange 上传回调,有默认形参
在这里插入图片描述

  //上传回调
  const onChange = (val)=>{
    console.log(val);
  }

默认形参,打印结果如下:
在这里插入图片描述
备注将fileList中的数据存下来,提交给后端
name上传的接口字段,由接口字段提供,接口文档中叫啥名,这里就叫啥名
在这里插入图片描述

在这里插入图片描述
action 配置上传地址
在这里插入图片描述
在这里插入图片描述
对封面类型与图片数量的校验

目的:如果封面类型选的是三图,而只上传了一张图片,则不能发布文章,上传图片数量必须与选择的封面类型要求的图片数量一致

// 提交表单
  const onFinish = (formValue) => {
    console.log(formValue)
    // 校验封面类型imageType是否和实际的图片列表imageList数量是相等的
    if (imageList.length !== imageType) return message.warning('封面类型和图片数量不匹配')
    const { title, content, channel_id } = formValue
    // 1. 按照接口文档的格式处理收集到的表单数据
    const reqData = {
      title,
      content,
      cover: {
        type: imageType, // 封面模式
        // 这里的url处理逻辑只是在新增时候的逻辑
        // 编辑的时候需要做处理
        images: imageList.map(item => {
          if (item.response) {
            return item.response.data.url
          } else {
            return item.url
          }
        }) // 图片列表
      },
      channel_id
    }

http://www.niftyadmin.cn/n/5535136.html

相关文章

ArcGIS Pro SDK (七)编辑 7 操作Blob字段

ArcGIS Pro SDK &#xff08;七&#xff09;编辑 7 操作Blob字段 目录 ArcGIS Pro SDK &#xff08;七&#xff09;编辑 7 操作Blob字段1 使用属性检查器读取和写入 Blob 字段2 在回调中使用行游标读取和写入 Blob 字段 环境&#xff1a;Visual Studio 2022 .NET6 ArcGIS Pro…

探索金融数据API:现代投资的关键工具

在当今快节奏的金融市场中&#xff0c;实时准确的数据对于投资者而言至关重要。金融数据API&#xff08;Application Programming Interface&#xff09;成为了投资者获取和管理数据的核心工具。本文将探讨金融数据API的基本概念、用途及其对投资策略的影响。 什么是金融数据A…

【C++设计模式】(一)面向对象编程的八大原则

文章目录 面向对象编程的八大原则1 单一职责原则2 开放-关闭原则3 里氏替换原则4 接口隔离原则5 依赖倒置原则6 迪米特法则/ 最少知识原则7 合成复用原则8 针对接口编程而不是针对实现编程 面向对象编程的八大原则 面向对象编程有一系列的设计准则来保证软件的质量&#xff0c…

ASPICE培训:推动汽车行业软件质量的新高度

在当今日新月异的汽车行业中&#xff0c;软件技术已经成为推动行业发展的核心动力。随着智能化、网联化、电动化等趋势的加速&#xff0c;汽车软件的质量和性能要求也越来越高。为了满足这一需求&#xff0c;ASPICE&#xff08;Automotive SPICE&#xff09;标准应运而生&#…

.Net C#执行JavaScript脚本

文章目录 前言一、安装二、执行 JavaScript 脚本三、与脚本交互四、JS 调用 C# 方法五、多线程使用总结 前言 ClearScript 是一个 .NET 平台下的开源库&#xff0c;用于在 C# 和其他 .NET 语言中执行脚本代码。它提供了一种方便和安全的方法来将脚本与应用程序集成&#xff0c;…

算法刷题笔记 双链表(C++实现)

文章目录 题目描述基本思路实现代码 题目描述 实现一个双链表&#xff0c;双链表初始为空&#xff0c;支持5种操作&#xff1a; 在最左侧插入一个数&#xff1b;在最右侧插入一个数&#xff1b;将第k个插入的数删除&#xff1b;在第k个插入的数左侧插入一个数&#xff1b;在第k…

嵌入式软件stm32面试

一、STM32的内核型号有哪些? STM32系列是STMicroelectronics(意法半导体)生产的基于ARM Cortex-M内核的微控制器产品线。这些产品按照不同的内核架构和性能特点分为了主流产品、超低功耗产品和高性能产品。 1.1 主流产品 STM32F0 系列:搭载 ARM Cortex-M0 内核。STM32F1 …

Java实现单点登录(SSO)详解:从理论到实践

✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心哦&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; ✨✨ 帅哥美女们&#xff0c;我们共同加油&#xff01;一起进步&am…