Польза применения createAsyncThunk в Redux

На прошлом занятии мы применили функцию createAsyncThunk из RTK для того, чтобы написать наш первый thunk. В этом уроке я бы хотел немного остановиться на пользе этой функции при отправке запросов.

Вообще, логика для получения данных методом fetch в Redux выглядит довольно шаблонно. И, соответственно, для отправки статуса запроса в thunk нам понадобиться создать как минимум три action (с type и payload). Первый должен отправляться при отправке запроса, второй - при успешном выполнении запроса и третий - при неудачном. Затем их можно отправлять с помощью dispatch в коде thunk, к примеру в блоках try-catch. В результате такой код может выглядеть довольно громоздко и неудобно (достаточно глянуть документацию). Каждый из action при этом может иметь свой action creator. К тому же нельзя перепутать последовательность их отправки и сами экшены в частности. Конечно, это не то чтобы все обязательно, но является широко распространенной практикой при отправке запросов.

К счастью нам больше не надо делать все это вручную - теперь это сделает функция createAsyncThunk и сгенерирует thunk, который отправит все эти actions автоматически. Нам лишь нужно передать в createAsyncThunk колбэк, который сделает асинхронный вызов и вернет промис с результатом. Что мы и сделали на прошлом уроке.



Чат с GPT Компилятор