一、H5制作 - 图片文本的动画效果

bug:打开一个模板,添加图片,添加动画效果,若先选定动画效果,再调节动画时间和延迟时间,则动画和延迟时间没有改变;若先调节动画时间和延迟时间在选定动画效果,则动画和延迟时间可以实现。

期望:先选定动画效果,再调节动画时间和延迟时间,动画和延迟时间也能实现。


问题原因:原代码中的动画数据保存时机设置在选择动画类型的时候

只能先选时间再选动画,如果先选动画再选时间,后选的时间就保存不了了

解决方法:①将slider组件的onChange方法关掉,只保留onAfterChange方法,只在值改变完成后更新组件

②时间值改变之后,先保存当前的时间值存入before-xxx中,然后再改变state中对应的时间值

③componentDidUpdate方法中监测当state中now存在,且两个时间值的前后state不同时保存数据

二、v网平台 - 背景音乐自动播放

bug: 音乐设置,开启启用背景音乐、背景音乐自动播放,选择“Intro”作为背景音乐,回到v网平台,没有自动播放音乐,需要点击暂停播放音乐再播放音乐,才能听到背景音乐。

期望:音乐设置,开启启用背景音乐、背景音乐自动播放,选择音乐后,回到v网平台,能自动播放音乐


问题原因:①原代码只考虑了同时设置自动播放、选择音乐使用时,可正常请求接口改变数据

②已选择了音乐使用,单独设置自动播放时,没有请求接口改变数据

解决方法:添加useBgm、defaultAuto两个状态

存入新选择使用的音乐uri、打开设置界面前默认设置的是否自动播放

在组件更新时,判断“自动播放”状态有改变,且有“使用”的音乐时请求接口,存入“自动播放”状态

if(this.props.autoPlay != defaultAuto && (vwebBgm || useBgm))

三、参与的活动 - 活动详情页返回逻辑  

bug:个人中心参与的活动,点击缩略图进入活动详情页,再点击左上角的返回按钮,返回的页面是活动推广列表页面

期望:回到参与的活动列表页面


App.js添加ViewActBack状态的传入

<ViewActivity change={this.changeRouter.bind(this)}
activity_id={this.state.activity_id}
handleImageUpload={this.handleImageUpload.bind(this)}
ViewActBack={this.state.ViewActBack}/>

myActivity文件夹下listItem.js点击缩略图跳转传state多传一个ViewActBack

onClick={() => {this.props.isjoin && this.props.change('ViewActivity', {activity_id:data.promotionId, ViewActBack: 'myJoinAct'})}}

viewActivity.js中back方法添加判断条件

back() {
if(this.props.ViewActBack == 'myJoinAct'){
this.props.change('MyJoinAct',{activity_id:null, ViewActBack: null});
}else{
this.props.change('ActivityList',{activity_id:null});
}
}

  

四、我的订单 - 已有快递单号的待收货和已完成订单,快递单号旁需要一个复制按钮,点击复制快递单号


解决方法:添加按钮 使用clipboard组件库

import ClipboardJS from "clipboard"; 

initCopy = (trNum) => {
this.clipboard = new
ClipboardJS(document.getElementsByClassName('MyOrderDetail_copy')[0], {
text: function(trigger) {
// console.log(trigger, url, 'url')
return trNum;
}
}); this.clipboard.on('success', function(e) {
// console.info('Action:', e.action);
// console.info('Text:', e.text);
// console.info('Trigger:', e.trigger); Toast.info('复制成功', 1);
}); this.clipboard.on('error', function(e) {
Toast.info('复制失败,请手动进行复制', 1);
// console.error('Action:', e.action);
// console.error('Trigger:', e.trigger);
});
}

五、我的粉丝 - 点击粉丝总数和粉丝分类 没有请求

问题原因:点击之后只执行了跳转页面,在刚进入页面时,没有执行调用接口获取粉丝数据的方法

解决方法:myFansList.js中

componentDidMount(){
this.fansList()
}  

衍生问题:右上角选择粉丝类型展示数据中,点击“全部”没有数据

问题原因:选择组件获取到的数据为字符串,需要转为数字类型,再执行方法调用接口

selectValue:Number(v)

六、我的订单 - 待收货状态但后台未填写快递单号时,物流信息显示“待揽件”


<p style={{fontSize:"12px",color:'#999999'}}>{data.status == 1 && !data.trNum ? '待揽件' : `快递单号: ${data.trNum}`}</p>

七、设置 - 允许他人复制我的平台

bug:关闭允许他人复制我平台后,再次回到设置页面查看,按钮显示开启。

期望:关闭 允许他人复制我的平台的时候,设置页面显示按钮关闭;开启 允许他人复制我的平台的时候,设置页面显示按钮打开。


问题原因:①原代码请求接口时把RAP上的BODY粘贴到了代码中,导致请求不到正确数据

②缺少获取当前设置的“是否允许他人复制”的状态相关代码

解决方法:修改并增加以上

 
八、H5制作 - 增加页面限定在10张,超过10提示“页面数量已达上限”                  

解决方法:增加页数限定

if(leng > 9){
Toast.info('页面数量已达上限', 1);
return
}else{
//原增加页面代码

九、v网编辑 - 项目、文章制作这些所有 需要点击提交的  

bug:网络差的时候 添加产品时多次点击提交 会同时发布好几个产品


解决方法:五个编辑部分,所有的提交或发布submit方法中,执行调用接口提交数据前,添加flag阻止重复点击重复调用

let isClick = true;     // 放在submit函数前

// submit函数中:
setTimeout(() => {
isClick = true;
}, 1000); //一秒内不能重复点击

十、音乐设置 - 点击使用,使用成功,使用按钮应变灰色,文字改为已使用

bug:现在是点击使用没有什么反应,用户可能不知道已经成功使用了该音乐


问题原因:没有写点击“使用”按钮除设置音乐以外的代码

解决方法:①增加“已使用”的按钮css,

②重写点击“使用”按钮的触发方法,更改到父组件位置

③添加userIndex、userType状态获取、传入、判断当前选中项的使用状态

④调用两个接口,获取V网背景音乐与H5模板设置的音乐,添加vwebBgm、editH5Bgm

⑤判断当前为已使用状态时,点击按钮不走接口,直接return,实现按钮禁用

十一、平台编辑 - 更多资讯处,缺少浏览量的显示  

期望:安卓截图


解决方法: 修改样式与安卓统一,平台展示与平台编辑处样式统一,都添加了浏览量显示

原平台处中添加eventViews并填入页面

this.files.push({
url: setFileHost() + this.events[i].pic.icon[0].uri,
id: this.events[i].id|| 0,
title: this.events[i].title,
eventViews: this.events[i].eventViews||0,
optCreateTime: this.events[i].optCreateTime
});

  

十二、文章制作 - 文章管理页面

bug:  ①已发布、审核中、未通过、草稿这四个分类旁需要统计该分类下的文章总数;

②文章标题显示两行,超过两行用省略号;

期望:安卓截图


问题原因:原代码没有的新需求,需要和安卓统一

解决方法:①进入页面和搜索时,调用接口获得4类文章的数量存入数组,判断listTotal.length为4时数字变化

②限制宽度、高度,文字超出宽度换行,文字超出两行时显示省略号,判断字节数设置不同top

注释:目前【文字超出两行时显示省略号】功能只有谷歌webkit内核支持

    display: -webkit-box;
/* autoprefixer: off */
-webkit-box-orient: vertical;
/* autoprefixer: on */
-webkit-line-clamp: 2; //可以显示的行数

十三、活动 - 活动详情页

bug:当购买用户数量为2时,只显示了一个购买用户


问题原因: ① antd mobile组件的<Carousel>走马灯UI组件,内容必须是大于一个的。

② 原代码通过两层循环得到代码片段<Fragment>中的<div>元素,

由于最外层buyer是通过构造特定数据结构得到的二维数组,

经过两层循环,得到的代码片段里固定为两个购买者的<div>元素。

③ 原代码处理buyer时,缺少对data.buyer数组元素只有两个时的判断处理,

此时<Carousel>组件包裹的只有一个固定的两个购买用户的div,

对比不同情况发现,此时<Carousel>组件中原有的div->ul->li->轮播元素中的li层缺失,

(div class="slider-frame"  ->  ul class="slide-list" -> li class="slider-slide")

没有了滑动元素,因此走马灯滑动失效,(设置显示dot也会只有一个)

解决方法:

if (data.buyers.length == 2) {
buyers = [data.buyers, [data.buyers[1], data.buyers[0]]];
}else{


注:转载请注明出处

【零售App】—— react/ant design mobile项目爬坑的更多相关文章

  1. 【后台管理系统】—— Ant Design Pro 项目爬坑(一)

    1.表单rule中可以分对象处理不同规则 <FormItem label="类型名称" {...formLayout}> { form.getFieldDecorato ...

  2. React + Ant Design网页,配置

    第一个React + Ant Design网页(一.配置+编写主页) 引用博主的另外一篇VUE2.0+ElementUI教程, 请移步:  https://blog.csdn.net/u0129070 ...

  3. React+Ant Design设置左侧菜单导航路由的显示与隐藏(与权限无关)

    最近在学习react时,用到了很流行的UI框架Ant Design,也了解了一下Ant Design Pro,发现它们都有导航组件,Ant Design框架的导航菜单在这里,Ant Design Pr ...

  4. 【饿了么】—— Vue2.0高仿饿了么核心模块&移动端Web App项目爬坑(三)

    前言:接着上一篇项目总结,这一篇是学习过程记录的最后一篇,这里会梳理:评论组件.商家组件.优化.打包.相关资料链接.项目github地址:https://github.com/66Web/ljq_el ...

  5. Ant Design Pro项目打开页设为登录或者其他页面

    Ant Design Pro项目打开页设为登录或者其他页面 一.打开页设为登录页 首先找到utils包中的authority文件,在该文件中找到如下代码: export function getAut ...

  6. 【React自制全家桶】一、Webstrom+React+Ant Design+echarts搭建react项目

    前言 一.React是Facebook推出的一个前端框架,之前被用于著名的社交媒体Instagram中,后来由于取得了不错的反响,于是Facebook决定将其开源.出身名门的React也不负众望,成功 ...

  7. (二)React Ant Design Pro + .Net5 WebApi:前端环境搭建

    首先,你需要先装一个Nodejs,这是基础哦.如果没有这方面知识的小伙伴可以在园子里搜索cnpm yarn等关键字,内容繁多,此不赘述,参考链接 一. 简介 1. Ant Design Pro v5 ...

  8. React / Ant Design Pro 实现Canvas画布实时自适应

    如何实现canvas根据父容器进行自适应? Ant Design的组件都提供了强大的自适应能力,为了对齐父组件,镶嵌在Ant Design组件里的canvas也需要能根据父级容器进行自适应的能力,页面 ...

  9. React +Redux+ Ant Design + echarts 项目实践

    项目框架 采用React.js作为项目的框架 采用redux作为数据管理的框架 采用antd作为项目的UI组件 采用echarts完成项目中折线图的绘制 个人项目工作流程总结 拿到UI高保真图片之后先 ...

随机推荐

  1. cmd内部命令和外部命令的区别

    内部命令 我们可以直接在CMD下就可以执行的命令,例如:telnet.ftp.dir.cd.等等,你可以在CMD下输入help进行查看 外部命令 就是cmd下不能直接运行的命令,(例如大家常用的nc) ...

  2. AGC015E Mr.Aoki Incubator

    atcoder luogu 首先可以考虑给一个人\(A\)染色.其他人被染色,要么被本来在后面的速度更快的人染色,要么被在前面的更慢的人染色.然后假设一个速度比最开始那个人慢的人\(B\)最后被染色了 ...

  3. 定义一个数组,并对这个数组进行动态初始化,使用sort方法进行排序后,再将数组中的元素倒置过来。

    Sort方法,生序排序 package com.fs.array; import java.util.Arrays; public class ArraySort { public static vo ...

  4. bignumber.js是一款用于任意精度十进制和非十进制算术的JavaScript库

    安装 npm install bignumber.js 引入 import { BigNumber } from 'bignumber.js' 实例方法 加法:plus 0.1 + 0.2 // 0. ...

  5. 2019-11-29-win10-uwp-轻量级-MVVM-框架入门-2.1.5.3199

    title author date CreateTime categories win10 uwp 轻量级 MVVM 框架入门 2.1.5.3199 lindexi 2019-11-29 10:16: ...

  6. php通过反射方法调用私有方法

    PHP 5 具有完整的反射 API,添加了对类.接口.函数.方法和扩展进行反向工程的能力. 下面我们演示一下如何通过反射,来调用执行一个类中的私有方法: <?php //MyClass这个类中包 ...

  7. mysql5.7二进制包进行多实例安装

    一.需求 在一台服务器上安装mysql5.7,并且部署两个实例:3306用于本机主库,3307用于其他MYSQL服务器的从库 二.下载mysql二进制包 [root@push-- src]# -lin ...

  8. 为什么 Android 开发者都应该尝试一下 Anko?

    简评: 这里介绍的仅仅是 Anko 中很小的一部分,Kotlin + Anko 真的让 Android 开发简化了不少,用了 Anko 基本就可以告别那些什么 Android 不得不知的代码收集贴了. ...

  9. tar/gzip/zip文件打包、压缩命令

    一.tar打包备份工具 1.命令功能 tar 将多个文件或目录打包在一起,可用通过调用gzip或zip实现压缩.解压的命令:tar不仅可以多多个文件进行打包,还可以对多个文件打包后进行压缩. 2.语法 ...

  10. Access数据库删除重复记录,只保留一条记录的做法

    Access数据库删除重复记录,只保留一条记录的做法: 只保留id最小的记录方法: delete from [表名] where id not in (select min(id) from [表名] ...