- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要一个可以返回任何 React 组件的 propTypes
和 defaultProps
的函数,以便显示如下表格:
我创建了以下函数来读取 propTypes
和 defaultProps
function getInfo(component) {
console.log('propTypes', component.propTypes)
console.log('defaultProps', component.defaultProps)
}
https://www.webpackbin.com/bins/-KfXIWlTGcgSo-GeNAFR
记录 propTypes 和 defaultProps
我正在尝试使用如下所示的组件重现相同的内容:
export class Button extends React.Component {
static propTypes = {
data: PropTypes.object.isRequired,
onSubmitFormLogin: PropTypes.func.isRequired,
changeForm: PropTypes.func.isRequired,
requestError: PropTypes.func.isRequired,
};
static defaultProps = {
data: {}
};
...
}
为了使其正常工作,您需要使用static
关键字
根据babel ,它应该是完全相同的东西但由于某种原因我无法读取propTypes
但只能读取defaultProps
那么它们去了哪里?
是 Webpack/Babel 删除了它们吗?
有人使用此语法成功读取 is propTypes
吗?
注意:我无法重现该问题,因为我没有找到任何允许使用 static
关键字的 webpackbin 等效项
最佳答案
通过您链接的存储库,完全可以访问 propTypes
。那么可能出了什么问题呢?
几乎有两种可能性。第一个是 component.propTypes
未定义。对于样板文件,构建生产应用程序时就是这种情况(npm run build
)。它使用 babel-plugin-transform-react-remove-prop-types (如 package.json
所示),它删除了 prop 类型。由于它不会在开发中发生,因此这不太可能是经验丰富的行为。
第二种可能是出现错误。值得仔细阅读该错误:
Uncaught ReferenceError: PropTypes is not defined
它表示 PropTypes
未定义,因此这不可能是 component.propTypes
或类属性声明。 PropTypes
在哪里使用?
static propTypes = {
data: PropTypes.object.isRequired,
// ^ here
onSubmitFormLogin: PropTypes.func.isRequired,
// ^ here
changeForm: PropTypes.func.isRequired,
// ^ here
requestError: PropTypes.func.isRequired,
// ^ and here
};
显然这意味着您没有导入PropTypes
。要修复它,请导入它:
import React, { PropTypes } from 'react';
或者,您可以使用 React.PropTypes
并且无需更改导入。
关于javascript - 如何读取 Button 组件的 propTypes 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42877175/
考虑一下: import PropTypes from 'prop-types'; [...] Component.propTypes = { someProp: PropTypes.array,
请不要在完全阅读之前关闭此问题。这听起来像是一个可以主要由一个人的意见来回答的问题。但是为什么会有两种 PropTypes 的实现呢?哪一个是首选? 一种方法是使用 static 关键字并定义我们的
有什么区别 PropTypes.exact({ name: PropTypes.string, age: PropTypes.number }) 对比 PropTypes.shape({
我正在尝试创建一个自定义 PropType 来检查数组是否具有数值且长度为 2(并且对数字的排序有一些限制)。 显然,我可以为前两个约束执行 Array.PropType.arrayOf(Array.
我正在尝试使用单个 PropTypes 定义来在多个组件中重用它,但遇到了问题。我在单独的类中定义静态 propTypes,然后将其作为模块导入。比如说,我有一个 View 的 React 组件: i
// Anything that can be rendered: numbers, strings, elements or an array // (or fragment) containing
我在单独的文件中创建了两个模型 State 和 City。该州的进口城市。 State 中可以包含一系列城市。 下面的代码工作正常。 State.js let State = PropTypes.sh
删除并重新安装我的 node_modules 文件夹后,我在 LayoutPropTypes.js 文件中遇到了一个我不明白的问题。 在node_modules/react-native/Librar
我有一个组件,它接收其大小的 Prop 。 prop 可以是字符串或数字,例如:"LARGE" 或 17。 我可以让 React.PropTypes 知道这可以是 propTypes 验证中的其中之一
我想集中可能包含不同属性并且需要或不需要的属性类型。举个例子: 组件 A 具有: roomData: PropTypes.shape({ roomId: PropTypes.number, r
更新节点模块后,我在运行的 React 16 应用程序中使用 prop-types 库时遇到了错误。 我创建了一个新的React 16 create-react-app项目来检查这个问题,并且错误以同
我可以在容器组件中使用 PropTypes 吗? 通常,在容器组件中,我连接到 redux 存储并获取自己的数据,但有时我想从父组件传递额外的 props。在这种情况下,我想确保使用 PropType
我正在尝试一些 react native 代码。 根据此blog中给出的说明为我的组件添加了 Prop . 最终出现错误,找不到变量:PropTypes在 github 中发现同样的问题但没有任何答复
我正在使用 eslint 的 Airbnb 配置,它给了我这个警告: [eslint] Prop 验证中缺少“isLoading”(react/prop-types) 有没有办法为isLoading设
我正在设置一个新的 React 在: Create React App 的帮助下 但是,我遇到了 linting 问题。我收到以下 linting 错误 'PropTypes' 未定义。 (无unde
React 有很多使用 PropTypes 来检查 prop 值的方法。我常用的一种是 React.PropTypes.shape({...})。然而,我最近遇到了一种情况,我有一个对象,里面有动态键
我正在尝试 react 样板。它配备了一些发电机。 当我生成一个新容器并将所有选项都勾选为"is"时... ? Select the base component type: React.Compon
我正在 React 中编写一个小型 Toolbar 组件。下面是它的使用方法: 或 或 我希望能够指定 Toolbar 接受的唯一子级是 Toolb
我有这个简单的 React 组件: import {PropTypes} from 'react'; import Column from './Column'; export default fun
我应该向父组件及其子组件添加 propTypes 吗? 例如我有一个 传递 3 个 Prop 的组件,我这样验证: const Header = function(props) { if (pro
我是一名优秀的程序员,十分优秀!