#yyds干货盘点# 【React工作记录五十一】创建一个promise对象

简介: #yyds干货盘点# 【React工作记录五十一】创建一个promise对象

前言


我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷


导语


歌谣 歌谣 有什么好的方式在react中将数据传给父组件

图片.png

代码部分

return new Promise((resolve, reject) => {
      this.props.form.validateFieldsAndScroll((error, values) => {
        if (error) {
          reject();
          return;
        }
        const { activeUpdateData = {}, type } = this.props;
        const { birthdayTime } = values;
        const { imgUrl, listCards, activeOrgan, tags, tagList, 
tagListInfo } = this.state;
        if (!imgUrl && !activeUpdateData.headImg) {
          message.info(`请上传讲师头像!`);
          reject();
          return;
        }
        console.log(values, 'values');
        var arr2 = [];
        console.log(tagList, 'tagListTest');
        tagList.map((item) => {
          if (item.checked == true) {
            arr2.push({
              tagCode: item.tagCode,
              weight: item.weight || 
(tagListInfo && tagListInfo[0]
.weight),
              tagGroupCode: item.tagGroupCode 
|| (tagListInfo && tagListInfo[0].tagGroupCode),
              tagBizType: item.tagBizType ||
 (tagListInfo && tagListInfo[0].tagBizType),
            });
          }
          return arr2;
        });
        if (arr2.length == 0) {
          this.setState({
            errType: 'error',
            errMsg: '请选择主营课程',
          });
          return false;
        }
        const payload = {
          ...values,
          lecturerOrganizationCode: values.lecturerOrganizationCode[0].
code,
          invitePeople: values.invitePeople[0].customerCode,
          applyCustomerCode: values.applyCustomerCode[0].customerCode,
          lecturerId: activeUpdateData.lecturerId,
          certificateId: activeUpdateData.certificateId,
          contactId: activeUpdateData.contactId,
          birthdayTime: birthdayTime && birthdayTime.valueOf(),
          headImg: imgUrl || activeUpdateData.headImg,
          businessMerchantCode:
            values.lecturerOrganizationCode[0].businessMerchantCode
 ||
            activeUpdateData.businessMerchantCode,
          // activeOrgan.businessMerchantCode || 
activeUpdateData.businessMerchantCode, //经营商户编号
          platformMerchantCode:
            values.lecturerOrganizationCode[0].platformMerchantCode 
||
            activeUpdateData.businessMerchantCode,
          // activeOrgan.platformMerchantCode || 
activeUpdateData.businessMerchantCode, 
//平台商户编号
          // lecturerOrganizationCode: activeOrgan.code
 || activeUpdateData.lecturerOrganizationCode,
          certificateList: listCards.map((item) => {
            return {
              certificateImgPath: item.imageUrl,
              certificateImgType: item.key,
            };
          }),
          // tagList &&
          tagBizList: arr2,
          // lecturerDetails: text,
        };
        if (type === 'update') {
          payload.lecturerDetails = activeUpdateData.lecturerDetails;
          payload.lecturerId = activeUpdateData.lecturerId;
          payload.organizationId = activeUpdateData.organizationId;
        }
        console.log(payload, 'payload');
        resolve(payload);
      });
    });
  };

总结



利用promise的正确返回值作为结果返回给父组件使用

相关文章
|
2月前
|
设计模式 前端开发 JavaScript
|
2月前
|
JSON 前端开发 JavaScript
ES6类的使用和定义.Json.Promise对象的使用
ES6类的使用和定义.Json.Promise对象的使用
19 0
|
4月前
|
前端开发 Go
15 # promise 延迟对象的作用
15 # promise 延迟对象的作用
14 0
|
1月前
|
前端开发 JavaScript API
Promise 对象与 Promises/A+ 规范
Promise 对象与 Promises/A+ 规范
29 0
|
2天前
|
前端开发 JavaScript 数据处理
JavaScript中的异步编程及Promise对象
【2月更文挑战第3天】 传统的JavaScript编程模式在处理异步任务时常常会导致回调地狱和代码可读性较差的问题,而Promise对象的引入为解决这一问题提供了一种优雅的解决方案。本文将介绍JavaScript中的异步编程方式以及Promise对象的使用方法和优势,帮助读者更好地理解和运用异步编程技术。
14 8
|
2月前
|
前端开发 JavaScript
react中的useState为什么是一个数组,而不是一个对象?
react中的useState为什么是一个数组,而不是一个对象?
25 0
|
2月前
|
前端开发
ES6学习(八)—Promise对象 超鸡重要
ES6学习(八)—Promise对象 超鸡重要
|
6月前
|
前端开发
创建一个promise对象
创建一个promise对象
38 0
|
6月前
|
前端开发 数据处理
react的对象属性替换处理
react的对象属性替换处理
41 0
|
6月前
|
前端开发
react如何在数组中手动添加一个对象
react如何在数组中手动添加一个对象
103 0

相关产品

  • 云迁移中心