React Native 将样式设置为 State

2024-05-09

我想用backgroundColor of style1作为一种状态,并在函数中改变它change().
我怎样才能访问style1?

我的观点是调用该函数change从另一个函数,使按钮将其颜色更改为黄色,然后在一段时间后再次将其颜色更改为蓝色。

export default class App extends Component{ 
  constructor (props){
    super(props);
    this.state = {
      //style1.backgroundColour: blue  //? Can't 
    }
    this.change=this.change.bind(this)
  }

  change() {
    this.setState({ style1.backgroundColour: yellow }) //?
  }

  render(){
    return (
      <View style={styles.style1} > </View>

    );
  }
}

const styles = StyleSheet.create({

  style1:{
    padding: 5,
    height: 80,
    width: 80,  
    borderRadius:160,    
    backgroundColor:'blue',
  },

});

更新:这个问题和我的答案是基于类组件的。但函数式组件和钩子是长期以来使用 React 的当前方式。

首先,您应该为背景颜色创建一个状态:

const [backgroundColor, setBackgroundColor] = useState('blue');

然后改变它在你的函数中的值

setBackgroundColor('yellow');

最后,在 style 属性中使用它:

style={[styles.style1, {backgroundColor}}

旧答案,使用类组件

您可以为 style 属性提供一个数组。因此,您可以从其他来源添加任何其他样式。

首先,您应该为您的backgroundColor状态声明一个默认值:

this.state = {
  backgroundColor: 'blue',
};

然后在函数中将其状态设置为正常字符串状态:

this.setState({backgroundColor: 'yellow'});

最后,在 style 属性中使用它:

style={[styles.style1, {backgroundColor: this.state.backgroundColor}]}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Native 将样式设置为 State 的相关文章

随机推荐

  • 黄瓜与 Micronaut

    我正在尝试将 Cucumber 与 Micronaut 一起使用 但当我尝试将其与 Cucumber 一起使用时 MicronautTest 注释根本不起作用 未注入 theApple 请参阅下面的代码 如果我在没有黄瓜的情况下运行它就可以
  • Laravel 5.5 中的主从配置

    如何配置 Laravel 5 5 主从 MySQL 复制 我想分别在master和slave上进行写操作和读操作 可选 有没有办法在理想条件下进行连接池和打开连接的最大 最小数量 只需改变你的config database php文件包含读
  • 使用列表中的数据框:删除变量,添加新变量

    定义一个列表dats有两个数据框 df1 and df2 dats lt list df1 data frame a sample 1 3 b sample 11 13 df2 data frame a sample 1 3 b sampl
  • 如何在 NHibernate 中自动生成 ID

    如何让 NHibernate 自动生成表的唯一 ID ID 可以是任意的long值 只要每个值仅使用一次 我当前的映射如下所示
  • 如何动态查找连接组件

    使用不相交集数据结构可以很容易地得到图的连通分量 而且 它只是支持增量连接组件 http www boost org doc libs 1 46 1 libs graph doc incremental components html 然而
  • excel中的多轴折线图

    我正在寻找类似于下图中的多轴折线图 这是由 amcharts 制作的 JavaScript 图表 excel有没有可以绘制图表的选项 请注意 有 3 个 Y 轴和 3 个折线图 可让您比较数据 是否有可能获得超过 3 个数据点 每个数据点在
  • 透明窗口层可点击并始终位于顶部

    这是我尝试实现的一些代码 其目的是创建一个透明 全屏 无边框 可点击且始终位于其他窗口之上的表单层 然后 您可以使用 directx 在其顶部进行绘制 否则保持透明 不起作用的部分是点击部分和 directx 渲染 当我运行它时 我基本上在
  • 如何更改 IntelliJ 中所有文件的突出显示?

    在 IntelliJ 中 您可以使用滑块将突出显示级别从检查更改为语法 但是 这仅适用于单个文件 有没有办法让所有文件默认使用语法突出显示 关于 PyCharm 的讨论表明 JetBrains 不希望您更改其任何 IDE 中的默认突出显示级
  • 引发 RuntimeError(f"目录 '{directory}' 不存在") RuntimeError: 导入 fitz 时目录 'static/' 不存在

    当我运行 extract img py 文件时出现此错误 RuntimeError f 目录 directory 不存在 运行时错误 导入 fitz 时不存在目录 static 我不明白为什么这会给我发回此错误消息 我之前看到过关于这个话题
  • 如何通过 JavaScript for 循环创建 json?

    I have array选择标签
  • 创建一个打开文件并创建字典的函数

    我有一个正在处理的文件 我想创建一个读取文件并将内容放入字典中的函数 然后该字典需要通过 main 函数传递 这是主程序 它无法改变 我所做的一切都必须与主程序配合 def main sunspot dict file str raw in
  • 将变换值添加到元素上已有的当前变换中?

    假设我有一个div那有translateX and translateY动态添加的值 div class object child0 style width 50px height 50px 我想添加rotateY 20deg 到当前的变换
  • CMake:如何将 .def 文件添加到 Visual Studio 项目过滤器?

    如何将 def 文件添加到 Visual Studio 项目过滤器 filters文件 Visual Studio 使用 def 文件 CMake代码 set a src a cpp a def add library a SHARED a
  • angular.bootstrap 错误:错误:[ng:btstrpd] 应用程序已使用此元素引导

    我正在构建一个依赖于 Angular 的小部件以及小部件构建器工具 构建者使用 Angular 与ngApp附于html文档的标签 当我在小部件生成器中加载小部件时 出现以下错误 Error ng btstrpd App Already B
  • 如何在Python中的BeautifulSoup4中使用.next_sibling时忽略空行

    由于我想删除 html 网站中重复的占位符 因此我使用 BeautifulSoup 的 next sibling 运算符 只要重复项位于同一行 就可以正常工作 参见数据 但有时它们之间有一个空行 所以我希望 next sibling 忽略它
  • 从大型 DataTable 列中选择不同的值

    我有一个包含 22 列的 DataTable 其中一列称为 id 我想查询此列并将所有不同的值保留在列表中 该表可以包含 10 到 100 万行 做到这一点的最佳方法是什么 目前 我正在使用 for 循环遍历列并比较值 如果值相同 则转到下
  • GSON:自定义对象反序列化

    好吧 我编辑了这个问题 因为它不够清楚 Edit 2 更新了 JSON 文件 我在 Android 应用程序中使用 GSON 我需要解析来自服务器的 JSON 文件 而且有点太复杂了 我不想让我的对象结构太重 所以我想简化内容 所以我的对象
  • 实现词法分析器时,DFA 与正则表达式?

    我刚刚学习如何编写编译器 所以如果我有任何错误的说法 请纠正我 当人们可以简单地使用正则表达式时 为什么还要在代码中实现 DFA goto 语句 表驱动实现 据我了解 词法分析器接收一串字符并生成一个标记列表 这些标记在语言的语法定义中是终
  • 适用于 Droid 手机的数学或 LaTeX 引擎 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Android 手机有可用的数学或 LaTeX 引擎吗 我最喜欢的抽认卡应用程序 AnyMemo 似乎
  • React Native 将样式设置为 State

    我想用backgroundColor of style1作为一种状态 并在函数中改变它change 我怎样才能访问style1 我的观点是调用该函数change从另一个函数 使按钮将其颜色更改为黄色 然后在一段时间后再次将其颜色更改为蓝色