Estoy trabajando en un proyecto React, en el que hay un contexto con el nombre de CurrencyContext.js . Todo el proyecto funciona perfectamente, sin embargo, recibo un error de consola que dice Failed prop type .
Mensaje de error completo
Advertencia: Tipo de propiedad fallida: CurrencyContextProvider: el tipo de propiedad
childrenno es válido; debe ser una función, generalmente del paqueteprop-types, pero recibidaundefined. Esto sucede a menudo debido a errores tipográficos comoPropTypes.functionen lugar dePropTypes.func.
Para más aclaraciones, aquí está el código de CurrencyContext.js . Por favor, hágamelo saber si algo no está lo suficientemente claro.
import React, {Component, createContext} from "react" export const CurrencyContext = createContext() class CurrencyContextProvider extends Component { constructor(props) { super(props); this.state = { selectedCurrency: 'USD' } } setCurrency(c){ this.setState({selectedCurrency: c}) } render() { return ( <CurrencyContext.Provider value={{...this.state, setCurrency: this.setCurrency.bind(this)}}> {this.props.children} </CurrencyContext.Provider> ) } } CurrencyContextProvider.propTypes = { children: React.ReactNode } export default CurrencyContextProvider;React.ReactNode no está undefined en javascript. Si está utilizando mecanografiado, sería un tipo, pero incluso eso solo existe en tiempo de compilación y no se puede usar para propTypes.
En cambio, la forma de hacer el tipo de utilería para niños es:
import PropTypes from 'prop-types'; // ... CurrencyContextProvider.propTypes = { children: PropTypes.node }