目前,如果propType次验证失败,ReactJS将使用console.warn发出警告.我真的,真的希望在开发模式中出现一个真正的错误,这样它就可以使我们的持续集成构建失败,而不是仅仅打印一条可能在混乱中丢失的消息.

已经有人讨论过这一点,例如在this feature request中,这related question描述了预期的当前行为.没关系,但是

假设ReactJS在短期内无法提供更好的支持,what's the best workaround?到目前为止,我想到的最好方法就是覆盖console.warn个测试,例如.

console.warn = function(msg) {
    throw new Error(msg);
};

这样做的缺点是,在测试中实现它可能很棘手,而且它不是特定于React的,因此还需要处理其他console.warn个调用.

推荐答案

Facebook昨天推出的FlowType听起来正是你想要的.它可以分析代码,推断类型,并在编译时抛出错误.

它特别包括对React和propTypes参数的支持:https://flow.org/en/docs/react/components/

更新(7月21日)-上面的链接已修复,但鉴于Facebook最近改变了流量,将内部使用优先于future 的社区使用,将建议在新项目中使用TypeScript.例子:

https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/class_components/

Reactjs相关问答推荐

如何使用React Router创建响应式主详细信息应用程序?

使用useEffect挂钩获取数据

cypress 不能点击SPAN

有没有办法让两个状态在两次精准渲染中更新?

无法从正在使用Reaction的Electron 商务store 项目中的购物车中删除项目

以下代码是否存在安全问题?

使用下一步中的路由/导航不会立即加载路由

StrictMode+SetInterval=双重渲染(即使使用useEffect清理)

如何在不同的路由中渲染相同的页面组件(包括 getServerSideProps)

Chakra UI:如何在选中状态下设置复选框 colored颜色

无法通过react 路由中的链接传递信息

React - 拖放 UML

使用 react-markdown 组件时 Tailwind CSS 的问题

Material UI:使用 mui 手风琴时出现props 类型失败:isValidElement 不是函数

为什么此代码中的 useState 不更新(文本更新但 id 不更新)?

.filter() 函数在删除函数中创建循环 - React

设置 Material UI 表格默认排序

React 检测哪些 props 在 useEffect 触发器上发生了变化

您无权使用阻止 webRequest 侦听器.请务必在 list 中声明 webRequestBlocking 权限

我想将悬停 colored颜色 更改为红色.写了一个话题,这个元素没有react ,怎么解决呢?