как использовать useSWR для обработки разбитого на страницы запроса

#reactjs #typescript

#reactjs #машинописный текст

Вопрос:

Я новичок useSWR , и мне нужно получить список элементов, вызывающих некоторую конечную точку, которая возвращает ответ с разбиением на страницы

 const listItems = (id: String) => {
  const [nextToken, setNextToken] = useState(undefined);
  const [items, setItems] = useState([]);

  const input = useMemo(() => {
    return { id, nextToken }
  ,[nextToken]);

  const data = useSWR('listItems', promisify(listItems(input)));

  useEffect(() => {
    if (!data) return;
    setItems(items.concat(data.items));
    setNextToken(data.nextToken);
  }, [data]);

  return {
    items
  };
}

 

В тестовом файле я издеваюсь listItems следующим образом

 mockListItems
 .mockImplementationOnce(() => {
   promise: () => Promise.resolve(item1)
 })
 .mockImplementationOnce(() => {
   promise: () => Promise.resolve(item2)
 })
 

Однако тест завершается неудачей, поскольку он возвращает только item1. Что здесь пошло не так?