按下代码中指定的按钮后,我的应用程序状态不会改变。
import React from 'react'
import { View, Text, TextInput, Button} from 'react-native'
export default class App extends React.Component {
constructor() {
super()
this.state = {
text: '',
displayText: true
}
}
render() {
return (
<View>
<TextInput
onChangeText={(text) => this.setState({text})}
/>
<Button
onPress={(prevState) => this.setState({displayText: !prevState.displayText})}
title="Display"
/>
{this.state.displayText ? <Text>{this.state.text}</Text> : null}
</View>
)
}
}
如果传递给onPress的函数被修改,以便将displayText更改为false,它将按预期工作(它隐藏文本)。很可能问题出在这一部分。
<Button
onPress={(prevState) => this.setState({displayText: !prevState.displayText})}
title="Display"
/>
<Button
onPress={(prevState) => this.setState({displayText: !prevState.displayText})}
title="Display"
/>
错误,prevState参数来自setState作为函数,但不是来自onPress事件:)
应该是
<Button
onPress={() => this.setState({displayText: !this.state.displayText})}
title="Display"
/>
要么
<Button
onPress={() => this.setState(prevState => {displayText: !prevState.displayText})}
title="Display"
/>
试试这个
<Button
onPress={() => this.setState({displayText: !this.state.displayText})}
title="Display"
/>