【问题标题】:React-Bootstrap: manually calling a React.PropTypes validation functionReact-Bootstrap:手动调用 React.PropTypes 验证函数
【发布时间】:2016-08-17 13:37:03
【问题描述】:

在 2 周后返回项目后升级我的项目后,我收到了很多我无法摆脱的警告:

warning.js:44 警告:您正在为onClick 上的NavbarToggle 属性手动调用 React.PropTypes 验证函数。这已被弃用,并且在下一个主要版本中将不起作用。由于第三方 PropTypes 库,您可能会看到此警告。

warning.js:44 警告:您正在为onClick 上的NavItem 属性手动调用 React.PropTypes 验证函数。这已被弃用,并且在下一个主要版本中将不起作用。由于第三方 PropTypes 库,您可能会看到此警告。

显然,它们与 react-bootstrap 有关。

我为 react-native 找到了a similar question,其中的答案建议升级依赖库版本。我已经这样做了,但没有任何帮助...我还完全删除了 node_modules,然后重新安装。

我查看了the issues on github,但没有类似的。

如何更正我的应用并消除警告?

我拥有的版本:

  • react@15.3.0
  • react-bootstrap@0.30.2

【问题讨论】:

  • 您使用的react-bootstrap 是什么版本?当您不提供任何细节时,很难提供帮助。 :-(
  • 我的错!等我一下。 ;) ...完成了,看看,丹。
  • 我可以要求您提供一个最小的项目来重现这个吗?或者小提琴。
  • 我希望它不会走那么远……我会等的。也许有人会马上知道。如果没有,那么我会做小提琴。谢谢丹!
  • create-react-app myproject && cd myproject && npm i --save react-bootstrap

标签: reactjs react-bootstrap


【解决方案1】:

我为你创建了这个fiddle

var Hello = React.createClass({
  render: function() {
    return <div><NavItem /></div>;
  }
});
ReactDOM.render(
  <Hello name="World" />,
  document.getElementById('container')
);

一般来说,您最好尝试将其作为问题的一部分;-)

我无法重现该小提琴中的警告。如果您使用触发此警告的 React Bootstrap 复制并粘贴代码,我很乐意再看一看。

【讨论】:

  • 我无法重现它,但我找到了可能导致我的问题的原因。我不确定。我已经更新了问题。
  • 我找到了!我会尽快发布答案。非常感谢丹。我认为这是一个普遍的问题,但这是我的问题。
  • 丹,它是由版本解决的,而不是我对答案的改变。很抱歉把你骗了。
【解决方案2】:

我通过卸载这个版本的 react 解决了这些错误,即 react 15.3.0react 15.2.0

这是因为最新版本的 react 已经从生产环境中移除了 PropTypes,所以手动添加 PropType 会报错。

如需了解更多信息,请查看https://facebook.github.io/react/warnings/dont-call-proptypes.html

【讨论】:

  • 虽然它可能会起作用,但不幸的是,降级是一种不优雅的解决方案,不能永久解决问题。 React 工程师包含一个错误以帮助未来的兼容性,因此最好按照他们的建议修复问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-28
  • 1970-01-01
  • 1970-01-01
  • 2011-11-02
  • 1970-01-01
相关资源
最近更新 更多