reactjs - 如何检查哪些附加 Prop 被传递到未定义的 react 组件中?

标签 reactjs jsx

我想知道是否可以通过使用以下方式访问React组件类中定义的PropType:this["__proto__"]["constructor"]["propTypes"]

例如,如果我有这个组件:

class Hello extends React.Component {
  static propTypes = {
    name: string
  };

  render() {
    console.log(this.props);
    console.log(this["__proto__"]["constructor"]["propTypes"]);
    return <h1>Hello {this.props.name}!</h1>;
  }
}

一个用例是,如果我想检查哪些附加属性传递到了未明确定义的组件中。

要明确的是,上述确实有效,更多的是这是否应该避免的问题 - 我知道这可能是一个有点固执己见的问题,但我在其他地方没有看到它,所以,我想我会寻找一些反馈。如果应该避免有更好的方法吗?

最佳答案

使用 __proto__ 直接访问对象原型(prototype)不推荐,因为此属性从未成为 ECMAString 标准的一部分。主要供应商确实实现了它,并且现在它可能会在您的 React 应用程序所针对的所有环境中运行。

通常的替代品是 Object.getPrototypeOf()您可以使用相同的方法:

Object.getPrototypeOf(this).constructor.propTypes

但无论如何,你都可以直接读取类的静态属性:

render() {
  console.log(Hello.propTypes);
  return <h1>Hello {this.props.name}!</h1>;
}

更喜欢这个。

关于reactjs - 如何检查哪些附加 Prop 被传递到未定义的 react 组件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49280659/

相关文章:

javascript - 从另一个 jsx 文件导入所有函数和常量

reactjs - 如何在react-redux中发出HTTP请求?

javascript - 如何在嵌套的 javascript 对象上使用扩展运算符?

javascript - 我如何在 React 中使用单选按钮?

javascript - 使用 React JS 在页面上渲染元素

javascript - 鼠标悬停在 React 中

javascript - 如何在react.js中使用json

javascript - 在 React 中为 JSX 组件添加过渡效果

javascript - 从异步函数填充 React prop 对象

javascript - setState 在事件函数内不起作用