react proptypes props example javascript reactjs redux react-proptypes

javascript - props - El acceso a PropTypes a través del paquete principal de React está en desuso



types of proptypes react (7)

Asegúrese de no utilizar React.PropTypes, muestra:

MyComponent.propTypes = { MyString: PropTypes.string.isRequired }

Estoy usando redux pero cuando ejecuto mi código tengo este error:

El acceso a PropTypes a través del paquete principal de React está en desuso. Use el paquete prop-types de npm en su lugar.

Yo instalo

npm i prop-types -S

pero todavía tengo el mismo error.

./components/action/article.js

import * as ArticleActionTypes from ''../actiontypes/article''; export const AddArticle = (name, description, prix, image) => { return { type: ArticleActionTypes.ADD_ARTICLE, name, description, prix, image } } export const RemoveArticle = index => { return { type: ArticleActionTypes.REMOVE_ARTICLE, index } }

./components/actiontypes/article.js

export const ADD_ARTICLE = ''article/ADD_ARTICLE''; export const REMOVE_ARTICLE = ''article/REMOVE_ARTICLE''; export const UPDATE_ARTICLE = ''article/UPDATE_ARTICLE'';

./components/reducers/article.js

import * as ArticleActionTypes from ''../actiontypes/article''; const initialState = [ { name: ''test'', description: ''test'', prix: ''test'', image: ''url'' }, { name: ''test'', description: ''test'', prix: test, image: ''url'' } ] export default function Article (state=initialState, action){ switch(action.type){ case ArticleActionTypes.ADD_ARTICLE : return [ ...state, { name: action.name, description: action.description, prix: action.prix, image: action.image } ]; case ArticleActionTypes.REMOVE_ARTICLE : return [ ...state.slice(0, action.index), ...state.slice(action.index +1) ] ; default: return state; } }

index.js

import React from ''react''; import { render } from ''react-dom''; import {Provider} from ''react-redux''; import {createStore} from ''redux''; import ArticleReducer from ''./components/reducers/article''; import Scoreboard from ''./components/containers/Scoreboard''; const store = createStore( ArticleReducer, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() ) render(<Provider> <Scoreboard store={store}/> </Provider>, document.getElementById(''root''));

./components/containers/Scorboard.js

import React from ''react''; import {connect} from ''react-redux''; import {bindActionCreactors} from ''redux''; import PropTypes from ''prop-types''; class Scoreboard extends React.Component { render(){ return ( <div> Scoreboard </div> ) } } const mapStateToProps = state => { { articles :state } } Scoreboard.propTypes = { articles: PropTypes.array.isRequired } export default connect(mapStateToProps)(Scoreboard);


Como otros lo han mencionado, si ha auditado su propio proyecto para utilizar PropTypes pero todavía está viendo la advertencia, es probable que provenga de una dependencia de nivel superior. Una forma de rastrear la causa de esta advertencia es establecer un punto de interrupción de depuración donde se registra y luego retroceder al llamador. Aquí hay un ejemplo rápido de grabación que hice:

(Una versión de mayor calidad está disponible here ).

Una vez que haya identificado la biblioteca en cuestión, considere presentar un problema de Github (o mejor aún, ¡un RP!) Para informar a los autores de la nueva advertencia.

Mientras tanto, esta es solo una advertencia de modo dev, por lo que no debería afectar el uso de producción de su aplicación.


Desde el lanzamiento de React v15.5.0 React.PropTypes está en desuso y se ha movido a otra biblioteca. Debe usar npm install prop-types y usar PropTypes desde allí.

El código en ./components/containers/Scorboard.js se ve perfectamente bien, es probable que tenga un React.PropTypes en otro lugar en su código.

Otra opción es que alguna dependencia que esté utilizando siga utilizándola de la manera antigua. Puede intentar actualizar sus dependencias, pero como esta obsolescencia es bastante nueva, dudo que cada biblioteca haya lanzado una actualización.

Más detalles sobre la deprecación PropTypes here .

ACTUALIZAR

Parece que redux ha actualizado sus dependencias para usar React v15.5.0 y se deshizo de las advertencias de desaprobación. Se arregla en v4 y v5 también.

Peticiones de extracción relevantes: #663 y #666



Resolví esta advertencia de esta manera:

PropTypes instalados

# npm install -S prop-types

Importar PropTypes como este

import PropTypes from ''prop-types'';

en lugar de hacer esto:

import { PropTypes } from ''react'';


También asegúrese de importar Reaccionar correctamente. Tenía esto:

import * as React from ''react'';

Y debería ser:

import React from ''react'';

Esto solucionó todas mis advertencias.


Resolvió este problema simplemente ejecutando npm install prop-types