将asnyc函数传递给组件

时间:2018-10-05 16:16:19

标签: reactjs mobx

如何将异步函数传递给组件? next函数下面是我的数据存储区中的异步函数。我通过了store.user.fetchUsers。该方法可用,其他属性也可以正常工作。

<InfiniteScroll
      dataLength={store.user.users.length}
      hasMore={store.user.hasMore}
      next={store.user.fetchUsers}
      loader={props.loader}
      endMessage={props.endMessage}
      scrollableTarget={document.getElementById('app')}
    >
      <div className="columns is-multiline">
        {snaps}
      </div>
    </InfiniteScroll>

但是在我的mobx商店中,我有一个异步操作:

 @action
  async fetchUsers () {
    let req;
    try {
      switch(this.genderFilter) {
        case 'male':
          req = await API.maleUsers(this.lastID())
          break
        case 'female':
          req = await API.femaleUsers(this.lastID())
          break
        default:
          req = await API.allUsers(this.lastID())
      }

      runInAction(() => {
        const users = req.body.users

        if (users && users.length <=0) {
          this.hasMore = false
        } else {
          this.addUsers(req.body.users)
        }

        this.state = 'done'
      })
    } catch (e) {
      runInAction(() => {
        this.state = 'error'
        this.hasMore = false
      })
    }
  }

如何将其传递给next,以便它可以调用?目前尚未被调用。

0 个答案:

没有答案