作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 store.js
中,我试图从浏览器获取最终用户的地理位置,然后发送一个 Action 创建器,但这并没有发生。
function showPosition(position) {
console.log("showPosition");
//console.log(position);
return position;
}
function getLocation() {
// Get the current 'global' time from an API using Promise
console.log("getLocation")
return new Promise((resolve, reject) => {
if (navigator.geolocation) {
console.log("Boolean navigator.getLocation:" + Boolean(navigator.geolocation))
Promise.resolve(navigator.geolocation.getCurrentPosition(showPosition))
} else {
Promise.reject("Geolocation is not supported by this browser.")
}
})
}
function loadNearbyShops() {
return function (dispatch) {
return getLocation().then(
position => dispatch(getCoords(position))
).catch(
error => console.log(error)
);
};
}
store.dispatch(loadNearbyShops())
但这不会触发我下面的 Action 创建器
另一方面,我的 action creator
定义为:
export function getCoords(position) {
console.log(position)
return {
type: 'GET_LOCATION',
long: position.coords.longitude,
lat: position.coords.latitude
}
}
最佳答案
将 getLocation
函数固定为:
function getLocation() {
return new Promise((resolve, reject) => {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(pos => {
showPosition(pos);
resolve(pos);
});
} else {
reject("Geolocation is not supported by this browser.")
}
)};
}
关于javascript - react /归零 : get the user geolocation using a promise and dispatch the position to the action creator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49447664/
我是一名优秀的程序员,十分优秀!