在 React 样式属性中使用 props

2023-12-24

(我使用的是带有 ES6 语法的 JSX)

这有效:

render() {
  return (
    <div style={{ width: '95%' }}></div>
  )
}

这行不通:(为什么不行?)编辑:它确实有效

render() {
  return (
    <div style={{ width: this.props.progress + '%' }}></div>
  )
}

Edit:

它可以工作,但样式值必须是有效值,否则它将返回错误。

我使用状态来创建样式对象,并在构造函数中使用正则表达式清除属性,这样就不会因为无效值而再次出错。这是我的解决方案:

import React, { Component, PropTypes } from 'react'

export default class ProgressBar extends Component {
  constructor(props) {
    super(props)
    let progress = +props.progress.replace(/[^0-9]/g, '') || 50
    this.state = {
      style: {
        width: progress + '%'
      }
    }
  }

  render() {
    return (
    ...
      <div className="progress-bar" role="progressbar" aria-valuenow={ this.state.progress } style={ this.state.style }></div>
    ...
    )
  }
}
ProgressBar.propTypes = {
  progress: PropTypes.string.isRequired
}

最有可能的this.props.progess未设置为适当的值。为这种情况提供一个好的默认值:

render() {

  const { progress = 0 } = this.props;

  return (
    <div style={{ width: progress + '%' }}></div>
  )
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 React 样式属性中使用 props 的相关文章

随机推荐

  • ProgressBar Circle 在 android L (API 21) 上显示没有进度

    我有一个圆形进度条来倒计时 它在 kitkat 和之前的版本上完美运行 但在 android L 上 无论我设置什么进度 它总是显示一个完整的圆圈 Image http youspeakschwaebisch de progressbar
  • 在 XPath 中获取以下兄弟姐妹?

    我正在努力抓住li下面的类文本基于包含某个单词的树中较高的强标记 在本例中为 restaurants p class The location where the condo is situated offers a good choice
  • 使用 dlopen() 加载时解决动态库依赖关系

    我在加载动态库时遇到了问题dlopen 我尝试加载一个库 handle dlopen libmkl intel lp64 so RTLD LAZY 此代码失败并显示以下消息dlerror opt intel composer xe 2013
  • 预填充 WebView 文本字段

    我需要预先填写文本字段UIWebView我明白javascript是解决这个问题的最好方法 不幸的是我一无所知javascript在过去的几个小时里一直在摸索 一无所获 最新的拙劣尝试 void webViewDidFinishLoad U
  • 删除的指针指向什么?

    int a nullptr NULL before C 11 a new int 1 delete a 什么是a指向现在 它是否指向nullptr或者它是否指向被删除之前所指向的地址 其他一些答案错误地表示 该值不会改变 但确实如此 删除前
  • MVVM INotifyPropertyChanged - 线程问题?

    我刚刚开始学习 MVVM 和 WPF 很抱歉提出了愚蠢的问题 我正在使用不同的教程和示例来学习 并且我遇到了这个例子 http www codeproject com Articles 165368 WPF MVVM Quick Start
  • XMLHttpRequest POST 并在新窗口/选项卡中打开目标页面

    如何模拟Form的 POST 行动与target blank in XMLHttpRequest 即发布数据并在新选项卡中打开目标页面 gBrowser开箱即用地提供此功能 var dataStream Cc mozilla org io
  • 在 div 内仅将文本换行两行

    我想将文本包装在特定宽度的 div 内的两行内 如果文本超出两行的长度 那么我想显示省略号 有没有办法使用 CSS 来做到这一点 e g Sample text showing wrapping of text in only two li
  • Angular/Rxjs 管道异步不适用于 ssr?

    我在 SSR 上运行的异步管道有问题 没有错误 只有无限循环 似乎服务器正在等待可观察的结果被解析 我在用 nestjs ng universal 角9 火力基地 Rxjs 像这样的简单案例有效 p observable async p 但
  • Swift2 UI 测试 - 等待元素出现

    我想暂停测试并等待屏幕上出现某个元素 然后再继续 我没有看到一个好的方法来对此产生期望并等待使用 public func waitForExpectationsWithTimeout timeout NSTimeInterval handl
  • 如何在 Flask 路由启动之前运行函数?

    我需要在 Flask 路由开始工作之前执行调用功能 我应该在哪里放置函数以使其在服务启动时调用 我做了 app Flask name def checkIfDBExists it is my function if not DBFullPa
  • 从另一个模块覆盖模块方法

    我想从另一个模块 B 重写模块 A 的方法 该方法将对 A 进行猴子补丁 http codepad org LPMCuszt http codepad org LPMCuszt module A def foo puts A end end
  • Rails update_attributes 不保存?

    有没有替代方案update attributes那不保存记录吗 所以我可以做类似的事情 car Car new make gt GMC other processing car update attributes model gt Sier
  • ReadOnly 和 Enabled 之间的主要区别是什么?

    In Windows 窗体 http en wikipedia org wiki Windows Forms控件有两个属性 ReadOnly and Enabled 这两个属性有什么区别 我觉得他们的行为方式是一样的 正如以下论坛帖子中所说
  • SQL Server 2005 根据另一个表字段值的聚合计算列结果

    抱歉问题标题很长 我想我在这件事上是个失败者 但机会很小 是否可以将一个表中的计算字段的计算作为应用于另一个表中的字段的聚合函数的结果 i e 你有一张名为 mug 的桌子 这个桌子有一个名为 color 的孩子 这让我在英国头疼 但供应商
  • 如何在Flutter中实现应用内购买订阅?

    我想在我的 Flutter 应用程序中为 iOS 和 Android 设备提供自动更新订阅 用户可以订阅 1 个月 目前还没有官方维护的应用内购买插件 但是 Flutter 中有很多关于应用内购买的插件 哪一个是最好的 如何实施 这些安全吗
  • 即使禁用 cookie,document.cookie 在 IE11 上仍然可以访问

    使用 IE11 我可以显示所有 cookie 的内容 写出 cookie 找到它并使用 JavaScript 删除它 即使我将隐私设置为 阻止所有 Cookie 实际上 无论我将 IE 模拟设置为哪个版本 document cookie 仍
  • Javascript 中的 For 循环 (document.getElementById)

    我有一点 JavaScript 问题 而不是使用这个 document getElementById hoverinv1 style display document getElementById hoverinv2 style displ
  • Android 上的持久 HttpURLConnections

    我在尝试让 Android 应用程序 好吧 服务 它的情况下它有任何区别 使用持久 HTTP 1 1 连接时遇到问题 以下循环 简化的测试用例 通过桌面 JRE 上的单个 TCP 会话进行工作 但在 Android 设备上会导致整个套接字创
  • 在 React 样式属性中使用 props

    我使用的是带有 ES6 语法的 JSX 这有效 render return div div 这行不通 为什么不行 编辑 它确实有效 render return div div Edit 它可以工作 但样式值必须是有效值 否则它将返回错误 我