this2。不是一个功能

时间:2017-09-20 12:16:12

标签: react-native redux

我收到了错误" this2。不是一个功能" enter image description here

我尝试了一些我在谷歌上找到的解决方案,但仍然无法通过调用该功能的方式。

我的主要目的是在动作文件中调用动作功能。有一些问题,所以我打算先调用一个函数,然后尝试调用该操作。

 viewJob(){
    console.log("View");
}

renderItem({ item }) {
    return(
        <Card>
            <View style={{height:300}}>
            </View>
            <View style={styles.detailWrapper}>
                <Button
                    title="Apply"
                    onPress={() => this.viewJob()}
                />
            </View>
        </Card>
    );
}

更新

render(){
    return(
        <View style={{ marginTop:10 }}>
        <FlatList
            contentContainerStyle={styles.list}
            data={this.props.jobs}
            keyExtractor={this._keyExtractor}
            renderItem={this.renderItem.bind(this)} // I didnt bind this , which led to the error above
        />
        </View>
    );
}

1 个答案:

答案 0 :(得分:2)

您需要绑定方法

render(){
  return(
      <View style={{ marginTop:10 }}>
      <FlatList
          contentContainerStyle={styles.list}
          data={this.props.jobs}
          keyExtractor={this._keyExtractor}
          renderItem={this.renderItem.bind(this)} 
      />
      </View>
  );
}

注意:如果您使用箭头功能,那么您不必担心绑定

您可以详细了解何时从official doc

进行绑定