Вы можете присвоить массив стилевому тегу. Таким образом, вы можете задать любые другие стили из других источников.
Сначала вы должны объявить значение по умолчанию для вашего состояния backgroundColor:
this.state = {
backgroundColor: 'blue'
}
, а затем установить состояние в функции как обычное состояние строки:
this.setState({backgroundColor: 'yellow'});
и, наконец, используйте его в теге стиля:
style={[styles.style1, {backgroundColor: this.state.backgroundColor}]}
Если вы хотите использовать объект вместо обычного состояния строки:
export default class App extends Component{
constructor (props){
super(props);
this.state = {
style1: {
backgroundColor: 'blue'
}
}
this.change=this.change.bind(this)
}
change() {
this.setState({ style1: {...this.state.style1, backgroundColor: 'yellow' } })
}
render(){
return (
<View style={[styles.style1, this.state.style1]}> </View>
);
}
}
const styles = StyleSheet.create({
style1:{
padding: 5,
height: 80,
width: 80,
borderRadius:160,
backgroundColor:'blue',
},
});