Javascript ';Can';找不到变量:单击';以自然反应
以下代码显示了单击“单击我”时出现的错误按钮,表示变量“clicks”无法找到,但它在状态中被正确提及Javascript ';Can';找不到变量:单击';以自然反应,javascript,react-native,object,ecmascript-6,Javascript,React Native,Object,Ecmascript 6,以下代码显示了单击“单击我”时出现的错误按钮,表示变量“clicks”无法找到,但它在状态中被正确提及 import { StyleSheet, Alert, Text, View, TouchableOpacity} from 'react-native'; import { Button } from 'native-base'; export default class App extends React.Component { constructor(props) { sup
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>
)};
从'react native'导入{样式表、警报、文本、视图、TouchableOpacity};
从“本机基”导入{Button};
导出默认类App扩展React.Component{
建造师(道具){
超级(道具);
此.state={
点击次数:0
};
}
按钮按下=()=>{
如果(this.state.clicks>5)
{
Alert.Alert('Caution!',您已经点击了5次!');
this.setState({clicks:0});
这个.forceUpdate();
}
this.setState({clicks:clicks+1});
}
render(){
返回(
{this.buttonPressed()}}>
点击我!
)};
如果没有变量名,则应定义它或使用此.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});
// ^^^^^^^
}
单击
不是变量-它是this.state的属性
this.setState({ clicks: this.state.clicks + 1 });
这一行有问题:
this.setState({clicks:clicks+1})代码>
未定义冒号右侧的单击
您可以使用setState
功能中的prevState
:
this.setState(prevState => ({clicks: prevState.clicks + 1}));