Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

150
Views
Token inesperado en PropTypes (esperado ",")

En el siguiente código:

 import React from 'react'; import { Avatar, Menu, MenuItem, Tooltip, Box, } from '@mui/material'; import PropTypes from 'prop-types'; // eslint-disable-next-line no-unused-vars import { positions } from '@mui/system'; const menuItems = ['Test', 'Yes', 'No']; function PositionedMenu(props) { const [anchorEl, setAnchorEl] = React.useState(null); const open = Boolean(anchorEl); const { boxStyle: PropTypes.object} = props; ...

Recibo el siguiente error en la posición específica - PropTypes.object (donde valido boxStyles): Error de análisis: Token inesperado, esperado ",".

¿Por qué está pasando esto? Estoy usando React con eslint configurado para las opciones de airbnb.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Está desestructurando en esa línea, si desea establecer el valor predeterminado, debe usar = char y no :

const { boxStyle = PropTypes.object} = props;

Y sí, esta no es la forma de establecer propTypes. Aquí hay un ejemplo de documentos:

Basado en clases:

 import PropTypes from 'prop-types'; class Greeting extends React.Component { render() { return ( <h1>Hello, {this.props.name}</h1> ); } } Greeting.propTypes = { name: PropTypes.string };

Basado en funciones:

 import PropTypes from 'prop-types' function HelloWorldComponent({ name }) { return ( <div>Hello, {name}</div> ) } HelloWorldComponent.propTypes = { name: PropTypes.string } export default HelloWorldComponent

A veces, cuando configuramos props, pensamos que prop es solo del tipo object . Pero debido a muchos factores (por ejemplo, cómo obtenemos los datos y establecemos accesorios), un accesorio puede no estar undefined durante un período de tiempo inicial (muy corto) y luego definirse como un object una vez que se cargan los datos.

Para evitarlo puedes:

  1. Cambie la forma en que se suministran los datos y, por lo tanto, asegúrese de que la propiedad sea siempre un object .

  2. Permitir propTypes para ambos valores: undefined (para el momento inicial) y luego object también una vez que se carga. Aquí se explica cómo especificar varios propTypes (sin el uso de accesorios predeterminados):

 // An object that could be one of many types optionalUnion: PropTypes.oneOfType([ PropTypes.string, PropTypes.number, PropTypes.instanceOf(Message) ]),
about 4 years ago · Juan Pablo Isaza Report

0

Puede pasar boxStyle padre a componente hijo y usarlo.

 // Parent component function ParentComponent(props) { render( <childComponent boxStyle={{ background: 'red'}} /> ) } // Child Component function childComponent(props) { const { boxStyle } = props; const [anchorEl, setAnchorEl] = React.useState(null); const open = Boolean(anchorEl); } childComponent.propTypes = { boxStyle: PropTypes.object };
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!