Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何让状态组件向使用redux的用户显示应用程序的状态,而无需多次调度呼叫?_Javascript_Reactjs_Redux_React Redux - Fatal编程技术网

Javascript 如何让状态组件向使用redux的用户显示应用程序的状态,而无需多次调度呼叫?

Javascript 如何让状态组件向使用redux的用户显示应用程序的状态,而无需多次调度呼叫?,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,我正在开发一个为数据调用多个API的应用程序,通常需要等待很多东西。它还使用了一些很棒的新技术,比如IPFS 我有一个React组件,它可以显示幕后正在发生的事情的当前状态,并显示一条带有竖起大拇指、沙漏等图标的消息 一个类似的命令行“组件”是npm在安装某些东西时所做的快速重新滚动——有很多事情发生,npm会显示出来。这正是我想做的,但在一个网站上。嗯,可能不是我想要的,因为很多数据滚动得太快了,没有用处,但是我在这个应用程序中会有100-200个不同的可能调用(假设用户执行这个应用程序中不会

我正在开发一个为数据调用多个API的应用程序,通常需要等待很多东西。它还使用了一些很棒的新技术,比如IPFS

我有一个React组件,它可以显示幕后正在发生的事情的当前状态,并显示一条带有竖起大拇指、沙漏等图标的消息

一个类似的命令行“组件”是npm在安装某些东西时所做的快速重新滚动——有很多事情发生,npm会显示出来。这正是我想做的,但在一个网站上。嗯,可能不是我想要的,因为很多数据滚动得太快了,没有用处,但是我在这个应用程序中会有100-200个不同的可能调用(假设用户执行这个应用程序中不会发生的所有可能操作)

我的设置方式是这样的。我有一个redux
status
reducer,它在调度各种操作时更新状态

摘录:

const status = (
  state = {
  message: 'idle',
  numTasks: 0,
  numPullRequests: 0,
  txSubmitted: false
},
 action
) => {
  switch (action.type) {
   case actions.SUBMIT_TASK:
    return Object.assign({}, state, {
      message: 'Adding task to blockchain',
      txSubmitted: true
  })
case actions.RECEIVE_TASK:
  return Object.assign({}, state, {
    message: 'Received tasks'
  })
case actions.RECEIVE_TASKS:
  return Object.assign({}, state, {
    message: 'Received tasks'
  })
case actions.REQUEST_PULLREQUESTS_INSTANCE:
  return Object.assign({}, state, {
    message: 'Awaiting pull requests contract'
  })
case actions.SET_DEFAULT_STATUS:
  return Object.assign({}, state, {
    message: 'idle',
    txSubmitted: false
  })
default:
  return state
我重用了一些已经存在并且已经被调用的操作。但不幸的是,我创建了一些动作来真正捕获所有不同的状态变化

尽可能频繁地更新此组件会导致过多的
调度(someActionThatUpdateTestStatus())
调用

因此,我想知道有没有一种方法可以做到我想做的事情,而不必到处
分派
操作

我查找了一些包——找到了一个提供通知的包,但这些包是响应用户输入的,而不是各种后台状态更改(查询API-1、查询API-2、接收此数据等)