【发布时间】:2017-12-03 06:11:53
【问题描述】:
我正在尝试更好地了解 redux 和 react 生命周期方法。
我在组件上安装了一个 prop 函数,它调用了 redux 中的一个函数。在 redux 上,我调用位置来获取位置并设置初始状态并在调用时更新它。我能够获得职位,但无论我通过 redux 尝试了什么,我的坐标(初始状态)仍然未定义。我在 componentDidMount 函数上尝试了 .then() 并在本地设置状态,这很有效。但我想将此功能与 redux 一起使用,以尝试更好地理解它。我的理解是,只要有一个初始状态,更新它应该没有问题。但我觉得我的问题可能出在我的 action.payload 上。因为它没有在我的开关盒中为 GET_LOCATION 记录任何内容。值得注意的是,我在控制台上收到黄色警告,“[违规] 仅请求地理定位信息以响应用户手势。”我不确定这是否会影响任何事情。无论如何,任何建议将不胜感激。我已经到处搜索了一个很好的通过 redux 进行地理定位的解决方案。代码如下:
const initialState = {
coords: { }
};
export function getLocation() {
const geolocation = navigator.geolocation;
return {
type: GET_LOCATION,
payload: geolocation.getCurrentPosition((position) => {
console.log(position.coords)
return position
})
}
};
切换语句:
case GET_LOCATION:
console.log(GET_LOCATION)
return Object.assign({},
state,
{
coords: action.payload
}
)
【问题讨论】:
-
需要更多代码才能理解。你可以添加一个最小的运行 sn-p
标签: javascript reactjs redux geolocation react-redux