Javascript 将函数附加到onClick()/onPress()上

Javascript 将函数附加到onClick()/onPress()上,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我有一个组件看起来像这样: 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) => {

我有一个
组件
看起来像这样:

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>
    )
  }
}
导出默认类列表扩展组件{
建造师(道具){
超级(道具);
}
_onPress=(键)=>{
警报(键);
}
_createList=()=>{
const list=Object.keys(this.state.obj).map((key,index)=>{
返回(
{key}
)
});
退货清单;
}
render(){
const listview=this._createList();
返回(
{listview}
)
}
}

Ob Startup我收到三个
警报(对象中每个键/值对一个)。这种行为是意料之中的。但是,当我单击其中一个
文本/可触摸内容时,我没有收到
警报。为什么会这样?

您必须传递回调,而不是回调结果

onPress={event=>this.\u onPress(key)}

试试这个

onPress = { () => this._onPress(key) }
使用
onPress={this.\u onPress(key)}
,onPress绑定到
\u onPress
函数调用的结果,该结果等于未定义