【发布时间】:2020-07-07 02:18:16
【问题描述】:
我看到很多类似的答案,但到目前为止没有人适合我。 如果有登录数据,我想从 AsyncStorage 获取数据并呈现一个页面,但如果没有登录数据,我想呈现另一个页面。
但是我在开发这个时遇到了麻烦......
我试过这个:
export default class Routes extends React.Component {
RetrieveData = async () => {
try {
const value = await AsyncStorage.getItem('login');
if (value !== null) {
// We have data!!
return (
<View>Test</View>
);
}
} catch (error) {
// Error retrieving data
}
};
render() {
return (
{RetrieveData}
)
}
}
我也尝试过使用 componentDidMount 技术...但没有奏效...
我当前的代码仍然不起作用:
export default function Routes() {
function CheckLogged(){
var login;
async function checkLogin(){
await AsyncStorage.getItem('login', (err, result) => {
login = JSON.parse(result);
});
}
checkLogin();
if (login != null){
return(
<Stack.Navigator>
<Stack.Screen name="Login" component={Login} />
</Stack.Navigator>
)
}
else{
return(
<Stack.Navigator>
<Stack.Screen name="Home" component={Home} />
</Stack.Navigator>
)
}
}
return(
<NavigationContainer>
<CheckLogged/>
</NavigationContainer>
)
}
【问题讨论】:
标签: javascript function react-native asynchronous rendering