ecmascript 6 - Javascript tilldela om let-variabel med destrukturering


I min React-app använder jag Airbnbs eslint-stilguide som kommer att ge ett fel om jag inte använder destrukturering.

I situationen nedan använder jag först let för att tilldela de två variablerna latitude och longitude till koordinaterna för det första objektet i en array av platsobjekt. Sedan försöker jag använda destrukturering för att tilldela om deras värden om användaren har gett mig åtkomst till deras plats.

let latitude = locations[0].coordinates[1];
let longitude = locations[0].coordinates[0];

if (props.userLocation.coords) {
  // doesn't work - unexpected token
  { latitude, longitude } = props.userLocation.coords;

  // causes linting errors
  // latitude = props.userLocation.coords.latitude;
  // longitude = props.userLocation.coords.longitude;
}

Destrukturering inuti if-satsen orsakar ett unexpected token-fel.

Att omfördela variablerna på det gamla sättet orsakar ett ESlint: Use object destructuring-fel.

Svar #1

 ({ latitude, longitude } = props.userLocation.coords);

Destructuring måste antingen komma efter en let, const eller var-deklaration eller så måste det vara i ett uttryckssammanhang för att skilja det från ett blockuttryck.

Relaterade artiklar