Проблема в том, что вы используете одну переменную для изменения состояния переключения для всех кнопок (this.state.toggle1), поэтому, если один из них переключается, все они будут переключаться, так как я не думаю, что это предназначено поведение.
Я предлагаю создать чистый компонент для кнопок, чтобы каждая из них имела свое собственное состояние и управляла переключением независимо.
Что касается стиля, они работают 2 синтаксиса:
style={ !this.state.toggle ? {} : { color: "#EC1C24", backgroundColor: 'red' }}
или
style={[ this.state.toggle && {color: "#EC1C24", backgroundColor: 'red'} ]}
Итак, сначала создайте компонент для кнопки круга
export class CircleButton extends Component {
constructor(props) {
super(props);
this.state = {
toggled: false
};
}
render() {
return (
<TouchableOpacity
key={index}
onPress={() => this.toggle1(item)}
style={
!this.state.pressStatus
? styles.sizes
: styles.sizesAlt
}
onHideUnderlay={this.props.onHideUnderlay.bind(this)}
onShowUnderlay={this.props.onShowUnderlay.bind(this)}
>
<Text
key={index}
style={
!this.state.toggle ? {} : { color: "#EC1C24" }
}
>
{item}
</Text>
</TouchableOpacity>
);
}
}
И измени свой взгляд на что-то вроде этого
<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 (
<CircleButton
onHideUnderlay={this._onHideUnderlay.bind(this)}
onShowUnderlay={this._onShowUnderlay.bind(this)}/>
);
})}
</View>
</View>