TypeError: Cannot read property ‘map’ of undefined
const formItems = useMemo(() => {
return [
{
key: 'systemName',
name: '业务系统名称',
type: 'input',
formatter: (v: string) => {
return v || '-';
}
},
{
key: 'msgTypeName',
name: '消息类型',
type: 'select',
formatter: (v: string, currentBusinessDetail?: ListRes) => {
return currentBusinessDetail.msgClientTypeVOS.map(x => x.msgTypeName) || '--';
}
},
];
}, []);
这种情况下,提示map没有定义,其实很大可能是map的对象undefined了。可以打断点或者控制台打印排查一下。
const formItems = useMemo(() => {
return [
{
key: 'systemName',
name: '业务系统名称',
type: 'input',
formatter: (v: string) => {
return v || '-';
}
},
{
key: 'msgTypeName',
name: '消息类型',
type: 'select',
formatter: (v: string, currentBusinessDetail?: ListRes) => {
return (currentBusinessDetail.msgClientTypeVOS || []).map(x => x.msgTypeName) || '--';
}
},
];
}, []);
这样子排除掉可以出现空数组的情况就可以解决问题了。