mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-27 19:25:11 +08:00
Fix iOS Picker Item Colors
Summary: I want to resolve #11170 by passing the `color` prop from `PickerIOS.Item` to its implementation. In `RCTPicker.m`, the label.textColor was already being set and used, but there was nothing referencing the past prop. I passed the prop to the implementation, checked if it exists, and if not, set the default color, like before. I visually tested the **Colorful Pickers** example in UIExplorer. Those picker `Item`s pass in a `color` prop.  The basic picker does not pass the color prop to the picker `Item`, and there are no errors. Basic functionality is still in tact:  Closes https://github.com/facebook/react-native/pull/11260 Differential Revision: D4272370 fbshipit-source-id: 5fa33c40526dda59ca2ab527c31351bcd27e5cf3
This commit is contained in:
committed by
Facebook Github Bot
parent
ebe0c85fbe
commit
6234a5dfa2
@@ -18,6 +18,7 @@ var StyleSheet = require('StyleSheet');
|
||||
var StyleSheetPropType = require('StyleSheetPropType');
|
||||
var TextStylePropTypes = require('TextStylePropTypes');
|
||||
var View = require('View');
|
||||
var processColor = require('processColor');
|
||||
|
||||
var itemStylePropType = StyleSheetPropType(TextStylePropTypes);
|
||||
var requireNativeComponent = require('requireNativeComponent');
|
||||
@@ -48,7 +49,11 @@ var PickerIOS = React.createClass({
|
||||
if (child.props.value === props.selectedValue) {
|
||||
selectedIndex = index;
|
||||
}
|
||||
items.push({value: child.props.value, label: child.props.label});
|
||||
items.push({
|
||||
value: child.props.value,
|
||||
label: child.props.label,
|
||||
textColor: processColor(child.props.color),
|
||||
});
|
||||
});
|
||||
return {selectedIndex, items};
|
||||
},
|
||||
@@ -95,6 +100,7 @@ PickerIOS.Item = class extends React.Component {
|
||||
static propTypes = {
|
||||
value: React.PropTypes.any, // string or integer basically
|
||||
label: React.PropTypes.string,
|
||||
color: React.PropTypes.string,
|
||||
};
|
||||
|
||||
render() {
|
||||
|
||||
@@ -86,7 +86,9 @@ numberOfRowsInComponent:(__unused NSInteger)component
|
||||
}
|
||||
|
||||
label.font = _font;
|
||||
label.textColor = _color;
|
||||
|
||||
label.textColor = [RCTConvert UIColor:_items[row][@"textColor"]] ?: _color;
|
||||
|
||||
label.textAlignment = _textAlign;
|
||||
label.text = [self pickerView:pickerView titleForRow:row forComponent:component];
|
||||
return label;
|
||||
|
||||
Reference in New Issue
Block a user