ReactJS-超时未完成,在循环内设置

时间:2018-10-20 14:28:09

标签: javascript reactjs

我正在使用以下代码在字段更改时触发闪烁。一切都很好,但是由于某些我不理解的JavaScript魔术,我的超时实际上并未完成。如果有人可以阐明为什么这些超时无法完成的原因,那将非常有帮助-谢谢!

我假设它与在循环内使用this有关系吗?

componentDidUpdate(prevProps) {
  const updates = {};
  fields(this.props).forEach(f => {
    if (!_.isEqual(this.props[f], prevProps[f])) {
      updates[updatedKey(f)] = true;
    }
  });
  if (Object.keys(updates).length > 0) {
    this.setState({ ...updates });
    Object.keys(updates).forEach(f => {
      const tkey = timeoutKey(f);
      clearTimeout(this[tkey]);
      this[tkey] = setTimeout(() => this.setState({ [updatedKey(f)]: false }), 700);
    });
  }
}

0 个答案:

没有答案