javascript - 如何将此刷新操作称为连续后台作业

标签 javascript reactjs redux react-redux

这是电子应用程序的一部分,在用户界面上按下刷新按钮时调用此操作。我想让它自动刷新。我该怎么做?

组件/counter.js:

export default class Counter extends Component<Props> {
  props: Props;

  render() {
    const {
      refresh,
      counter
    } = this.props;
    return (
      <button onClick={() => refresh()}>
        Refresh
      </button>
    );
  }
}

actions/counter.js:

export function refresh() {
  // Do some local CRUD here.
  return {
    type: NO-OP
  };
}

最佳答案

您可以创建一个连续调用 setTimeout 并在组件卸载时停止的函数:

示例

class Counter extends Component {
  runRefresh = () => {
    this.timer = setTimeout(() => {
      this.props.refresh();
      this.runRefresh();
    }, 1000);
  };

  componentDidMount() {
    this.runRefresh();
  }

  componentWillUnmount() {
    clearTimeout(this.timer);
  }

  render() {
    const { refresh, counter } = this.props;
    return <button onClick={() => refresh()}>Refresh</button>;
  }
}

关于javascript - 如何将此刷新操作称为连续后台作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51047200/

相关文章:

javascript - 更新表单中的数据。保持可编辑状态。 (与 Redux react ,无 redux-form)

javascript - 将 Flexslider 与 Masonry 相结合

javascript - 将最大日期值设置为当前日期或从开始日期起 1 年

javascript - 下拉菜单无法选择并打开 div...我做错了什么?

javascript - 当值设置为它修改的 useState 时,AutoComplete 会发出红色警告

javascript - 如何通过Enzyme获取依赖组件元素?

javascript - React应用程序中src文件夹的Webpack别名?

reactjs - 在 docker-compose 上使用 nginx 代理 React 应用程序

javascript - React Native 布局动画不是动画?还是做错了?

reactjs - 我如何在 Kotlin.js 中使用 Redux/React?