我有一个Rails 5
应用程序,我已经安装了browserify
和react-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;
如果它与外部包及其组件有关,我如何摆脱此警告?
答案 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"
并查看是否有效