35 votes

Désactiver les avertissements désapprouvés de React.createClass et de PropTypes dans babel react present

Au dernier paquet React 15.5.1, Si vous utilisez babel react present pour résoudre le fichier jsx, les avertissements suivants apparaîtront:

 Warning: Accessing PropTypes via the main React package is deprecated. Use the prop-types package from npm instead.

warning.js:36 Warning: A Component: React.createClass is deprecated and will be removed in version 16. Use plain JavaScript classes instead. If you're not yet ready to migrate, create-react-class is available on npm as a drop-in replacement.
 

Mon code est le suivant:

 import React from 'react'
import ReactDOM from 'react-dom';

class Counter extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      count: 1
    }
  }
  componentDidMount() {
    setInterval( ()=> {
      this.setState((prevState, props) => ({
        count: prevState.count + 1
      }))
    }, 1000)
  }
  render(){
    return (
      <h1>{this.state.count}</h1>
    )
  }
}

const root = document.createElement('div');
root.id = 'app';
document.body.appendChild(root);

ReactDOM.render(
  <Counter />,
  document.querySelector('#app')
);
 

Je n'utilise pas React.createClass et PropTypes dans mon code, il semble que Babel ait transformé mon code en React.createClass et PropTypes , comment résoudre ce problème?

12voto

Idan Gozlan Points 674

Réagir 15.5.0 contient de nouvelles mises en garde partie des changements qui sont à venir sur Réagir 16, l'avertissement que vous obtenez, est en fait en vous disant que vous avez à mettre en œuvre la nouvelle façon (car le chemin que vous utilisez va être obsolète sur 16).

React.createClass,, vous avez 2 options, la première est de simplement utiliser du JS syntaxe:

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

ou utiliser l' create-react-class module (disponible sur npm):

// Before (15.4 and below)
var React = require('react');

var Component = React.createClass({
  mixins: [MixinA],
  render() {
    return <Child />;
  }
});

// After (15.5)
var React = require('react');
var createReactClass = require('create-react-class');

var Component = createReactClass({
  mixins: [MixinA],
  render() {
    return <Child />;
  }
});

Sur le PropTypes avertissement, vérifiez si vous utilisez le module à l'aide de PropTypes, parfois ça vient de la partie extérieure.

De toute façon, pour en savoir plus à ce sujet, vous êtes les bienvenus pour obtenir Facebook blog à propos de ces changements

5voto

Vituzan Siva Points 61

React v15.5.0 implémente de nouveaux avertissements

Le déclassement de React to 15.4.x fonctionne pour moi

 npm install --save react@15.4.0 react-dom@15.4.0
 

4voto

Vikas Sardana Points 1159

React.createClass et React.PropTypes a été déprécié en v15.5.

Certains Pairs/dépendances doivent être en utilisant React.createClass et React.PropTypes avec React:^15.4 (ou toute autre version), ce qui est très compatible avec votre version réagir. Afin d'obtenir Avertissement pour du code.

Veuillez consulter ce lien pour 15.5 Changements

https://facebook.github.io/react/blog/2017/04/07/react-v15.5.0.html

4voto

Ivo Bosticky Points 2986

J'ai trouvé que l'avertissement était présent parce que j'importais Réagir avec

 import * as React from 'react'
 

changer cela pour

 import React from 'react'
 

fait disparaître les avertissements

0voto

davey Points 451

Ce n'est pas une réponse, juste une chose à ajouter, comme je ne peux pas encore de commentaires :-( Peut-être que quelqu'un d'autre a le même problème avec réagissent-bootstrap

J'ai eu le même lors de l'utilisation de réagir-bootstrap 0.30.8 avec réagissent 15.5.3.

Avertissement: Contrôlée(Liste Déroulante): Réagir.createClass est obsolète et sera supprimée dans la version 16. Utiliser du JavaScript classes à la place. Si vous n'êtes pas encore prêt à migrer, de création de réagir la classe est disponible sur npm comme un simple remplacement.

Je reçois dans: uncontrollable/createUncontrollable.js --->

var component = _react2.default.createClass(_extends({

uncontrollable@4.0.3 est un dep de réagir-bootstrap 0.30.8

et

Avertissement: l'Accès à PropTypes via les principaux Réagir paquet est obsolète. Utiliser la prop-package types de mnp à la place.

react-bootstrap/es/PanelGroup.js --->

accordion: React.PropTypes.bool

Je pense que le déclassement de réagir est le seul moyen de solution de contournement, réagir-bootstrap n'est pas encore assez loin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X