定義 (前端數據映射): 把后台數據轉換成前端自定義的數據格式
為什么要有數據映射?為了復用組件,但是每一個組件復用時傳遞的數據不同,所以要將后台數據轉換為自定義數據格式
實例代碼:
import React, { Component } from 'react'
import _ from 'lodash'
// 模擬后台數據
const result = [
{
id: 1,
title: '小花',
xxx: 12000,
bbb: '男',
cb: v => `@${v}`,
},
{
id: 2,
title: '小白',
xxx: 27000,
bbb: '女',
cb: v => `@${v}`,
},
]
export default class Cart extends Component {
render() {
// 數據映射一般都寫在 redux 里面,或者單獨的 js 文件
// 這里使用的是 lodash 工具庫的 get 方法
// _.get(object, path, [defaultValue])
// 根據對象的path路徑獲取值,如果解析 value 是 undefined 會以 defaultValue 取代
const data = result.map(item => ({
id: _.get(item, 'id', ''),
name: _.get(item, 'title', ''),
price: _.get(item, 'xxx', ''),
sex: _.get(item, 'bbb', ''),
cb: v => `@${v}`
}))
return (
<div className="pages-cart">
<h1>cart</h1>
// 映射后的數據進行渲染
{
data.map(({name, id, price, sex, cb}) => {
return <p key={id}>{cb(name)}-{cb(price)}-{sex}</p>
})
}
</div>
)
}
}
