【发布时间】:2018-06-03 14:50:25
【问题描述】:
我是react-native 的新手。我一直在尝试通过简单的颜色更改来自定义Picker.Item,但它不起作用。
我创建了一个RedPickerItem 类,它包装Picker.Item,默认color 设置为red。
class RedPickerItem extends Component{
render(){
return(
<Picker.Item color="red" {...this.props}/>
)
}
}
我像下面这样使用它
<Picker
selectedValue={this.state.pickerValue}
style={{height: 50, width:'100%'}}
onValueChange={(itemValue, itemIndex) => this.setState({pickerValue: itemValue})}>
<RedPickerItem label="Red Picker Item" value="red"/>
<Picker.Item label="Default Picker Item" value="default"/>
</Picker>
但低于显示默认Picker.Item 颜色的输出。给定的红色不起作用。
当我像这样直接给color 道具时
<Picker.Item color="red" label="Red Picker Item" value="red"/>
有效。
但这不是我想要的工作方式。我想要包装 method 工作。
完整源代码
import React, {Component} from 'react';
import {Picker, View} from 'react-native';
type Props = {};
export default class App extends Component<Props> {
constructor(props) {
super(props);
this.state = {
pickerValue: ''
}
}
render() {
return (
<View>
<Picker
selectedValue={this.state.pickerValue}
style={{height: 50, width:'100%'}}
onValueChange={(itemValue, itemIndex) => this.setState({pickerValue: itemValue})}>
<RedPickerItem label="Red Picker Item" value="red"/>
<Picker.Item label="Default Picker Item" value="default"/>
</Picker>
</View>
);
}
}
class RedPickerItem extends Component{
render(){
return(
<Picker.Item {...this.props} color="red" />
)
}
}
编辑:
我知道 'Picker' 有这个 'itemStyle' 属性,但我需要为每个 Picker.Item 设置单独的项目颜色集。
所以我的问题是,
1) 为什么当我用另一个类包装它时它不起作用?
2) 我怎样才能让它工作?
可以在 cmets 中询问进一步的说明。
【问题讨论】:
-
尝试在
<Picker.Item />中使用itemStyle={{ color: 'red' }} -
我想设置单个项目的颜色。
-
@DaveNewton 感谢链接戴夫
标签: javascript reactjs react-native react-native-android jsx