比如说这种情况,从后端请求一个接口,然后返回的值里面有部分需要重新组装成前端需要的格式,而有部分又不需要,这时就会有很长的一段代码,如下:
const data = await getShopDetail({id})
let detail = {}
// 下面只给出了几种情况,实际是有更多的情况的
// 不需要改动
detail.name = data.name
// 这里处理时间
detail.created_at = day(data.created_at)
// 一些判断处理
detail.status = data.status.toString() ? data.status.toString() : ''
// 判断有没有时间然后再处理
if (data.cosume_times) {
const [start, end] = data.cosume_times.split('-')
detail.cosume_times_start = day(start, 'HH:mm')
detail.cosume_times_end = day(end, 'HH:mm')
}
// 做图片处理
detail.img = data.img ? JSON.parse(data.img) : []
detail.img.forEach((item, index) => {
...
})
// 数组里面做一些运算处理
data.info.forEach(item => {
if (item.type === 1) {
detail.count = item.count
detail.rate = NP.divide(item.rate, 100)
if (item.food_type === 1) {
detail.price = NP.divide(item.price, 100)
detail.weight = NP.divide(item.weight, 100)
} else {
...
}
} else {
...
if (item.food_type === 1) {
...
} else {
...
}
}
})
// 做一些运算处理
detail.profit = data.profit !== '' ? NP.divide(data.profit, 100) : ''
this.setState({
detail
})
相应的获取详情之后编辑提交的时候肯定也会有如上类似的处理组装成后端需要的格式,同样也是一大段类似的代码,请问大佬这种该怎么优化呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.