Reactjs Access类方法在类外部,但在同一文件中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Reactjs Access类方法在类外部,但在同一文件中相关的知识,希望对你有一定的参考价值。
我有这段代码,并想访问AssetsMap数组中类之外的类方法。
import OrientationEnum from "../enums/orientation_enum";
import * as gameconfig from "../gameconfig";
import GA from "./analytics";
import * as Raven from "raven-js";
import getQueryString from "./tools";
const AssetsMap = new Map([
[AssetsEnum.background, 'common/background.jpg']
]);
class AssetsManager
constructor...
getConfigValue(key, defaultValue) ...
如果我尝试在地图数组内部访问getConfigValue
方法,诸如此类
[AssetsEnum.background, 'common/background'+this.getConfigValue()+'.jpg']
控制台抛出未定义getConfigValue的错误。我应该如何使用该方法?
答案
您无法使用getConfigValue()
关键字在类外访问this
方法。尝试将Map放入类中。
另一答案
为了能够访问类方法,您将需要对类实例的引用。例如:
import OrientationEnum from "../enums/orientation_enum";
import * as gameconfig from "../gameconfig";
import GA from "./analytics";
import * as Raven from "raven-js";
import getQueryString from "./tools";
class AssetsManager
constructor...
getConfigValue(key, defaultValue) ...
const manager = new AssetsManager();
const AssetsMap = new Map([
[AssetsEnum.background, 'common/background' + manager.getConfigValue() + '.jpg']
]);
如果getConfigValue
方法不使用AssetsManager类中的属性,则也可以将方法设为static
。这样就可以在没有类实例的情况下使用此方法。
import OrientationEnum from "../enums/orientation_enum";
import * as gameconfig from "../gameconfig";
import GA from "./analytics";
import * as Raven from "raven-js";
import getQueryString from "./tools";
const AssetsMap = new Map([
[AssetsEnum.background, 'common/background' + AssetsManager.getConfigValue() + '.jpg']
]);
class AssetsManager
constructor...
static getConfigValue(key, defaultValue) ...
以上是关于Reactjs Access类方法在类外部,但在同一文件中的主要内容,如果未能解决你的问题,请参考以下文章