React Native按钮不会更改状态

时间:2019-04-24 10:55:29

标签: javascript react-native

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

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"
/>

2 个答案:

答案 0 :(得分:3)

public void Run(IIntegrationResult result)
{
     result.Label = this.Generate(result);
}

是错误的,prevState参数来自setState作为函数,而不是来自onPress事件:)

应该是

<Button
  onPress={(prevState) => this.setState({displayText: !prevState.displayText})} 
  title="Display"
/>

<Button
  onPress={() => this.setState({displayText: !this.state.displayText})} 
  title="Display"
/>

答案 1 :(得分:0)

尝试一下

<Button
        onPress={() => this.setState({displayText: !this.state.displayText})}
        title="Display"
/>