2017-10-13 10 views
2

私はちょうどリアクションネイティブを学習し始めました。これにはTouchableHighlightというコンポーネントを作成しました。ハンドラー関数を割り当てましたが、それは呼び出されています。ここに私のコンポーネントは次のとおりです。タッチハンドラーがリアクションネイティブで呼び出されていない

import React, {Component} from 'react'; 
import { 
    Text, 
    View, 
    TouchableHighlight 
} from 'react-native'; 

export default class Component1 extends Component<{}> { 
    componentWillMount() { 
     console.log("hi there"); 
     this.setState({age: 22}); 
    } 

    handlePress() { 
     this.setState(prevState => ({ age: prevState.age + 1 })); 
     console.log("updated age"); 
    } 

    render() { 
     return (
      <View> 
       <View> 
        <Text> 
         {this.props.name} 
         {"\n"} 
         {this.state.age} 
        </Text> 
       </View> 
       <View> 
        <TouchableHighlight onPress={() => this.handlePress}> 
         <View> 
          <Text>Become older</Text> 
         </View> 
        </TouchableHighlight> 
       </View> 
      </View> 
     ); 
    } 
} 

私は何も(私はreact-native log-androidを使用している端末に記録されませんビュー「古いなる」

が手伝ってくれてありがとうをタップすると:)

答えて

2

する必要があり、それが機能する必要があります。この部分

:あなたは機能handlePressを呼び出す必要があり、その矢印の機能を使用している

<TouchableHighlight onPress={() => this.handlePress}> 

であるべき:

<TouchableHighlight onPress={() => this.handlePress()}> 

しかし、あなただけの関数を呼び出しているので、あなただけの場合のようにそれを渡す必要があります:

<TouchableHighlight onPress={this.handlePress}> 
+0

ありがとうございました!私は両方のオプションを試してみましたが、最初のものだけが動作しました( this.handlePress()}>)。私は他の構文が使われているのを見てきたと確信しています –

+0

2番目の構文には何も問題はありません。ドキュメントをチェックすることができます。https://facebook.github .io/react-native/docs/touchablehighlight.html –

0

あなたは。構文エラーがあります。

<TouchableHighlight onPress={() => this.handlePress}> 

onPressインサイド

<TouchableHighlight onPress={() => this.handlePress()}> 

または

<TouchableHighlight onPress={this.handlePress}>