gpt4 book ai didi

javascript - 如何更改多个按钮中按下颜色的按钮 React Native

转载 作者:搜寻专家 更新时间:2023-11-01 05:09:16 25 4
gpt4 key购买 nike

我的 React native 应用程序中有 3 个按钮。当用户单击按钮 1 时,我需要将其颜色更改为橙​​色。但其他按钮应具有默认颜色(灰色)。如果用户下次单击按钮 3,颜色应更改为橙色,但第一个按钮颜色应重置为默认值。我对原生 react 完全陌生,这就是我尝试过的。但它适用于所有按钮。我知道如果我可以拥有多个具有唯一 Id 的状态,那是可以做到的。但是我不知道方法。

<Text style={ styles.switchButtonsTitle }>Choose Type of User</Text>
<TouchableOpacity onPress={(userType) =>
this.selectionOnPress("BASIC")} >
<Text style={_style}>
<Text style={styles.switchButtonsText}>BASIC</Text>
</Text>
</TouchableOpacity>


<TouchableOpacity onPress={(userType) =>
this.selectionOnPress("INTERMEDIATE")}>
<Text style={_style}>
<Text style={styles.switchButtonsText}>INTERMEDIATE</Text>
</Text>
</TouchableOpacity>

<TouchableOpacity onPress={(userType) =>
this.selectionOnPress("ADVANCED")}>
<Text style={{backgroundColor: this.state.backgroundColor}}>
<Text style={styles.switchButtonsText}>ADVANCED</Text>
</Text>
</TouchableOpacity>

按下时选择

selectionOnPress(userType) {
this.setState({
onClicked: true
});
}

Prop

constructor(props) {
super(props);
this.state = {
onClicked: false
}
this.selectionOnPress = this.selectionOnPress.bind(this)
}

渲染(不添加所有代码,只添加对这篇文章有用的代码)

render() {
var _style;
if (this.state.onClicked) { // clicked button style
_style = {
backgroundColor: "red"
}
}
else { // default button style
_style = {
backgroundColor: "blue"
}
}

最佳答案

我对你的代码做了一些修改

 export default class App extends Component {
constructor(props) {
super(props);
this.state = { selectedButton: null };
this.selectionOnPress = this.selectionOnPress.bind(this);
}

selectionOnPress(userType) {
this.setState({ selectedButton: userType });
}

render() {
return (
<View>
<Text style={styles.switchButtonsTitle}>
Choose Type of User
</Text>
<TouchableOpacity
onPress={() => this.selectionOnPress("BASIC")}
>
<Text
style={{
backgroundColor:
this.state.selectedButton === "BASIC"
? "red"
: "grey"
}}
>
<Text style={styles.switchButtonsText}>BASIC</Text>
</Text>
</TouchableOpacity>

<TouchableOpacity
onPress={() => this.selectionOnPress("INTERMEDIATE")}
>
<Text
style={{
backgroundColor:
this.state.selectedButton === "INTERMEDIATE"
? "red"
: "grey"
}}
>
<Text style={styles.switchButtonsText}>
INTERMEDIATE
</Text>
</Text>
</TouchableOpacity>

<TouchableOpacity
onPress={() => this.selectionOnPress("ADVANCED")}
>
<Text
style={{
backgroundColor:
this.state.selectedButton === "ADVANCED"
? "red"
: "grey"
}}
>
<Text style={styles.switchButtonsText}>
INTERMEDIATE
</Text>
</Text>
</TouchableOpacity>
</View>
);
}
}


... don't forget to define your styles

关于javascript - 如何更改多个按钮中按下颜色的按钮 React Native,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48443465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com