【问题标题】:React Native List View TouchableHighlightReact Native 列表视图 TouchableHighlight
【发布时间】:2016-07-08 18:53:46
【问题描述】:

我遇到了 ListView 和 TouchableHighlight 的问题 我跟着这个教程 https://rnplay.org/apps/M4tiAQ 一切都很完美。 我的问题是当我尝试选择列表视图的行数据时。它没有给我任何东西。 我想改变场景,同时选择行数据。 这是我所做的示例 在 renderAdress 函数中

      renderAdress = (adress) => {
    return (
<TouchableHighlight  onPress = { this._onPressAddressList(rowData)} underlayColor = 'white' >
      <View>
        <Text>{adress.street}, {adress.city}, {adress.country}</Text>
      </View>
</TouchableHighlight>
    );
  };

我想要的是,每当用户从列表中选择一个行数据时,场景就会发生变化并将行值传递给其他场景。 我真的很感激帮助。 谢谢

【问题讨论】:

  • onPress 函数似乎有问题。尝试将其更改为onPress = { this._onPressAddressList.bind(this, rowData)}
  • @SafeerHussain,是的,它奏效了。谢谢。
  • 我将其添加为答案。

标签: javascript reactjs react-native native


【解决方案1】:

似乎是 onPress 功能的问题。试试改成onPress = { this._onPressAddressList.bind(this, rowData)}

      renderAdress = (adress) => {
    return (
<TouchableHighlight  onPress = { this._onPressAddressList.bind(this, rowData)} underlayColor = 'white' >
      <View>
        <Text>{adress.street}, {adress.city}, {adress.country}</Text>
      </View>
</TouchableHighlight>
    );
  };

【讨论】:

  • 谢谢 我从列表中选择行数据时又遇到了一个问题。第一次单击时它不会选择,当我第二次单击时,它只会执行该操作。知道可能是什么问题吗?
  • 我想不出是什么导致了这个给定代码的问题。 _onPressAddressList 函数可能有问题,或者如果 address 对象来自远程服务器(由于延迟),则在渲染时可能无法获取它。尝试调试代码。 :)
  • 一切看起来都不错。我也可以获得地址对象。唯一的问题是我需要双击才能得到它。
  • 第一次点击是否调用_onPressAddressList函数(是否命中其中的调试点集)?
  • 或者我想你将_onPressAddressList 定义为_onPressAddressList = (rowData) =&gt; { ... } 尝试将其更改为_onPressAddressList(rowData) { ... }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-20
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 2018-05-10
相关资源
最近更新 更多