Aquí hay un ejemplo del problema al que me enfrento.
Sospecho que la razón por la que recibo este error en este bloque de código es porque según javascript:3AS3800 ...
Las funciones que devuelven
thisse ignoran.
Suponiendo que este sea el caso, tengo problemas para encontrar una solución limpia.
if (typeof (row) === 'string') { return ( <Grid key={i}> <Divider className={classes.divider} /> <Typography> { row } </Typography> </Grid> ) } if (row.constructor === Array) { return row.map((item, index) => ( <Grid key={index}> { this.getItem(item, formProps) } </Grid> )) } return ( <Grid key={i}> { this.getItem(row, formProps) } </Grid> ) }Para aquellos que puedan tropezar con esto, no entendí bien el mensaje de error.
Sonarqube quiere que cada retorno sea un valor del mismo type . En mi ejemplo, el bloque central devuelve una lista de componentes de Grid mientras que el resto devuelve componentes de Grid individuales. La solución fue devolver los componentes de Solo Grid como listas como esta:
if (typeof (row) === 'string') { return ([ <Grid key={i}> <Divider className={classes.divider} /> <Typography> { row } </Typography> </Grid>, ]) } if (row.constructor === Array) { return row.map((item, index) => ( <Grid key={index}> { this.getItem(item, formProps) } </Grid> )) } return ([ <Grid key={i}> { this.getItem(row, formProps) } </Grid>, ]) }