我使用redux并且无法使用地图将我的UTC日期转换为适当的格式。
const adsReducer = (state = initalState, action) => {
switch (action.type) {
case 'FETCH_ADS_PENDING':
return { ...state, loading: true }
case 'FETCH_ADS_FULFILLED':
return {
...state,
loading: false,
data: ((action.payload || {}).data || {}).map(o => ({...o, created_at: moment(o.created_at).format('DD-MM-YYYY')})),
}
}
}
如果我只是返回action.payload.data那么它会没问题,但我想将日期解析为正确的格式,上面的代码会导致这样的错误
Uncaught (in promise) TypeError: ((action.payload || (intermediate value)).data || (intermediate value)).map is not a function
任何线索是什么?
答案 0 :(得分:0)
问题是,如果未定义action.payload
或未定义action.payload.data
,您正尝试映射对象
假设action.payload.data
是一个数组,您可以执行以下操作:
action.payload &&
action.payload.data &&
action.payload.data.map(o => (
{...o, created_at: moment(o.created_at)
.format('DD-MM-YYYY')
}
)),
答案 1 :(得分:0)