反应实例变量未定义

时间:2020-06-16 18:44:36

标签: reactjs state

我有一个基本组件,我想要一个由子类更新的实例级变量。我可以完成这项工作的唯一方法是将其添加到我不想执行的状态,因为该变量的值与UI无关,所以我不想触发重新渲染

因此,请考虑以下内容:

class BaseComponent extends React.Component {
  constructor(props) {
    super(props);
    this.params = [];
  }

  addParam(name) {
    this.params.push(name);
  }

  getUrl() {//this.params is always undefined
    return format("{0}?", this.constructor.name, this.params.join("&");
  }
}

因此,this.params始终是未定义的,这是有意义的,因为它不是状态的一部分。此变量与url相关,而不与UI相关,因此,在更新值时,我不想通过更新状态来触发重新呈现。

不确定这里最好的方法是什么?

我知道的选项:

1)添加到将触发重新渲染的状态

2)调用forceUpdate()也会触发重新渲染

我不喜欢这两个选项,所以我希望有人知道做我想做的正确方法。

0 个答案:

没有答案