3 回答
TA贡献1865条经验 获得超7个赞
我不认为您可以在创建后修改样式表,并且不清楚您为什么要这样做。
在您的示例中,您可以只向标签添加一个动态属性Text
,如下所示:
<Text style={[styles.title, {color:mainColor}]}>Lorem ipsum</Text>
TA贡献1825条经验 获得超4个赞
let mainColor = Colors.blue1;
export default class Article extends Component {
constructor(props) {
super(props);
this.state={
liked: false,
withHeroImage: false,
mainColor = Colors.green;
}
}
render() {
return (
<Text style={[styles.title, color: this.state.mainColor]}>Lorem ipsum</Text>
);
}}
const styles = StyleSheet.create({
title:{
fontSize: 20,
fontFamily: FontFamily.PoppinsSemibold,
marginBottom: 20
}
})
试试这个方法。只是更新变量不会做任何改变。在渲染部分进行更改应该在 setState 或 props 中完成。所以如果你想更新颜色,那么在 setState 中获取颜色并将其分配给样式,就像上面所做的那样。希望能帮助到你 !!!!
TA贡献1818条经验 获得超11个赞
如果你的React
版本是16.8
或更高,你可以使用效果hook
。
用法
import React, { useState, useEffect } from 'react';
import { Text, View, StyleSheet,Button } from 'react-native';
export default function Article() {
const [maincol, setColor] = useState("blue");
const styles = StyleSheet.create({
title:{
fontSize: 20,
color: maincol,
marginBottom: 20
}
})
useEffect(() => {
console.log(maincol);
});
return (
<View style={{flex:1,justifyContent:"center",alignItems:"center"}}>
<Button title="change color" onPress={() => setColor("green")} />
<Text style={styles.title}>Lorem ipsum</Text>
</View>
);
}
添加回答
举报