使用按钮更改文本的颜色



我正在尝试创建一个简单的反应本机应用程序:

  1. 渲染"你好,[名字]!"当用户输入名称时(此部分工作)
  2. 更改"你好,[名称]!"按下按钮时文字颜色。

关于我该如何解决这个想法?

我给了 this一个黑色的初始状态,但这似乎没有做任何事情。

我想发生的事情是在单击红色按钮时触发制造,这将变成红色。一旦我有工作,我将添加更多颜色按钮。

谢谢!

请参阅下面的app.js代码。所有其他文件都处于默认状态。

import React, { Component } from 'react';
import {
  AppRegistry,
  Platform,
  StyleSheet,
  Text,
  TextInput,
  View,
  Button
} from 'react-native';
export default class App extends Component<{}> {
  constructor(props) {
    super(props);
    this.state = {
      text: 'World',
      color: 'black'
    };
  }
  makeRed = () => {
    this.setState({
      color: 'red'
    });
  }
  render() {
    return (
      <View style={styles.container}>
        <Text style={[styles.welcome, {color: undefined}]}>
          Hello, {this.state.text}!
        </Text>
        <TextInput
          style={styles.instructions}
          placeholder="Enter a name here!"
          onChangeText={(text) => this.setState({text})}
        />
        <Button
          title='⬤'
          onPress={this.makeRed}
          color='red'
        />
      </View>
    );
  }
}
const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 40,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});

这是该应用程序的屏幕截图以供参考:应用屏幕截图

您需要做的就是更改以下内容:

style={[styles.welcome, {color: undefined}]}

to

style={[styles.welcome, {color : this.state.color }]}

请检查:工作演示

colorText组件的样式不被称为状态的属性。尝试作为Text元素:

<Text style={{color: this.state.color, ...styles.welcome}}>
  Hello, {this.state.text}!
</Text>

,并且makeRed需要具有构造函数中的上下文绑定的上下文,否则this.setState将不确定。像这样(在super(props)下):

this.makeRed = this.makeRed.bind(this)

相关内容

  • 没有找到相关文章

最新更新