我看过很多这样的代码:
navigator.geolocation.getCurrentPosition(
({coords}) => {
const {latitude, longitude} = coords
this.setState({
position: {
latitude,
longitude,
},
region: {
latitude,
longitude,
latitudeDelta: 0.005,
longitudeDelta: 0.001,
}
})
},
(error) => alert('Error: Are location services on?'),
{enableHighAccuracy: true}
);
我的问题是为什么以及何时在参数中使用对象分解。
为什么coords
不使用对象分解而error
使用对象分解?
答案 0 :(得分:3)
这全部与JS中的对象有关。我建议您阅读有关对象的更多信息。
但这是一个简单的示例。
const car = {door: "blue", tires: 4}.
当然,您可以像car.door
这样使用它来获取blue
,也可以像car.tires
那样使用它来获取4
。但是您可以看到您到处都在编写相同的代码car.
。最好执行以下操作:
const {door, tires} = car
然后在其他任何地方,您都可以执行door
和tires
。这完全取决于个人喜好。我之所以使用它,是因为它简单易懂,并且重复代码更少。没有好坏。
至于您为何error
不需要销毁,是因为我们只是在检查error
是否存在。这与您写的内容相同:
(error) => alert('something')
和
(Boolean(error)) => alert('something').
您甚至不关心error
内的内容,只是想知道是否存在error
。这就是为什么您不需要进行破坏的原因。
如果您想在error
中放入一些物品,可以说code
是error
的钥匙之一。然后,您可以
({code}) => alert(code)