React-Тестирование-Библиотека не может выполнить обновление состояния реакции для размонтированного компонента

#reactjs #react-testing-library

Вопрос:

Я пытаюсь протестировать простое приложение, чтобы освоиться с библиотекой тестирования реакций, и мне удалось многое выяснить, но я получаю сообщение об ошибке, связанное с обновлениями состояния реакции на размонтированных компонентах. Это отображается только в моем наборе тестов, а не когда я запускаю приложение, и я попытался установить переменную isMounted и установить для нее значение false в функции очистки. Однако ошибка все еще сохраняется. Если у кого-нибудь есть представление о том, что я делаю не так, я был бы очень признателен за помощь!

Соответствующий код:

Упражняемый.jsx

 useEffect(async () =gt; {  let isMounted = true;  const exercisesArray = await exerciseAPI.get();  if (isMounted) {  setExercises(exercisesArray);  }  return () =gt; {  isMounted = false;  };  }, []);  

ExerciseTable.test.js настройка сервера

 const server = setupServer(  rest.get('/exercises', (req, res, ctx) =gt; {  return res(ctx.json(exercises));  }),   rest.get('/exercises/:id', (req, res, ctx) =gt; {  const id = req.params.id;  const exercise = exercises.find(e =gt; e._id === id);  return res(ctx.json(exercise));  }), );  

annnnd тест выдает ошибку в том же файле

 it('Renders a list of exercises', async () =gt; {  render(lt;ExerciseTable /gt;);   const row1 = await screen.findByRole('row', {  name: new RegExp(`${exercises[0].username}`, 'i'),  });  const row2 = await screen.findByRole('row', {  name: new RegExp(`${exercises[1].username}`, 'i'),  });  const row3 = await screen.findByRole('row', {  name: new RegExp(`${exercises[2].username}`, 'i'),  });  expect(row1).toBeInTheDocument();  expect(row2).toBeInTheDocument();  expect(row3).toBeInTheDocument();  });  

Большое спасибо!