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.
