React-native - 基于用户位置的drawerLabel
Posted
技术标签:
【中文标题】React-native - 基于用户位置的drawerLabel【英文标题】:React-native - drawerLabel based on the user location 【发布时间】:2019-05-04 01:58:37 【问题描述】:我有一个 react-native 应用程序,我需要根据用户位置呈现一个菜单项,但是返回用户位置的函数是一个异步函数,我得到一个未定义的函数,所以我的问题是如何我根据用户位置设置navigationOptions
的drawerLabel
值?
static navigationOptions = () => (
drawerLabel: () => (OptionsDrawer.isOptionsItemAvaliable() ? 'Options' : null)
)
private static isOptionsItemAvaliable()
navigator.geolocation.getCurrentPosition((result) => this.setUserLocation(result.coords), ()=> console.log("Failed to load user location");
return verifyUserLocation(userLocation);
private static setUserLocation(coordinates)
userLocation = coordinates; //userLocation is a global variable
private static verifyUserLocation(coordinates)
//Code to check the user location and returns if it's inside the allowed area
【问题讨论】:
【参考方案1】:尝试用自定义组件替换标题。在组件中,您可以将位置保持为您在位置更改时更新的状态。像这样的:
class HomeScreen extends React.Component
static navigationOptions =
headerTitle: <LogoTitle />,
;
Read more here
【讨论】:
我想要一个不需要新组件的更简单的解决方案。 我不明白这怎么可能。在我看来,组件是一种从导航器配置中提取逻辑的简单而干净的方法。以上是关于React-native - 基于用户位置的drawerLabel的主要内容,如果未能解决你的问题,请参考以下文章
在 setInterval 方法中使用 getCurrentPosition geoLocation 函数通过 React-Native 获取用户当前位置时出现问题
无法从 react-native 中的 navigation.geolocation.getCurrentPosition() 返回位置
navigator.geolocation.getCurrentPosition() 方法在某些设备中返回位置请求超时 react-native