gpt4 book ai didi

ios - 检查用户是否登录/保留用户信息 react native

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:00:19 26 4
gpt4 key购买 nike

我一直在关注 React Native 上的文档构建我的应用程序。
我很想登录用户并能够检查用户是否已登录或用户数据是否存在。

到目前为止,这是我尝试过的方法,但我真的看不出我做错了什么。

var starterApp  = React.createClass(
{
user:{},

getInitialState()
{
console.log('initial state');
return {isLoggedIn:this.isLoggedIn ? this.isLoggedIn : 0};
},
componentWillMount()
{
console.log('will mount');
console.log(this.state.isLoggedIn);
//this.state.isLoggedIn = 1;
//this.setState({isLoggedIn:1});
//this.user= {name:'john', lastName:'doe'};
},

observe(){
console.log('observe');
},
componentDidMount()
{
console.log('mounted');
},
render()
{
console.log('rendered');
return (
<View style={styles.container}>
<Text>
{'YOOOO'}
</Text>
<Text>
{this.state.isLoggedIn}
</Text>
</View>
);
}
});

在 componentWillMount 函数中,我正在设置状态,然后将其注释掉。之后,当我刷新时,它会回到初始状态。在我注销他之前,我如何才能保留用户的数据以供下次刷新。它需要坚持不懈。

提前致谢。

最佳答案

AsyncStorage是要走的路。

您可以使用 get/set 方法根据您的 session 信息设置存储 key 。我开始尝试使用 localStorage 来存储状态,但是虽然这适用于调试 session (如果您使用 chrome/safari 进行调试),但当您在实际设备上运行应用程序时它不起作用。

一个简单的方法是使用类似 -

AsyncStorage.setItem('userSession', JSON.stringify(sessionData));

当你想保存你的 session 时 -

AsyncStorage.getItem('userSession', 
(rawData) => {
this.setState({session: JSON.parse(rawData)});
},
(error) => {
// whatever you want to do here.
}
);`

当你想恢复它的时候。

目前我正在为我的应用程序使用 Fluxxor,因此我可以通过使用 AsyncStorage.multiSet 循环访问它们来选择要保存的存储。我还可以在使用 AsyncStorage.multiGet 初始化应用程序时恢复所有这些。

我唯一要提醒您的是存储是异步的,因此如果您遇到错误,可能是因为您在 AsyncStorage 给您响应之前初始化了应用程序的一部分。对于您在上面处理的应用程序代码,您可能会在没有数据的情况下呈现应用程序的一小段时间,因此您可能需要某种占位符来表示该加载时间或延迟呈现。

关于ios - 检查用户是否登录/保留用户信息 react native ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31796414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com