# react18-batching-fixer

Находит в классовых компонентах поломки из-за автоматического батчинга в React 18. Исправляет чтение устаревшего this.state после await и добавляет flushSync, где нужен промежуточный рендер.

- субагент · `type=agent` · GitHub Copilot · ★ 40451
- Автор: github · официальный репозиторий GitHub
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/github/awesome-copilot/tree/HEAD/agents/react18-batching-fixer.agent.md
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/agents/react18-batching-fixer

## Что делает

В React 18 вызовы `setState` объединяются везде, включая промисы, `setTimeout` и нативные обработчики событий. Старый код на классовых компонентах рассчитывал на немедленный рендер. Разработчик вызывал `setState` перед `await`, а затем читал `this.state`. В React 18 состояние не обновляется до конца функции. Условия молча не срабатывают, а тесты падают без ошибок в консоли.

Субагент ищет проблемные места через `grep`. Он проверяет асинхронные методы классов, таймеры и цепочки `.then()`. Найденный код делится на три категории: чтение состояния после `await`, цепочки условий и многошаговые сценарии интерфейса. Точки проверки агент записывает в память рабочего пространства под ключом `react18-batching-progress`.

Для исправления код переписывается без чтения `this.state` после асинхронных вызовов. Если интерфейсу обязательно показать спиннер до сетевого запроса, агент оборачивает вызов во `flushSync` из `react-dom`.

## Установка

### GitHub Copilot (родная платформа)

**Вручную: положить файлы**
- Файл: `.github/agents/react18-batching-fixer.agent.md`

### Claude Code

**Вручную: положить файлы**
- Файл: `.claude/agents/react18-batching-fixer.md` — Для всех проектов — ~/.claude/agents/. Claude делегирует задачу сам по полю description или по @-упоминанию. Поле tools у Copilot перечисляет инструменты по-своему — уберите его или перепишите под Claude Code

### Codex

**Вручную: положить файлы**
- Файл: `.codex/agents/react18-batching-fixer.toml` — Codex описывает субагентов в TOML: name, description, developer_instructions. Текст из Markdown перенесите в developer_instructions вручную. Для всех проектов — ~/.codex/agents/

### Cursor

**Вручную: положить файлы**
- Файл: `.cursor/agents/react18-batching-fixer.md` — Cursor понимает и .claude/agents/

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/github/awesome-copilot/tree/HEAD/agents/react18-batching-fixer.agent.md

## Когда брать
- найти вызовы setState перед await, ломающие логику после перехода на React 18
- устранить баги с чтением устаревшего this.state внутри асинхронных методов классов
- расставить flushSync из react-dom в местах, где критичен промежуточный рендер
- проверить обработчики в setTimeout и нативных событиях на нежелательный батчинг

## Примеры запросов агенту
- Проверь классовые компоненты в `src/` на ошибки батчинга React 18
- Найди асинхронные методы, где `this.state` читается сразу после `await`
- Исправь зависшие индикаторы загрузки в компонентах заказов с помощью `flushSync`

## Похожие
- [Sentry Bug Fixer](https://affpapa.org/nevibecode/prompts/sentry-bug-fixer.md) — промпт · ★ 174676
- [frontend-developer](https://affpapa.org/nevibecode/agents/voltagent-community-frontend-developer.md) — субагент · 40905 установок
- [ui-ux-designer](https://affpapa.org/nevibecode/agents/ui-ux-designer.md) — субагент · 27069 установок
- [fullstack-developer](https://affpapa.org/nevibecode/agents/fullstack-developer.md) — субагент · 18117 установок
- [javascript-pro](https://affpapa.org/nevibecode/agents/javascript-pro.md) — субагент · 4974 установки
- [ui-designer](https://affpapa.org/nevibecode/agents/voltagent-community-ui-designer.md) — субагент · 1979 установок
- [ui-designer](https://affpapa.org/nevibecode/agents/ui-designer.md) — субагент · 1979 установок

Из того же набора: [github/awesome-copilot](https://affpapa.org/nevibecode/by/github/awesome-copilot.md) — 949 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
