javascript - react : why is getDefaultProps a method while propTypes is a plain object?

标签 javascript reactjs

由于 getDefaultProps 不引用组件实例,因此您似乎不需要函数(因为不需要重新绑定(bind) this,例如) 而一个普通的旧对象就可以正常工作。在那里使用函数有什么好处,为什么同样不适用于 propTypes

最佳答案

Prop 类型
propTypes 是一个对象,因为它用于声明一个 prop 是一个特定的 JS 原语。例如:

React.createClass({
  propTypes: {
    optionalArray:  React.PropTypes.array,
    optionalBool:   React.PropTypes.bool,
    optionalFunc:   React.PropTypes.func
  }
});

这有助于确保正确使用组件。当为 Prop 提供无效值时,将在 JavaScript 控制台中显示警告。

getDefaultProps()
getDefaultProps用于定义props的默认值,在创建类时调用一次并缓存。

为什么
我认为 getDefaultProps() 的优势,或者更确切地说,是一个函数,因此它可以被缓存以避免下次使用该组件时重新计算。

关于javascript - react : why is getDefaultProps a method while propTypes is a plain object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28701750/

相关文章:

ReactJS ErrorBoundary 没有捕获 undefined variable

reactjs - ENOENT : no such file or directory, 这与 npm 无法找到文件有关

javascript - 使用ajax从 Controller 到JS的日期字符串

javascript - 使用 map react setState 对象数组不起作用?

javascript - 当 firebase 中不知道 key 时,如何获取 child 的 child

javascript - 我如何存储和访问元素的数据属性,例如 React 中的选择选项

reactjs - React Router v6 - 访问嵌套路由和处理手写 url 的正确方法

javascript - 使用 jQuery .filter() 选择 div 中的特定文本

javascript - KineticJS:当浏览器选项卡未激活时,如何保持补间运行?

reactjs - 在不弹出的情况下覆盖 CRA 3.x 上的 webpack 配置