反应自定义钩子以在一个组件中执行多个PnPjs请求

时间:2019-09-18 07:19:24

标签: javascript reactjs sharepoint react-hooks pnp-js

我不确定如何完成以下任务。我有组件,这是我在SharePoint中的自定义视图。我有一项服务,该服务负责从customList中检索某些项目(主题)。提到的列表中有一个包含一些ID的字段。我需要遍历所有检索到的项,并开始根据ID和其他条件检索更多数据。我是第一次使用React钩子,我想知道是否可以使用定制钩子来实现,或者什么是解决此问题的正确方法。

目前,我所提供的服务可以满足要求。

{
  const [listData, setListData] = useState([]);

  async function fetchListData() {
    const response:= await ListService.getItems();

    const mappedData= response ? response.map(it=> new Item(it)) : [];
    const updatedData= await configurationService.setItemActionDetails(mappedData);

    setListData(itemData);


  useEffect(() => {
    fetchListData();
  }, [])
}

我的服务设置如下:

{
for (const item of itemData) {
    const allActions = await my listService - the pnp request is further down
    const mostRecentAction = new Action(allActions.sort((a, b) => {
      return a.dueDate <a.dueDate  ? -1
        : a.dueDate  > a.dueDate ? 1
          : 0;
    })[0]);
    item.title= closestAction.title;
    item.actionDueDate= closestAction.dueDate;
    item.actionAssignee= closestAction.assignee;
    item.actionOverdueDays= I have method that calculate overdue days
  }

  return itemData;
}
```

My listService below to get actions:

```
{
        return sp.web.lists
            .getById("ListId")
            .items
            .select("specificColumns)
            .expand("specificColumn")
            .filter(filterIds)
            .get();
}
```

UPDATED:
I have improved the performance with PnP-JS Batching.

0 个答案:

没有答案