Atticus White 2e4ab9ff70 Bugfix - Only add valid IOSPicker items.
Summary:
Fixes https://github.com/facebook/react-native/issues/9216.

As nickzuber describes in #9216, conditional `Picker.Item` elements will lead to exceptions downstream when the `Picker` attempts to construct the collection of items.

[In the picker source](a2fb703bbb/Libraries/Components/Picker/PickerIOS.ios.js (L48-L53)) we can see that `child.props` is accessed when `child` has the potential to be an invalid `React` element.

```js
ReactChildren.forEach(props.children, function (child, index) {
  if (child.props.value === props.selectedValue) {
    selectedIndex = index;
  }
  items.push({value: child.props.value, label: child.props.label});
});
```

This change ensures the incoming element is valid

```diff
ReactChildren.forEach(props.children, function (child, index) {
+ if (!React.isValidElement(child)) {
+   return;
+ }
  if (child.props.value === props.selectedValue) {
    selectedIndex = index;
  }
  items.
Closes https://github.com/facebook/react-native/pull/9243

Differential Revision: D3847514

Pulled By: spicyj

fbshipit-source-id: f46fbd4b0f81de7a92e1ca3e60b5ed15a9cbbf78
2016-09-10 21:43:37 -07:00
..
2016-08-09 06:43:46 -07:00
2016-08-09 06:43:46 -07:00
2016-07-06 12:58:41 -07:00
2016-08-09 06:43:46 -07:00
2016-07-14 11:13:27 -07:00
2016-08-09 06:43:46 -07:00
2016-08-09 06:43:46 -07:00
2016-08-09 06:43:46 -07:00
2016-09-06 13:43:47 -07:00
2016-08-18 20:58:39 -07:00
2016-09-06 13:43:47 -07:00
2016-07-25 03:43:29 -07:00
2016-08-09 06:43:46 -07:00
2016-09-03 01:13:37 -07:00
2016-08-12 07:28:38 -07:00