如何在React Native中按下按钮时更改文本值?

Sea*_*404 11 javascript setstate ios reactjs react-native

我是iOS开发人员,目前正在开发一个实验性的React Native应用程序.我有以下代码,在屏幕上显示一个按钮和示例文本.

import React from 'react';
import { StyleSheet, Text, View , Button } from 'react-native';

export default class App extends React.Component {
  constructor() {
    super();
    this.state = {sampleText: 'Initial Text'};
  }

  changeTextValue = () => {
    this.setState({sampleText: 'Changed Text'});
  }

  _onPressButton() {
    <Text onPress = {this.changeTextValue}>
      {this.state.sampleText}
    </Text>
  }

  render() {
    return (
      <View style={styles.container}>
        <Text onPress = {this.changeTextValue}>
          {this.state.sampleText}
        </Text>

        <View style={styles.buttonContainer}>
          <Button
            onPress={this._onPressButton}
            title="Change Text!"
            color="#00ced1"
          />
        </View>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#f5deb3',
    alignItems: 'center',
    justifyContent: 'center',
  },
  buttonContainer: {}
});
Run Code Online (Sandbox Code Playgroud)

上面的代码显示文本和按钮.

但是,当我单击该按钮时,应用程序崩溃而不是显示要显示的新文本.

我是React Native的新手,请指导我如何解决错误.

kle*_*ndi 20

您可以使用状态来保留默认文本,然后按下我们更新状态.

import React, { Component } from 'react'
import { View, Text, Button } from 'react-native'

export default class App extends Component {
  state = {
    textValue: 'Change me'
  }

  onPress = () => {
    this.setState({
      textValue: 'THE NEW TEXT GOES HERE'
    })
  }

  render() {
    return (
      <View style={{paddingTop: 25}}>
        <Text>{this.state.textValue}</Text>
        <Button title="Change Text" onPress={this.onPress} />
      </View>
    )
  }
}
Run Code Online (Sandbox Code Playgroud)