React Native按钮不会更改状态

问题描述 投票:0回答:2

按下代码中指定的按钮后,我的应用程序状态不会改变。

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"
/>
javascript react-native
2个回答
3
投票
<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"
/>

0
投票

试试这个

<Button
        onPress={() => this.setState({displayText: !this.state.displayText})}
        title="Display"
/>
© www.soinside.com 2019 - 2024. All rights reserved.