首页 > 解决方案 > react-native 中的“找不到变量:点击”

问题描述

单击“单击我!”时,以下代码显示错误 按钮说找不到变量“clicks”,而在状态中正确提到了它

import { StyleSheet, Alert, Text, View, TouchableOpacity} from 'react-native';
import { Button } from 'native-base';
export default class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      clicks: 0
    };
  }
buttonPressed = () => {
 if(this.state.clicks > 5)
 {
    Alert.alert('Caution!','You have clicked 5 times already!');
    this.setState({clicks: 0});
    this.forceUpdate();
 }
 this.setState({clicks: clicks+1});
}
render() {
    return (
      <View>
        <TouchableOpacity onPress={()=>{this.buttonPressed()}}>
           <Text>Click Me!</Text>
        </TouchableOpacity>
      </View>
)};

标签: javascriptreact-nativeobjectecmascript-6

解决方案


你没有变量名clicks,你应该定义它或使用this.state.clicks

改变这个

this.setState({ clicks: clicks + 1 });

对此

this.setState({ clicks: this.state.clicks + 1 });

或者到这个

buttonPressed = () => {
 let {clicks} = this.state   // define `clicks` here
 if(clicks > 5)
 {
    Alert.alert('Caution!','You have clicked 5 times already!');
    this.setState({clicks: 0});
    this.forceUpdate();
 }
 this.setState({clicks: clicks+1});
 //                     ^^^^^^^
}

推荐阅读