Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.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
Android 在ListView中导航时出现问题_Android_Listview_React Native - Fatal编程技术网

Android 在ListView中导航时出现问题

Android 在ListView中导航时出现问题,android,listview,react-native,Android,Listview,React Native,我是RN的新手,我正在寻找解决这个问题的方法。我在网上找到了很多信息,但仍然不起作用 这是我的初始代码: import { StackNavigator, NavigationActions } from 'react-navigation'; ... 从数据源填充listitem的My函数: list(rowData, sectionID, rowID) { var onPress = () => this.props.navigation.goBack(); return (

我是RN的新手,我正在寻找解决这个问题的方法。我在网上找到了很多信息,但仍然不起作用

这是我的初始代码:

import { StackNavigator, NavigationActions } from 'react-navigation';
...
从数据源填充listitem的My函数:

list(rowData, sectionID, rowID) {
  var onPress = () => this.props.navigation.goBack();
  return (
    <ListItem thumbnail onPress={onPress}>
      <Body>
        <Text>{rowData.Title}</Text>
        <Text numberOfLines={2}>
          <Icon name="map-marker" size={15} color="grey" />
          {rowData.Address}, {rowData.City} ({rowData.Distance} km)
        </Text>
        <Text numberOfLines={3}>{rowData.Description}</Text>
      </Body>
      {VerifiedUser}
    </ListItem>
  );
}
onPress操作向我发送错误消息:

“未定义”不是对象 “\u this2.道具.导航.返回”

似乎这种成分没有被确认。 有什么帮助可以解释这个错误吗


谢谢大家!

我假设您使用的是ListView,list是renderRow函数的函数。您的错误是由未绑定导致的。你可以在网上更多地了解它

您需要绑定函数才能在其中使用它。你有两个选择

第一个选项是内联绑定

<ListView renderRow={this.list.bind(this)} />
第二个选项是在构造函数中绑定

class SomeComponent extends React.Component {
  constructor(props) {
    super(props);
    this.list = this.list.bind(this);
  }

  list(rowData, sectionID, rowID) {
    // ...
  }

  render() {
    return(<ListView renderRow={this.list} />)
  }
}
第三种选择是使用箭头函数

class SomeComponent extends React.Component {
  list = (rowData, sectionID, rowID) => {
    // ...
  }

  render() {
    return(<ListView renderRow={this.list} />)
  }
}

列表函数是在使用它的组件中定义的吗?是的,对不起。是的。。我正在更新代码,正如你所看到的,我已经回答了你的评论。问题与绑定无关,而是如何将导航组件传递到RenderRow@MehmetAitAddi当我回答你的问题时,没有你如何使用列表功能的部分哦,对不起,在你提出建议之前,我认为它已经更新了:对不起,这个问题有什么帮助吗?@MehmetAitAddi你能添加你的导航结构吗?你在哪里添加这个包含这个ListView的组件
class SomeComponent extends React.Component {
  list = (rowData, sectionID, rowID) => {
    // ...
  }

  render() {
    return(<ListView renderRow={this.list} />)
  }
}