Estoy usando React framework.

Esto es lo que tengo:

const myObject = this.props.objects.find(({id}) => ({id} === this.state.selectedObject.id));
const name = !isEmpty(myObject) ? myObject.name : '';

Evito hacer lo siguiente:

const name = !isEmpty(this.props.objects.find(({id}) => ({id} === this.state.selectedObject.id))) ? this.props.objects.find(({id}) => ({id} === this.state.selectedObject.id)).name : '';

Porque no tiene sentido ejecutar find () dos veces. Pero solo me pregunto si hay alguna buena sintaxis que pueda hacer de esto una frase que me falta.

0
ronapple14 1 may. 2020 a las 18:08

2 respuestas

Puede usar una combinación de desestructuración de objetos y parámetros predeterminados como:

const {name = ''} = this.props.objects.find(({id}) => id === this.state.selectedObject.id)

En el caso del método find(), no encuentra nada, entonces se devuelve undefined y eso establecerá name en una cadena vacía.

3
palaѕн 1 may. 2020 a las 15:18

Puede tomar un operador de encadenamiento opcional ?. con un valor predeterminado de una cadena vacía.

const
    name = this.props.objects
        .find(({ id }) => id === this.state.selectedObject.id)
        ?.name || '';
1
Nina Scholz 1 may. 2020 a las 15:20