react-native renderRow with button:将rowData推送到按钮功能

时间:2016-05-02 14:52:37

标签: javascript react-native

  • [24.1]你正在使用的React Native的版本是什么?
  • [both]这是发生在iOS,Android还是两者兼而有之?
  • [Mac]您使用的是Mac,Linux还是Windows?

我这样做:

_onPress(data) {
    Actions.shopProducts(data);
}

...

renderRow(rowData){
return (
<Button onPress={this._onPress.bind(this)}>
    <View style={styles.row}>
        <View style={styles.listViewContainer}>
            <Image
                source={{uri: rowData.image}}
            />

            <View style={styles.rightContainer}>
                <Text style={styles.smallText}>Name: {rowData.name}</Text>
                <Text style={styles.smallText}>Straße: {rowData.address}</Text>
                <Text style={styles.smallText}>Ort: {rowData.location}</Text>
            </View>
        </View>
    </View>
    </Button>
);
}

...

我收到了以下错误:

  

可能未处理的Promise拒绝(id:0):undefined不是   对象(评估&#39; this._onPress.bind&#39;)renderRow @ ...

我实际上正在使用react-native-router-flux和react-native-button。

导致此错误的原因是什么?我无法理解这一点......

祝你好运

编辑: 现在我想知道如何将rowData推送到我的Button函数......任何想法?

1 个答案:

答案 0 :(得分:1)

不要忘记'绑定'renderRow本身,例如:

<ListView 
  dataSource={this.state.dataSource} 
  renderRow={this.renderRow.bind(this)} 
  ... 
/>

要将数据传递给_onPress方法,请执行以下操作:

<Button onPress={this._onPress.bind(this, rowData)}>