reactjs - React 中的 PropType

标签 reactjs react-proptypes

在一些例子中,我见过这样的东西:

Footer.propTypes = {
  completedCount: PropTypes.number.isRequired,
  activeCount: PropTypes.number.isRequired,
  filter: PropTypes.string.isRequired,
  onClearCompleted: PropTypes.func.isRequired,
  onShow: PropTypes.func.isRequired
}

这些PropTypes到底在做什么?它们是可有可无还是必须拥有?

最佳答案

正如 FinalFreq 所指出的,我已纠正! “提供的示例将在未来版本的 React 中完美运行。React 不推荐直接调用 proptypes 函数,但注释组件将在当前和 future 版本中正常运行。”

如果你只是学习 JS 中的类型,我建议使用 flowtypes,它在构建时而不是运行时工作。这在编辑器中有效!当不太明显的类型丢失、为空或不同类型时,编辑器扩展还使用强推理来提醒您。主要好处是它可以加快开发速度并减少错误,而不会减慢运行时间。您可以在生产之前轻松地从 js 中剥离流程。

流量类型: https://flowtype.org/docs/getting-started.html#_

如果您想要更强大、功能更丰富的集合,我建议使用 TypeScript 来学习 JS 中的类型。

typescript : https://github.com/Microsoft/TypeScript

为了回答你的问题,proptypes 从来都不是必须具备的,并且一度被认为是实验性的。我喜欢它们,但恕我直言,flowtype 更实用。主要用途是通过在开发早期发出警告来防止组件的误用,并提供编码文档以便更好地理解(后代)。

编辑:我还想澄清一下,proptypes 也可以在生产中被剥离。

关于reactjs - React 中的 PropType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40228481/

相关文章:

javascript - 如何在reactjs中成功登录后重定向并阻止未登录的页面?

javascript - 事件发生后更新 html 上的 javascript 变量 - Reactjs

javascript - 为什么即使旧状态等于新状态,使用相同值调用 useState 的 setter 随后也会触发组件更新?

javascript - 将 Route 作为可重用组件的 prop 传递

reactjs - React props - 努力区分联合类型

reactjs - React Navigation 中的选项卡导航器图标

javascript - 如果单击复选框, react 如何将复选框从 true 更改为 false

reactjs - React Typescript - InferProps 接受 null 但 JSX 属性不接受(即 id)

javascript - 功能组件中的默认功能 Prop

reactjs - 是否可以使用 PropTypes 来验证类似 Dictionary 的对象?