react设置style样式不更新问题

在React应用中,遇到数据更新但组件样式未随之更新的问题。问题源于接口返回的颜色值缺少一位,导致背景色样式错误。尽管控制台无任何错误提示,但通过检查发现背景色和图片样式设置有误,背景色的六位十六进制颜色值只获取到了五位。解决方案在于正确处理接口数据,确保颜色值完整,并检查样式语法的正确性。
摘要由CSDN通过智能技术生成

问题描述

如下所示,data数据来源于接口.但是请求到数据并用hooks保存之后样式一直不更新. 背景色和背景图片一直展示不出来.

    <div
      className={style.MailOfferLogin}
      style={{
        background: `${data?.homeBgColor || ''} url(${
          data?.loginBackgroundImgUrl
        }) no-repeat top center / 100%`
      }}
    />

而且f12看终端也是更新前的样式.控制台没有任何报错或者警告的提示.就给人一种状态变更但是style没被更新的感觉.
在这里插入图片描述

问题分析

  1. 状态更新问题: 使用useMemo尝试得到结果之后,数据变了,但style还是不更新
  2. 是不是被全局代码所影响: 回退到最初版本的代码任然无效
  3. 样式语法本身有问题,style写法没有错但是背景色和背景图取的是接口数据,而接口数据不可信.把应该展示的样式打印出来才发现问题,如下
background: #61980 url(https://xxx.png) no-repeat top center / 100% no-repeat top center / 100%

取到的颜色值只有5位数!

总结

  • 设置style时,如果style的语法有错误react是不会把错误的语法信息更新到节点上去的,也不会有任何的提示信息.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值