繁体   English   中英

如何在 React Native 中通过 TextInput 访问对象数组中的数据

[英]How to access the data from an array of objects by TextInput in react native

我在控制台中有一组对象。 我想获取用户在 TextInput 中输入的名称的 ID。 这是以下结果: console.log("All teams", Teams); console.log("Selected team: ", myTeam);

All teams: 
Array [
  
Object {
    "__v": 0,
    "_id": "616e33b163d7ed23e95a9d98",
    "name": "test_team",
  },
  
Object {
    "__v": 0,
    "_id": "6181c5b3b5dfd98d4206e915",
    "name": "Team2",
  },
  
Object {
    "__v": 0,
    "_id": "6181c5d9b5dfd98d4206e919",
    "name": "team3",
  },
  
Object {
    "__v": 0,
    "_id": "6181c5e0b5dfd98d4206e91c",
    "name": "team4",
  },
  
Object {
    "__v": 0,
    "_id": "6181c5e4b5dfd98d4206e91f",
    "name": "team5",
  },
  
Object {
    "__v": 0,
    "_id": "6181c681b5dfd98d4206e924",
    "name": "team6",
  },
  
Object {
    "__v": 0,
    "_id": "618a046dbdb0ee4648b9da0f",
    "name": "sprinters",
  },
  
Object {
    "__v": 0,
    "_id": "618a058ebdb0ee4648b9da15",
    "name": "phone stepper",
  },
]

所选团队:Team2

Team2 的值来自用户的条目,我需要获取此条目的“_id”的值,例如“此条目的 id 为:6181c5b3b5dfd98d4206e915” 我应该如何解决这个问题? 提前感谢您的帮助。

您可以在数组上运行 find 方法以挑选出名为“Team2”的第一个对象,然后访问_id属性。

const id = allTeamsArr.find(obj => obj.name === 'Team2')['_id']

使用 Array.filter 函数过滤掉。

var arr =[
    
     { "__v": 0, "_id": "616e33b163d7ed23e95a9d98", "name": "test_team" },
    
     { "__v": 0, "_id": "6181c5b3b5dfd98d4206e915", "name": "Team2" },
    
     { "__v": 0, "_id": "6181c5d9b5dfd98d4206e919", "name": "team3" },
    
     { "__v": 0, "_id": "6181c5e0b5dfd98d4206e91c", "name": "team4" },
    
     { "__v": 0, "_id": "6181c5e4b5dfd98d4206e91f", "name": "team5" },
    
     { "__v": 0, "_id": "6181c681b5dfd98d4206e924", "name": "team6" },
    
     { "__v": 0, "_id": "618a046dbdb0ee4648b9da0f", "name": "sprinters" },
    
     { "__v": 0, "_id": "618a058ebdb0ee4648b9da15", "name": "phone stepper" } ]
    
    var input = '6181c5b3b5dfd98d4206e915';
    var selected = arr.filter((item) => item._id == input)

您可以通过在 Textinput 的更改事件上调用以下函数来尝试:

     <TextInput  onChange={this.onChangeHandler} />
          
      onChangeHandler = (e)=> {
        const teamId = allTeams.filter(obj => obj.name === e.target.value)['_id']
        console.log(e.target.value, teamId)
       }
 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM