在不使用状态的情况下将数据临时存储在组件中

store data temporarily in a component without using state

我有一个 React 应用程序,它每隔几秒查询一次本地 http 点和 returns 数据。每次 ajax 请求 returns 时,我都会将一些返回的信息打包到一个对象中,并将该对象添加到一个数组中。这意味着每次 ajax 调用 returns,我都必须

  1. 从状态中获取数组
  2. 在我将对象添加到数组后将新数组添加到状态

由于不断更新状态,我的 React 应用程序会自动呈现(并且不必要)。由于将对象添加到数组(然后将数组存储在状态中),UI 没有任何变化,但 React 会自动呈现。

问题:有没有一种方法可以在不使用状态的情况下让组件中的不同函数调用访问数组?

  var arr = this.state.arrayOfObjects.slice();
  obj = {};
  var timeStamp = Date.now();
  obj['stuffFromApi'] = apiStuff;
  obj['timeStamp'] = timeStamp;
  arr.push(obj);    
  this.setState({ arrayOfObjects: arr});

你可以只使用一个实例变量:

this.arrayOfObjects = this.arrayOfObjects || []; // can also be initialized in componentWillMount method.
obj = {};
var timeStamp = Date.now();
obj['stuffFromApi'] = apiStuff;
obj['timeStamp'] = timeStamp;
this.arrayOfObjects.push(obj);

然后您也可以从其他功能访问 this.arrayOfObjects