@H_404_1@我是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: {} });
However when I click the button,the app crashes instead of showing the new text which is to be shown.
解决方法
您可以使用状态来保留默认文本,然后按下我们更新状态
import React,{Component} from 'react'; import {View,Button} from 'react-native'; export default class App extends Component{ constructor(){ super(); this.state = { textValue:'Change me' } } onPress = () => { this.setState({ textValue: "THE NEW TEXT GOES HERE" }) } render(){ return( <View style={{paddingTop: 20}}> <Text style={{color: 'cyan'}}>{this.state.textValue}</Text> <Button title="Change Text" onPress={this.onPress}/> </View> ); } }
Dhu字节:您以前的答案代码不起作用.您还应该导入View组件.我做了改变,所以,它现在正在工作.