问题标签 [react-proptypes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
27579 浏览

reactjs - 如何通过 Jest 测试 React PropTypes?

我正在为我的 React 代码编写 Jest 测试,并希望利用/测试 PropType 检查。我对 Javascript 世界很陌生。我正在使用 npm 安装react-0.11.2并有一个简单的:

在我的测试中。我的测试看起来与 jest/react 教程示例非常相似,代码如下:

但是,似乎EventCell没有触发组件中的 PropType 检查。我知道检查只在开发模式下运行,但后来我也认为react通过 npm 给了你开发版本。当我使用 watchify 构建组件时,检查会在我的浏览器中触发。

我错过了什么?

0 投票
1 回答
19789 浏览

reactjs - React proptypes 组件与元素

和有什么区别:

我想用;

在哪种情况下我应该使用另一个?

谢谢

0 投票
2 回答
8305 浏览

javascript - React PropTypes 的多重验证

有没有办法使用React.PropTypes. 特别想混合自定义验证和库存验证。

我有两个道具,一个 objectoptions和一个 string value。我想检查它props.value是一个字符串,也是对象上的一个键。使用 coffeescript 这看起来像:

这很好用,但我也想确保我的值是字符串类型。我确信我可以在自定义函数中手动坚持该验证没有问题,但理想情况下,我只想使用React.PropTypes.string.isRequired. 我试着把它放在自定义函数中并执行它,但没有奏效。以下也不起作用:

有没有办法使用内置验证器的反应来完成这项工作,或者在我的函数中重写它是唯一的选择?

0 投票
3 回答
2659 浏览

reactjs - 如何在服务器上捕获 React propTypes 警告?

在服务器上渲染 React 组件时,所有 propTypes 警告消息都下降到一般输出或process.stdout. 例如,这仅在终端或一般应用程序日志中可见:

有什么办法可以捕捉到这些警告并将它们转换或将它们传送到另一个方向?例如,我想将应用程序日志和 React(作为模板引擎)日志分开。我该怎么做?

0 投票
6 回答
216269 浏览

arrays - 用形状反应proptype数组

是否有一种内置的方法来使用 proptypes 来确保传递给组件的对象数组实际上是特定形状的对象数组?

也许是这样的?

我在这里错过了一些非常明显的东西吗?似乎这将受到高度追捧。

0 投票
1 回答
842 浏览

arrays - 反应 PropTypes。强制数组为特定的 React 类型

如何强制/验证传入的 Array 道具(到 React 组件)的每个项目都属于特定的 React 类型?

这是一个示例代码:

0 投票
2 回答
204 浏览

javascript - React JS 'propTypes' 验证器运行两次

下面的代码创建有序和无序列表。虽然其他部分的代码因为无关紧要所以这里就不贴了

问题:我通过在“导航”组件中调用它来将一些属性传递给“列表”组件。我正在通过“列表”的 propTypes 运行一些验证来验证“列表”收到的项目。但是,我注意到验证运行了两次。我想不通为什么?

是不是因为代码内部发生了一些竞争条件。或者,它是 React 中的错误吗?

0 投票
3 回答
2053 浏览

reactjs - 获取 React propType 名称、类型和 isRequired

我注意到 react 组件有一个type.propTypes对象,它将所有 propTypes 作为键。

例如,

好像

反应组件类型

在 Chrome 开发工具中。所以我可以使用

但我也可以获得proptypes类型以及它是否需要?

0 投票
3 回答
2908 浏览

reactjs - 提取/读取 React propTypes

我想直观地测试 React 组件。用户可以使用表单更改组件的道具。我希望能够(例如)<select>基于React.PropTypes.oneOf(['green', 'blue', 'yellow']).

当我阅读MyComponent.propTypes它时,它返回一个由 React 定义的函数。有没有办法提取/读取道具类型?

0 投票
1 回答
3919 浏览

performance - 有没有办法在开发模式下禁用或加速 React PropType 验证?

据我所知,禁用 React PropType 验证的唯一方法是使用process.env.NODE_ENV定义为的 uglify React 'production'

但是,我想使用没有运行时 PropType 验证的开发模式,原因如下:

  • 他们大大减慢了我的应用程序。PropType 验证是分析结果中的首要问题,因为:
    • 我有一个相当深的组件层次结构,在多个级别进行 PropType 验证(是的,我确实有适当的 shouldComponentUpdate 等)
    • 我正在使用 Redux,这意味着所有更新都从层次结构的顶部或附近开始
    • 我有鼠标拖动交互,争取每秒 30 次更新
  • 我仍然希望看到所有其他 React 警告和错误,它们也会在生产模式下被禁用。
  • 无论如何,Flowtype 显然可以在很多情况下静态验证 PropTypes。

如果没有别的,我可以创建一个转换器babel-plugin-react-transform来剥离所有组件propTypes(或者可能只是那些我以某种方式注释的组件),但我想知道是否有更简单的方法来做到这一点,因为 React可以轻松提供一个编译时标志来禁用 PropType 验证。

更新:那个 babel 插件已经存在(https://www.npmjs.com/package/babel-plugin-react-remove-prop-types