React-admin использует шаблон под названием оптимистичный рендеринг .Это означает, что если приложение извлекло некоторые объекты в прошлом, если ему нужно отобразить эти объекты, оно сначала показывает устаревшие объекты, затем выбирает серверную часть и, если ответ отличается, повторно отображает экран с последними данными.
Например, когда пользователь выбирает список сообщений, response-admin сохраняет эти сообщения в словаре, проиндексированном по id:
{
123: { id: 123, title: "hello" },
456: { id: 456, title: "world" },
...
}
React-admin также сохраняет список идентификаторов.что список должен отображать:
[123, 456, ...]
Используя эти два свойства, Reaction-Admin теперь может отображать список.Но он также может отображать детали поста без предварительного попадания на сервер.Поэтому, когда пользователь нажимает на элемент в списке ,act-admin использует данные из первой структуры, чтобы отобразить их сразу, не дожидаясь ответа сервера.
Цель оптимистического рендеринга - производительность:пользователь не должен ждать двусторонней передачи с сервером, интерфейс очень быстрый.
В вашем конкретном случае я понимаю, что это может вызвать проблемы, поскольку хранилище содержит устаревшие данные, которые не являютсяна желаемом языке.Я предлагаю вам создать пользовательскую сагу, которая реагирует на действие по изменению языка и очищает хранилище, чтобы избежать подобных проблем.
Проверьте документацию для пользовательских саг на сайтеact-admin:
https://marmelab.com/react-admin/Admin.html#customsagas