Browse Source

Fix Breadcrumb falsy children, close #5015

pull/5021/head
afc163 8 years ago
parent
commit
9c6a6d6175
  1. 5
      components/breadcrumb/Breadcrumb.tsx
  2. 19
      components/breadcrumb/__tests__/Breadcrumb.test.js
  3. 2
      components/breadcrumb/demo/basic.md

5
components/breadcrumb/Breadcrumb.tsx

@ -88,8 +88,11 @@ export default class Breadcrumb extends React.Component<BreadcrumbProps, any> {
});
} else if (children) {
crumbs = React.Children.map(children, (element: any, index) => {
if (!element) {
return element;
}
warning(
element && element.type.__ANT_BREADCRUMB_ITEM,
element.type && element.type.__ANT_BREADCRUMB_ITEM,
'Breadcrumb only accetps Breadcrumb.Item as it\'s children'
);
return cloneElement(element, {

19
components/breadcrumb/__tests__/Breadcrumb.test.js

@ -1,6 +1,7 @@
import React from 'react';
import { mount } from 'enzyme';
import Breadcrumb from '../Breadcrumb';
import { mount, render } from 'enzyme';
import { renderToJson } from 'enzyme-to-json';
import Breadcrumb from '../index';
describe('Breadcrumb', () => {
it('warns on non-Breadcrumb.Item children', () => {
@ -18,4 +19,18 @@ describe('Breadcrumb', () => {
'Breadcrumb only accetps Breadcrumb.Item as it\'s children'
);
});
// https://github.com/ant-design/ant-design/issues/5015
it('should allow Breadcrumb.Item is null or undefined', () => {
const wrapper = render(
<Breadcrumb>
{null}
<Breadcrumb.Item>Home</Breadcrumb.Item>
{undefined}
</Breadcrumb>
);
// eslint-disable-next-line
expect(console.error.calls).toBe(undefined);
expect(renderToJson(wrapper)).toMatchSnapshot();
});
});

2
components/breadcrumb/demo/basic.md

@ -1,6 +1,6 @@
---
order: 0
title:
title:
zh-CN: 基本
en-US: Basic Usage
---

Loading…
Cancel
Save