2017-04-09 37 views
13

Używam create-react-app do uruchomienia projektu React. Najpóźniej React 15.5.3 pakiet, wydaje się następujące ostrzeżenia:Jak naprawić React 15.5.3 PropTypes przestarzałe ostrzeżenie podczas korzystania z aplikacji create-react-app

ostrzegawcze: Dostęp PropTypes przez główny React pakiet jest przestarzała. Użyj pakietu prop-types z npm zamiast tego.

mam już postępować zgodnie blog:

npm install prop-types i import PropTypes from 'prop-types';

ale to nie działa. nie używam każdy PropTypes lub props w kodzie:

import React, { Component } from 'react'; 
import PropTypes from 'prop-types'; 

class App extends Component { 
    constructor() { 
     super(); 
     this.state = { 
      videoVisible: true, 
     }; 
    } 

    ...... 
} 

Jak to naprawić?

Dzięki.

Odpowiedz

33

Wyciągnięty z React blog - npm install prop-types, a następnie użyj nowego kodu. Powiedział również, że możesz uzyskać ten komunikat o błędzie, jeśli komponent zagnieżdżony nie używa typów wniosku, ale rodzic jest - więc musisz sprawdzić inne składniki.

// Before (15.4 and below) 
import React from 'react'; 

class Component extends React.Component { 
    render() { 
    return <div>{this.props.text}</div>; 
    } 
} 

Component.propTypes = { 
    text: React.PropTypes.string.isRequired, 
} 

// After (15.5) 
import React from 'react'; 
import PropTypes from 'prop-types'; 

class Component extends React.Component { 
    render() { 
    return <div>{this.props.text}</div>; 
    } 
} 

Component.propTypes = { 
    text: PropTypes.string.isRequired, 
}; 
+1

Dziękuję. Ale już śledziłem ten blog i nie używam żadnych rekwizytów w kodzie, bez powodzenia. – Contra

+2

Czy możesz umieścić kod na github? Również nie możesz używać rekwizytów, ale inne biblioteki nadal, na przykład Redux. –

+2

O tak, jak powiedziałeś, używam reagującego aframe, które używają rekwizytów. Naprawiłem to. Dzięki! – Contra