【发布时间】:2017-07-06 21:01:21
【问题描述】:
既然 TypeScript 和 React 已经在 15.5 版本的单独项目中提取了 PropTypes,那么一起使用的正确方法是什么?
从 15.4 升级到 15.5 后一切正常,除了现在我在控制台中收到以下警告:"Warning: Accessing PropTypes via the main React package is deprecated. Use the prop-types package from npm instead." 如何让它消失?
我已尝试执行以下步骤,但它并没有消除控制台警告。
- 添加
prop-types和@types/prop-types包。 - 在我导入 React 的任何地方导入 PropTypes,
import * as PropTypes from "proptypes"。还尝试使用require("prop-types")。 - 关闭
noUnusedLocals,以避免编译器抱怨 PropTypes 没有被使用。
但是。由于我使用的是 TypeScript,编译器会在编译时验证 PropTypes,所以我不需要在运行时做同样的事情,因此我根本不应该收到警告,对吧?我希望也许我可以在构建配置中的某处添加或更改设置,这将使 React 在没有 PropTypes 的情况下编译。
【问题讨论】:
-
您能否添加一个显示警告的最小设置/示例?
-
@SebastianSebald:我现在只有完整的存储库:github.com/janaagaard75/film-filter/tree/master/website。 :-/
-
我没有 Firebase 帐户,因此无法运行您的应用。但是由于您的代码中绝对没有使用
PropTypes,我猜您的依赖项之一(可能是mobx?)仍然使用它们,这就是您收到该警告的原因。 -
我使用了一组非常相似的依赖项(ts/webpack/react/mobx/mobx-react),我根本不使用 prop-types,并且在 react 15.5 上我没有得到运行时的任何此类警告。设置具有相同核心依赖集的项目可能是谨慎的,但不依赖于诸如 firebase 之类的东西来帮助确定您的问题所在
-
@Alex:非常感谢您提供的信息!至少现在我知道可以让我的设置按预期工作。您有项目的链接吗?
标签: reactjs typescript react-proptypes