Java 如何设置可在样式中使用的变量

Java 如何设置可在样式中使用的变量,java,react-native,Java,React Native,我使用的是react原生组件,根据它的道具,它使用两种主要颜色。因为我想在样式表中访问该变量,所以我在类之外声明它,而不是在状态中声明它。首先我将其声明为蓝色,然后在构造函数中将其值更改为绿色。但是,它使用的文本仍为蓝色。 我知道这与呈现有关,但我认为既然我更改了类构造函数中的值,这是生命周期中的第一个值,那么它就可以工作了 我不想在JSX样式的标签中使用函数,所以有解决方案吗 let mainColor = Colors.blue1; export default class Article

我使用的是react原生组件,根据它的道具,它使用两种主要颜色。因为我想在样式表中访问该变量,所以我在类之外声明它,而不是在状态中声明它。首先我将其声明为蓝色,然后在构造函数中将其值更改为绿色。但是,它使用的文本仍为蓝色。 我知道这与呈现有关,但我认为既然我更改了类构造函数中的值,这是生命周期中的第一个值,那么它就可以工作了

我不想在JSX样式的标签中使用函数,所以有解决方案吗

let mainColor = Colors.blue1;

export default class Article extends Component {

    constructor(props) {
        super(props);
        mainColor = Colors.green;
        this.state={
            liked: false,
            withHeroImage: false
        }
    }


    render() {
        return (

           <Text style={styles.title}>Lorem ipsum</Text>
        );
    }
}

const styles = StyleSheet.create({
    title:{
        fontSize: 20,
        color: mainColor,
        fontFamily: FontFamily.PoppinsSemibold,
        marginBottom: 20
    }
})
这样试试。仅更新变量不会进行任何更改。要在渲染部分进行更改,应在setState或props中进行更改。因此,如果要更新颜色,请在setState中获取颜色,并将其指定给样式,如上所述。希望能有帮助


这样试试。仅更新变量不会进行任何更改。要在渲染部分进行更改,应在setState或props中进行更改。因此,如果要更新颜色,请在setState中获取颜色,并将其指定给样式,如上所述。希望能有帮助

我不认为您可以在创建样式表之后修改样式表,也不清楚您为什么要这样做

在您的示例中,您可以只向文本标记添加一个动态属性,如下所示:

<Text style={[styles.title, {color:mainColor}]}>Lorem ipsum</Text>

我不认为您可以在创建后修改样式表,也不清楚您为什么要这样做

在您的示例中,您可以只向文本标记添加一个动态属性,如下所示:

<Text style={[styles.title, {color:mainColor}]}>Lorem ipsum</Text>
如果React版本为16.8或更高,则可以使用效果挂钩

这让我可以直接执行我的答案

用法

从“React”导入React,{useState,useffect}; 从“react native”导入{文本、视图、样式表、按钮}; 导出默认函数项目{ 常量[maincol,setColor]=useStateblue; const styles=StyleSheet.create{ 标题:{ 尺寸:20, 颜色:maincol, marginBottom:20 } } useEffect=>{ console.logmaincol; }; 回来 setColorgreen}/> 乱数假文 ; } 如果React版本为16.8或更高,则可以使用效果挂钩

这让我可以直接执行我的答案

用法

从“React”导入React,{useState,useffect}; 从“react native”导入{文本、视图、样式表、按钮}; 导出默认函数项目{ 常量[maincol,setColor]=useStateblue; const styles=StyleSheet.create{ 标题:{ 尺寸:20, 颜色:maincol, marginBottom:20 } } useEffect=>{ console.logmaincol; }; 回来 setColorgreen}/> 乱数假文 ; }