Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

178
Vistas
Why doesn't default props work in this case?

I am training how to use default props and I ran into a problem. Can anyone explain to me why default props doesn't work in this case?

import React from 'react';
import PropTypes from 'prop-types';
import defaultImage from '../../../assets/DefaultImageOnError.svg'

export const ImageComponent = ({ props }) => {
    return (
        <img width={ props.size } src={ props.src } alt={ props.alt }/>
    );
};

ImageComponent.propTypes = {
    props: PropTypes.objectOf(PropTypes.string),
};

ImageComponent.defaultProps = {
    props: {
        size: '150px',
        src: defaultImage,
        alt: 'error'
    }
}

When I turn off props for this component in another file. The component should load defaultprops. Why is this not happening?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Props is an object, when you do { props } you are accessing props.props instead of props.

Just replace

export const ImageComponent = ({ props }) => {

and

ImageComponent.defaultProps = {
    props: {
        size: '150px',
        src: defaultImage,
        alt: 'error'
    }
}

With

export const ImageComponent = (props) => {
    const {size, src, alt} = props;

or

export const ImageComponent = ({size, src, alt}) => {
    ...

And update propTypes to match (this is probably a typo in your exmaple):


ImageComponent.defaultProps = {
    size: '150px',
    src: defaultImage,
    alt: 'error'
}

To simplify this, and prevent these kinds of mistakes in the future, consider using object destructuring to set defaults instead:

export const ImageComponent = (props) => {
    const {
        size = '150px', 
        src = defaultImage, 
        alt = 'error',
    } = props;

or

export const ImageComponent = ({
  size = '150px', 
  src = defaultImage, 
  alt = 'error',
}) => {
    ...
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda