【发布时间】:2020-06-25 09:56:21
【问题描述】:
有没有办法检测是否是第一次启动应用程序? 仅当它是不是第一次打开应用程序时返回仅“AppNavigator”否则返回所有内容。 这是我的示例代码: 如何在我的代码中使用 AsyncStorage 示例?
///////// AsyncStorage/////////////
async componentDidMount() {
const firstTime = await AsyncStorage.getItem("isFirstTime")
if(firstTime != null) {
// It is not first time use
} else {
// It is first time
await AsyncStorage.setItem("isFirstTime", 'true')
}
}
/////////////// My code //////////////
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {
azureLoginObject: {},
loginSuccess: false,
};
this.azureInstance = new AzureInstance(credentials);
this._onLoginSuccess = this._onLoginSuccess.bind(this);
}
_onLoginSuccess() {
this.azureInstance
.getUserInfo()
.then((result) => {
this.setState({
loginSuccess: true,
azureLoginObject: result,
});
console.log(result);
//HERE EXAMPLE FOR STORE SOME VARIABLE INTO MY REDUX STORE
store.dispatch(userPrincipalName(result.userPrincipalName));
store.dispatch(givenName(result.mobilePhone));
})
.catch((err) => {
console.log(err);
});
}
render() {
if (!this.state.loginSuccess) {
return (
<Provider store={store}>
<AzureLoginView
azureInstance={this.azureInstance}
loadingMessage="Requesting access token"
onSuccess={this._onLoginSuccess}
/>
</Provider>
);
}
const { userPrincipalName, givenName } = this.state.azureLoginObject;
return (
<Provider store={store}>
<AppNavigator />
</Provider>
);
}
}
【问题讨论】:
标签: javascript reactjs react-native react-redux asyncstorage