在我的React应用程序中,我使用的是airbnb的eslint样式指南,如果我不使用destructuing则会抛出错误。
在下面的情况中,我首先使用let
将两个变量latitude
和longitude
分配给位置对象数组中第一个项的坐标。然后,如果用户允许我访问他们的位置,我会尝试使用解构来重新分配他们的值。
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
错误。
答案 0 :(得分:47)
({ latitude, longitude } = props.userLocation.coords);
解构需要在let
,const
或var
声明之后,或者需要在表达式上下文中,以区别于块语句。