【发布时间】:2018-05-10 15:16:50
【问题描述】:
我有这个代码可以生成来自 API 的大小按钮,例如 (al, l, m, s ... ),当用户单击一个圆圈时,我需要放置一个特定的样式,我已经尝试过这个代码,但是它为所有圆圈制作相同的样式,单击它时我需要更改一个圆圈的样式:
<View style={{ paddingTop: 10, width: "49%" }}>
<View style={styles.sizeView}>
<View style={styles.sizeView3}>
<Text style={styles.chartText}>{t("size")}</Text>
</View>
</View>
<View style={styles.sizeButtons}>
{this.state.productsList[0].sizes.map((item, index) => {
return (
<TouchableOpacity
key={index}
onPress={() => this.toggle1(item)}
style={
!this.state.pressStatus
? styles.sizes
: styles.sizesAlt
}
onHideUnderlay={this._onHideUnderlay.bind(this)}
onShowUnderlay={this._onShowUnderlay.bind(this)}
>
<Text
key={index}
style={
!this.state.toggle1 ? {} : { color: "#EC1C24" }
}
>
{item}
</Text>
</TouchableOpacity>
);
})}
</View>
</View>
【问题讨论】:
-
你能上传你所有的组件代码吗?
-
@VahidBoreiri 我更新了它,这个是 toogle1 函数:toggle1(size) { this.setState({ size }); }
-
你只是在你的
onPress={() => this.toggle1(item)}中给它红色#EC1C24。你不会改变它的颜色。你只是在改变大小。 -
不,所有圆圈都没有红色边框,当用户单击这些圆圈时,我需要更改样式,仅针对单击的一个圆圈。单击其中一个时,我的代码会更改所有圆圈的样式! :(@OrthoHomeDefense
-
我只是指出错误。而不是
style={ !this.state.toggle1 ? {} : { color: "#EC1C24" } }您需要在onPress事件中更改该元素的样式
标签: javascript css react-native coding-style react-redux