javascript - 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>
)};
解决方案
你没有变量名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});
// ^^^^^^^
}
推荐阅读
- excel - Excel - 删除单元格中的特定小数
- api - 如何在 laravel 单元测试中测试功能
- css - Not able to make responsive design due to "margin" as inline css
- laravel - 在 Laravel 中将日期保存为字符串
- r - using cumax for making a new column
- javascript - How do I get docx.js children method to work?
- sql - how to get the rows which doesn't have data
- php - 如何仅在 Internet Explorer 中加载网站而不在其他浏览器上打开
- azure - Azure IoT 中心和接收任何东西
- node.js - Nodejs - SSL 握手日志