React Native项目中如何从Expo Location结果直接提取经纬度更新状态
直接更新位置状态的几种写法
你可以不用额外声明变量,直接在setLocation中构造目标对象,以下是几种简洁的实现方式:
1. 直接指定键值对(最直观)
直接在对象字面量中明确写出属性名和对应的值:
setLocation({ latitude: result.coords.latitude, longitude: result.coords.longitude });
2. 嵌套解构(一行完成)
利用ES6的对象解构语法,在setLocation参数中直接从result.coords提取需要的属性:
setLocation(({ latitude, longitude }) => ({ latitude, longitude }));
这里的箭头函数会自动从result.coords解构出两个属性,然后返回包含这两个属性的对象(外层括号是为了让JS识别为对象字面量而非函数体)。
为什么你之前的写法无效?
你尝试的setLocation({result['coords'].latitude, result['coords'].longitude})之所以失败,是因为对象字面量中必须显式指定属性名。当你只写一个表达式时,JS会默认把表达式的结果当作属性值,但属性名会被解析为变量名(而这里你用的是表达式,不是变量),导致语法错误。必须明确写出latitude:和longitude:来对应属性值。
内容的提问来源于stack exchange,提问作者JamesC
相关产品推荐
相关产品推荐

