Javascript 值为true时显示选择器项
我有一个组件使用Javascript 值为true时显示选择器项,javascript,reactjs,react-native,picker,Javascript,Reactjs,React Native,Picker,我有一个组件使用选择器来自'react-native',在道具中我接收到bool值showDefaultPickerItem来显示或隐藏选择器项目。问题是这样做不起作用,我收到了错误 null不是评估子道具的对象 请确保列表的长度大于1 function PickerComponent(props){ const { selectedValue, onValueChange, list, label, valuekey, showDefaultPickerItem } = props;
选择器来自'react-native'
,在道具中我接收到bool值showDefaultPickerItem
来显示或隐藏选择器项目。问题是这样做不起作用,我收到了错误
null不是评估子道具的对象
请确保列表的长度大于1
function PickerComponent(props){
const { selectedValue, onValueChange, list, label, valuekey, showDefaultPickerItem } = props;
return (
<Picker
selectedValue={selectedValue}
onValueChange={(value) => onValueChange(value)}
>
{showDefaultPickerItem &&
<Picker.Item label={"Select"} value={undefined} color ={gray}/>
}
{list.map(l => {
return <Picker.Item key={l[valuekey]} label={l[label]} value={l[valuekey]} />
})
}
</Picker>
)
}
功能选择器组件(道具){
const{selectedValue,onValueChange,list,label,valuekey,showDefaultPickerItem}=props;
返回(
onValueChange(值)}
>
{showDefaultPickerItem&&
}
{list.map(l=>{
返回
})
}
)
}
我认为这段代码对您很有帮助
function make_list(list, showDefaultPickerItem, valuekey, label) {
let listMap = list.map(l => <Picker.Item key={l[valuekey]} label={l[label]} value={l[valuekey]} />);
if (showDefaultPickerItem) {
listMap.unshift(<Picker.Item key="_default" label={"Select"} value={undefined} color={'gray'} />);
}
return listMap;
}
function PickerComponent(props){
const { selectedValue, onValueChange, list, label, valuekey, showDefaultPickerItem } = props;
return (
<Picker
selectedValue={selectedValue}
onValueChange={(value) => onValueChange(value)}
>
{make_list(list, showDefaultPickerItem, valuekey, label)}
</Picker>
)
}
函数生成列表(列表、showDefaultPickerItem、valuekey、标签){
让listMap=list.map(l=>);
if(showDefaultPickerItem){
listMap.unshift();
}
返回列表图;
}
功能选择器组件(道具){
const{selectedValue,onValueChange,list,label,valuekey,showDefaultPickerItem}=props;
返回(
onValueChange(值)}
>
{make_list(list,showDefaultPickerItem,valuekey,label)}
)
}
我认为这段代码对您很有帮助
function make_list(list, showDefaultPickerItem, valuekey, label) {
let listMap = list.map(l => <Picker.Item key={l[valuekey]} label={l[label]} value={l[valuekey]} />);
if (showDefaultPickerItem) {
listMap.unshift(<Picker.Item key="_default" label={"Select"} value={undefined} color={'gray'} />);
}
return listMap;
}
function PickerComponent(props){
const { selectedValue, onValueChange, list, label, valuekey, showDefaultPickerItem } = props;
return (
<Picker
selectedValue={selectedValue}
onValueChange={(value) => onValueChange(value)}
>
{make_list(list, showDefaultPickerItem, valuekey, label)}
</Picker>
)
}
函数生成列表(列表、showDefaultPickerItem、valuekey、标签){
让listMap=list.map(l=>);
if(showDefaultPickerItem){
listMap.unshift();
}
返回列表图;
}
功能选择器组件(道具){
const{selectedValue,onValueChange,list,label,valuekey,showDefaultPickerItem}=props;
返回(
onValueChange(值)}
>
{make_list(list,showDefaultPickerItem,valuekey,label)}
)
}