我有Component
看起来像这样:
export default class List extends Component {
constructor(props) {
super(props);
}
_onPress = (key) => {
alert(key);
}
_createList = () => {
const list = Object.keys(this.state.obj).map((key, index) => {
return (
<TouchableHighlight
key = {index}
style = {style.container}
onPress = {this._onPress(key)}
>
<Text>{key}</Text>
</TouchableHighlight>
)
});
return list;
}
render() {
const listview = this._createList();
return (
<View>
{listview}
</View>
)
}
}
Ob Startup我得到三个alerts
(我的对象中每个键/值对一个)。这种行为是预期的。但是,当我点击其中一个Texts/Touchables
时,我没有得到alert
。那是为什么?
答案 0 :(得分:1)
你必须传递回调,而不是回调结果。
onPress = {event => this._onPress(key)}
答案 1 :(得分:0)
试试这个。
onPress = { () => this._onPress(key) }
使用onPress = {this._onPress(key)}
,onPress绑定到_onPress
函数调用的结果,等于未定义。