如何避免重复实例化一个对象

时间:2019-05-01 07:11:03

标签: javascript reactjs

我正在使用reactjs,componentDidUpdate()中有一个实例化。但是,在更新状态下,componentDidUpdate()将被执行,并且对象将重复执行语句

ps: const barrage = new Barrage();  the object will be execute repeatly

componentDidUpdate() {
    const barrage = new Barrage();
}


const barrage = new Barrage(); 

如何避免Object语句重复执行

2 个答案:

答案 0 :(得分:1)

您还没有真正解释您想要实现的目标,但是我将尝试通过说可以将其置于仅创建一次新实例的状态来解决该特定问题

constructor(props) {
  super(props);   
  ...
  this.state = {
     barrage : null
   }
  ...
}

 componentDidUpdate(prevState) {
  if(!prevState.barrage) {
    this.setState({ barrage : new Barrage() )}
  }
}

答案 1 :(得分:1)

您可以在componentDidMount中创建它,并在componentWillUnmount中进行清理

class TestComponent extends React.Component {
  barage = null;

  componentDidMount() {
    this.barage = new Barage();
  }

  componentWillUnmount() {
    this.barage = null;
  }
}

真的很难猜测没有任何代码您对该对象正在做什么。我只能假定它独立于组件的更新(如果有)。