Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 值为true时显示选择器项_Javascript_Reactjs_React Native_Picker - Fatal编程技术网

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)}
)
}