diff --git a/src/browser/ui/dom/components/ReactDOMSelect.js b/src/browser/ui/dom/components/ReactDOMSelect.js index d18fe854289..fc4ce90d8c8 100644 --- a/src/browser/ui/dom/components/ReactDOMSelect.js +++ b/src/browser/ui/dom/components/ReactDOMSelect.js @@ -89,7 +89,9 @@ function updateOptions(component, propValue) { return; } } - options[0].selected = true; + if (options.length) { + options[0].selected = true; + } } } diff --git a/src/browser/ui/dom/components/__tests__/ReactDOMSelect-test.js b/src/browser/ui/dom/components/__tests__/ReactDOMSelect-test.js index 07a7bc457d5..1b369ec6276 100644 --- a/src/browser/ui/dom/components/__tests__/ReactDOMSelect-test.js +++ b/src/browser/ui/dom/components/__tests__/ReactDOMSelect-test.js @@ -43,6 +43,14 @@ describe('ReactDOMSelect', function() { expect(node.value).toEqual('giraffe'); }); + it('should not throw with `defaultValue` and without children', function() { + var stub = ; + + expect(() => { + ReactTestUtils.renderIntoDocument(stub); + }).not.toThrow(); + }); + it('should not control when using `defaultValue`', function() { var stub = ; + + expect(() => { + ReactTestUtils.renderIntoDocument(stub); + }).not.toThrow(); + }); + it('should allow setting `value` with multiple', function() { var stub =