gpt4 book ai didi

angular - 如何将 navCtrl 与从 LocalStorage 检索到的类名一起使用

转载 作者:搜寻专家 更新时间:2023-10-30 21:36:30 24 4
gpt4 key购买 nike

我正在用 ionic 3 开发一款游戏,我的类名如下:level1、level2、level3 等...我正在使用 LocalStorage 来保存用户达到的级别。

代码如下:

import { level1 } from '../levels/level';
import { level2 } from '../levels/level';
import { level3 } from '../levels/level';
import { Storage } from '@ionic/Storage';

...

storage.get('levelNumber').then((val) => {

if(val == null)
{
this.levelNbr = level1
}
else
{
this.levelNbr = val
}

this.navCtrl.push(this.levelNbr)
//when the class name is retrieved from storage it and placed in val it is then
//assigned to levelNbr, so now levelNbr should contain the class name and
//then pushed in navCtrl.

将关卡保存到LocalStorage的代码如下:

this.storage.set('levelNumber', "level2")
//does not work with navCtrl.push() as "level2" is a string
this.storage.set('levelNumber', level2)
//does not work as it throws cannot clone error

这里的问题是,当我在 LocalStorage 中将类名保存为字符串时,当我检索它时它在 navCtrl.push 中不起作用,我猜它必须是类类型。并将其作为类保存在 LocalStorage 中会引发错误“无法克隆”。

如何在LocalStorage中动态查看用户达到了哪个级别,然后自动推送类级别?

我想通过简单地做一个 switch case 来解决这个问题,但是它对于 100 个级别是不可行的。

谢谢

最佳答案

有一些方法可以巧妙地将事物导入到一个变量中,例如 import * as levels from '../levels/level'; 但如果你不想触及你的导入,我会这样做

const levels: any = { level1, level2, level3 }; //"any" because I'm lazy.

levels["level1"] 现在将为您提供导入。

我想你的场景会是这样的:

storage.get('levelNumber').then((val) => {
this.levelNbr = levels[val];
...
});

我还没有在这里测试任何东西。使用带有一粒盐的代码。 (对不起,我已经说过我很懒了。)

关于angular - 如何将 navCtrl 与从 LocalStorage 检索到的类名一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50885373/

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