React-native: Cannot Access State Values Or Any Methods Declared From Renderrow
I have a listview, whenever user clicks on an item, i want to do something with onPress (touchable highlight). I tried defining function then calling them in onPress but they didnt
Solution 1:
How to solve your problem
Change
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderRow}
style={styles.listView}
/>
To
<ListView
dataSource={this.state.dataSource}
renderRow={data => this.renderRow(data)}
style={styles.listView}
/>
Or
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderRow.bind(this)}
style={styles.listView}
/>
Why?
As you already know(since you are trying to solve the problem by using arrow function and bind), to call renderRow, the caller should be in the same context as the component itself.
But this connection is lost in renderRow={this.renderRow}, which created a new function(new context).
Post a Comment for "React-native: Cannot Access State Values Or Any Methods Declared From Renderrow"