Javascript通过解构重新分配let变量

时间:2018-02-09 21:57:13

标签: javascript ecmascript-6 eslint

在我的React应用程序中,我使用的是airbnb的eslint样式指南,如果我不使用destructuing则会抛出错误。

在下面的情况中,我首先使用let将两个变量latitudelongitude分配给位置对象数组中第一个项的坐标。然后,如果用户允许我访问他们的位置,我会尝试使用解构来重新分配他们的值。

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;
}

if语句中的解构导致unexpected token错误。

以旧式方式重新分配变量会导致ESlint: Use object destructuring错误。

1 个答案:

答案 0 :(得分:47)

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

解构需要在letconstvar声明之后,或者需要在表达式上下文中,以区别于块语句。