使用 TouchableHighlight 在 React Native 中按下时如何更改按钮颜色?

Posted

技术标签:

【中文标题】使用 TouchableHighlight 在 React Native 中按下时如何更改按钮颜色?【英文标题】:How to change button color when pressed in React Native using TouchableHighlight? 【发布时间】:2017-11-27 10:16:56 【问题描述】:

我目前正在开发一个应用程序,但我无法弄清楚如何在使用 TouchableHighlight 按下按钮后更改颜色。不要与我知道作为 TouchableHighlight 的一部分存在的 underlayColor 道具混淆,它仅在按下按钮时更改颜色,然后返回其常规颜色。

这是我目前所拥有的(为简单起见,省略了部分代码):

import React,  Component  from 'react';
import 
StyleSheet,
Text,
View,
TouchableHighlight,
Alert,
 from 'react-native';


class MeetingScreen extends Component 
  constructor(props)
       super(props);
       this.state = 
        buttonColor: '#7395AE',
        
this.onButtonPress=this.onButtonPress.bind(this);

  

onButtonPress()
  this.setState( buttonColor: 'red' );


    render() 
  return (
    <View style=styles.container>
      <TouchableHighlight
        style=styles.talk
        color=this.state.buttonColor
        onPress=() => this.state.buttonColor
        selected=this.onButtonPress
      >
        <View>
          <Text style=styles.welcome >
            Talk
          </Text>
        </View>
      </TouchableHighlight>
    </View>
  );

;


const styles = StyleSheet.create(
  container: 
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#7395AE',
  ,
  welcome: 
    fontSize: 30,
    textAlign: 'center',
    margin: 10,
    color: '#ffffff',
  ,
  talk:
    height: 200,
    width: 200,
    borderWidth: 5,
    backgroundColor: '#7395AE',
    borderRadius: 100,
    borderColor: '#557A95',
    justifyContent:'center',
    alignItems:'center',
    borderRadius: 100
  ,
);

export default connect(mapStoreToProps, mapDispatchToProps)(MeetingScreen);

我查看了 *** 上的其他答案,并尝试了其中的很大一部分,但我找不到任何适合我的问题的答案。我还查看了 React Native 文档,但没有找到任何有用的信息。现在的代码只显示按钮,当按下它时它会变黑,但在按下后又回到原来的颜色。我正在寻找的是按钮在按下后变为红色并保持红色。任何帮助将不胜感激。非常感谢您提前提供的任何帮助!

【问题讨论】:

【参考方案1】:
<TouchableHighlight
  style=[styles.talk,  backgroundColor: this.state.buttonColor] //Or if don't want "backgroundColor:" and just need change the text color use => "color:""
  onPress=() => this.state.buttonColor
  selected=this.onButtonPress/>

【讨论】:

你是救生员。非常感谢!它工作得很好。我真的很感激!

以上是关于使用 TouchableHighlight 在 React Native 中按下时如何更改按钮颜色?的主要内容,如果未能解决你的问题,请参考以下文章

使用 TouchableHighlight 更改字体颜色

尽管使用官方反应本机文档中的源代码,但 TouchableHighlight 不起作用

React Native TouchableHighlight 忽略第一次点击事件

Flatlist TouchableHighlight传递值

React Native TextInput 模糊消耗 TouchableHighlight 按下事件

react-native TouchableHighlight 禁用 onPress 颜色闪烁