UI小猫-列表组件-如何获取选中的item

UI Kitten - List component - How to get selected item

我正在使用 UI Kitten UI 套件构建 React-Native CLI 应用程序。在我的渲染中,我有以下列表。

  <List
    style={styles.listContainer}
    data={providerTypes}
    renderItem={renderItem}
    keyExtractor={(item) => item.Id.toString()}
  />

我有用于列表项和 onPress 事件的这些方法。

 const renderItem = ({item, index}) => (
    <ListItem
      title={`${item.ServiceCategory}`}
      description={`${item.ServiceType} `}
      accessoryRight={renderItemIcon}
      onPress={(item) => typeSelected(item)}
    />
  );
  const typeSelected = (item) => {
    console.log('item: ', item);
    console.log('item.Id: ', item.Id);
    alert('You touched list item: ', item.Id);
  };

当 typeSelected 方法被触发时,item.Id 为 null,但 item 是一个包含如此多数据的巨大对象,但我无法在其中找到我的项目数据?

我对 Kitten 库还很陌生,对 TypeScript 也不是很了解。我也没有在 RN 应用程序中使用 TypeScript,所以我正在努力弄清楚如何在这里使用它。

你可以试试

onChangeText={item => typeSelected(item)} 

onChange={item => typeSelected(item)} 

方法因为来自 react-native-ui-kitten 的 ListItem 使用来自 react-native Flatlist 组件的道具

问题是你得到的是偶数而不是项目

当你这样做时

onPress={(item) => typeSelected(item)}

项目指的是事件而不是索引中的项目

你必须把它改成

onPress={() => typeSelected(item)}