我想了解如何在类中声明变量?
例如,到目前为止,我一直在这样声明它
let displaySearchCrypto = []
let updateCoinData = [];
class cryptoTicker extends PureComponent {
并在全班使用它(我的意思是在我的班级内部这样)
componentDidUpdate() {
updateCoinData = [...this.props.cryptoLoaded];
if (updateCoinData[i]["short"] == tradeMsg.coin ) {
//Search for changed Crypto Value
updateCoinData[i]["long"] = tradeMsg["message"]["msg"]["long"]
updateCoinData["short"] = tradeMsg["message"]["msg"]["short"]
或
search = () => {
displaySearchCrypto.push({
no: {i},
key: this.props.cryptoLoaded[i]["long"],
short: this.props.cryptoLoaded[i]["short"],
long: this.props.cryptoLoaded[i]["long"],
price: this.props.cryptoLoaded[i]["price"],
mktcap: this.props.cryptoLoaded[i]["mktcap"],
perc: this.props.cryptoLoaded[i]["perc"],
vwapData: this.props.cryptoLoaded[i]["vwapData"]
})
但是,由于我将只在单个类中使用,所以我认为我不应该在全局范围类中声明。所以我的问题是,如何在类中声明变量?
答案 0 :(得分:3)
您不要在类内声明变量。您可以在构造函数或方法中声明变量,或者创建实例的 properties (或类本身,即“静态”属性,这些属性是构造函数的特性)。
如果您正在使用模块,则您的第一个代码块将不会创建全局变量,而是会创建模块全局变量(仅对于该模块中的代码而言是全局变量)。如果该模块仅包含该类,并且您要表示该类的所有实例共享的变量和数组,则可以继续这样做。
但是我怀疑您希望它们是实例的属性,而不是在实例之间共享,在这种情况下,您需要在构造函数中定义这些属性:
constructor(props) {
super(props);
this.displaySearchCrypto = [];
this.updateCoinData = [...this.props.cryptoLoaded];
}
然后通过引用实例来使用它们(通常通过this.
)。
答案 1 :(得分:0)
是的,我认为T.J Crowder对此非常满意。但是,我想添加以下内容:
对象和类的任务是提供某些实体的抽象。对于ReactJS,这些对象是React组件。将与某个组件相关的所有数据放入一个对象的优点是:
还请记住:
课程包括:
此外,重要的是要知道JS使用原型继承。 class
关键字仅仅是基于顶级原型继承的语法糖。