# 返回值
# 在了解返回值约束之前,我们先看一下FlowStore
的内部实现
每个列表的默认属性如下:
const defaultListObj = {
result: [], // 列表数据
page: 0, // 页码
noMore: false, // 是否还有更多
nothing: false, // 列表是否为空
loading: false, // 列表是否正在加载
error: null, // 列表是否加载出错,默认为 null,错误时为 Error 对象
fetched: false, // 列表是否初始化过
total: 0, // 整个列表的总条数
extra: null // 接口返回的额外数据
}
因为我们无法支持任意的接口返回模式,因此我们要约束 API 层的返回值
const response = {
result: [], // 数据的列表,必须
no_more: false, // 是否还有更多,必须
total: 0, // 列表的总数
extra: {} // 额外数据
}
因此,如果你需要获取除了列表数据以外的其他数据,请在 API 层把它转化到 extra 中,如:
// api.js
export const getListByPage = ({ page, count }) => {
return new Promise((resolve, reject) => {
axios.get('...', { params: { page, count } })
.then(data => {
resolve({
result: data.list,
no_more: data.noMoreKey,
total: data.total_count,
extra: {
key: data.otherValue
}
})
})
.catch(reject)
})
}
← 参数