javascript - 当值为 true 时显示选取器项目 React Native

标签 javascript reactjs react-native picker

我有一个使用 'react-native' 中的 Picker 的组件,并且在 props 中我收到 bool 值 showDefaultPickerItem 来显示或隐藏Picker.Item。问题是这样做不起作用,我收到错误

null is not an object evaluating child props

可以肯定列表的长度大于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>              
  )
}

最佳答案

我认为这段代码对你有帮助。

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

关于javascript - 当值为 true 时显示选取器项目 React Native,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58087914/

相关文章:

javascript - React-navigation重置说明

javascript - 多个加载 GIF 并加载多个 PHP 页面

javascript - 当存在全局标志时,为什么 String.match() 不产生预期结果?

javascript - Angular 2 + Typescript显示函数内的变量

node.js - 如何在 React 组件中返回 http 错误?

javascript - 如何根据选择器查找对象中元素的值

reactjs - 从父组件中执行子组件中的功能

javascript - Angular 4显示当前时间

node.js - 如何在 React 中显示从 Express 服务器抓取的图像?

react-native - 如何以编程方式在 react-native 中截取屏幕截图