React Bootstrap和React.PropTypes验证函数

时间:2016-10-02 13:03:54

标签: javascript reactjs npm react-jsx react-bootstrap

我有一个Rails 5应用程序,我已经安装了browserifyreact-rails。我可以使用npm加载组件并安装软件包。 加载某些外部软件包(即react-bootstrap组件时)的浏览器控制台中填充了'警告:您正在为每个可用的支柱手动调用......'的React.PropTypes验证函数在组件上。

我到处寻找,但我不明白如何修复这些警告。类似的问题已经被问到here但是这似乎没有适用于我的问题的答案。

以下是我的文件:

的package.json

{
  "name": "myapp",
  "version": "1.0.0",
  "dependencies": {
    "bootstrap": "^3.3.7",
    "browserify": "^13.1.0",
    "browserify-incremental": "^3.0.1",
    "fetch": "^1.1.0",
    "jquery": "^3.1.1",
    "jquery-ui": "^1.12.1",
    "jquery-ujs": "^1.2.2",
    "react": "^15.3.2",
    "react-bootstrap": "^0.30.4",
    "react-dom": "^15.3.2",
    "reactify": "^1.1.1",
    "sweetalert-react": "^0.4.4"
  }
}

的application.js

//= require_self
//= require react-server
//= require react_ujs


window.$ = window.jQuery = global.$ = require('jquery');
var React = window.React = global.React = require('react');
var ReactDOM= window.ReactDOM = global.ReactDOM = require('react-dom');
require( 'jquery-ujs' );
require( 'jquery-ui' );
require( 'bootstrap' );
require( 'react-bootstrap' );
require( 'fetch' );
require( './components' );

components.js

var app = window.app = global.app = {};

// Component::Manifest
var AdminDashboard = require( 'components/dashboards/admin' );

app.AdminDashboard = AdminDashboard

admin.js.jsx

var ButtonToolbar = require('react-bootstrap').ButtonToolbar;
var Button = require('react-bootstrap').Button;
var Admin = React.createClass({

  handleClick(){
    alert('This was clicked');
  },


  render: function() {

    return (
      <ButtonToolbar bsClass="btn-group">
        <Button active={true} bsStyle="primary" onClick={this.handleClick}>Primary</Button>
      </ButtonToolbar>
  );
  }
});

module.exports = Admin;

如果它与外部包及其组件有关,我如何摆脱此警告?

2 个答案:

答案 0 :(得分:1)

这可能有所帮助 - https://facebook.github.io/react/warnings/dont-call-proptypes.html。基本上,您正在使用react-bootstrap的库可能以不受React支持的方式使用PropTypes

答案 1 :(得分:1)

升级react-bootstrap应解决此问题。看起来他们addressed this back in June

您可以将package.json更改为"react-bootstrap": "^0.31.0"并查看是否有效