Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.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
React native 如何使用一个数组和两个本机选择器_React Native_React Native Android - Fatal编程技术网

React native 如何使用一个数组和两个本机选择器

React native 如何使用一个数组和两个本机选择器,react-native,react-native-android,React Native,React Native Android,我想为两个选择器使用一个数据数组。如果一个选择器选择了一个选项,那么我需要从其他选择器中删除该选项。我尝试了以下代码。我使用了长度为2的数组 constructor(props) { super(props); this.state = { startTown: 'Start Point', endTown: 'End Point', townList: null, }; } componentDidMount(){ fire

我想为两个选择器使用一个数据数组。如果一个选择器选择了一个选项,那么我需要从其他选择器中删除该选项。我尝试了以下代码。我使用了长度为2的数组

constructor(props) {
    super(props);
    this.state = {
      startTown: 'Start Point',
      endTown: 'End Point',
      townList: null,
    };
}

componentDidMount(){
    firebase.database().ref('busRoutes').once("value",(snapshot)=>{
      this.setState({townList:snapshot.val()})
    })
  }

<Box dir="row">
    <Picker
      style={{flex: 1}}
      selectedValue={startTown}
      onValueChange={(value) => {
      this.setState({
         startTown: value,
      });
    }}>
    <Picker.Item value='Start Point' label='Start Point' />
    {townList && townList.map((element,index)=>{
         if(element===endTown) return;
         return(<Picker.Item value={element} label={element} />)
     })}
   </Picker>
   <Picker
       style={{flex: 1}}
       selectedValue={endTown}
       onValueChange={(value) => {
         this.setState({
            endTown: value,
         });
       }}>
    <Picker.Item value='End Point' label='End Point' />
    {townList && townList.map((element,index)=>{
        if(element===startTown) return; 
        return(<Picker.Item value={element} label={element} />)
     })}
   </Picker>
</Box>
构造函数(道具){
超级(道具);
此.state={
startTown:“起点”,
终点:“终点”,
镇名:空,
};
}
componentDidMount(){
firebase.database().ref('busRoutes')。一次(“值”,(快照)=>{
this.setState({townList:snapshot.val()})
})
}
{
这是我的国家({
startTown:价值,
});
}}>
{townList&&townList.map((元素,索引)=>{
if(element==endTown)返回;
返回()
})}
{
这是我的国家({
终点城:价值,
});
}}>
{townList&&townList.map((元素,索引)=>{
如果(元素===startTown)返回;
返回()
})}
但它会产生这样的错误

长度=2;指数=2

这是指向错误图像的链接。
我不能把它放在这里,因为我的声誉还不够

您可以先克隆阵列,这样一个阵列中的更改就不会影响另一个阵列。尝试对picker.Item使用enabled=false,而不是将其删除。@prabhat遗憾的是,picker.Item中没有
enabled
属性