@alicloud/console-components
Version:
Alibaba Cloud React Components
65 lines (62 loc) • 2.13 kB
text/typescript
import {
EIssueType,
EIssueConsequence
} from '../../enum';
import {
IFixing
} from '../../types';
export const FIXING_PROP_CHILDREN: IFixing = {
propName: 'children',
codeOld: `interface BreadcrumbProps {
children?: any;
}`,
codeNew: `interface BreadcrumbProps {
children: ReactElement | ReactElement[];
}`,
issues: [{
title: '<code>children</code> 中混入 <code>div</code>',
code: `<Breadcrumb>
<div>xxx</div>
<BreadcrumbItem ... />
</Breadcrumb>`,
type: EIssueType.RUNTIME_WARNING,
consequences: [EIssueConsequence.PROP_TYPES],
error: 'Warning: Failed prop type: Breadcrumb\'s children must be Breadcrumb.Item!'
}, {
title: '<code>children</code> 中混入 <code>null</code>',
code: `<Breadcrumb>
{stateXx ? <BreadcrumbItem ... /> : null}
<Breadcrumb ... />
</Breadcrumb>`,
type: EIssueType.RUNTIME_WARNING,
consequences: [EIssueConsequence.PROP_TYPES],
error: 'Warning: Failed prop type: Breadcrumb\'s children must be Breadcrumb.Item!'
}, {
title: '<code>children</code> 中混入字符串',
code: `<Breadcrumb>
字符串
<Breadcrumb ... />
</Breadcrumb>`,
type: EIssueType.RUNTIME_CRASH,
consequences: [EIssueConsequence.CRASH],
error: 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it\'s defined in, or you might have mixed up default and named imports.'
}]
};
export const FIXING_PROP_COMPONENT: IFixing = {
propName: 'component',
codeOld: `interface BreadcrumbProps {
component?: string | (() => void);
}`,
codeNew: `interface BreadcrumbProps {
component?: string | ComponentType;
}`,
issues: [{
title: '<code>component="x"</code>',
code: `<Breadcrumb component="x">
...
</Breadcrumb>`,
type: EIssueType.RUNTIME_WARNING,
consequences: [EIssueConsequence.DEBUG_WARNING],
error: 'Warning: The tag <code>x</code> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.'
}]
};