Как перенаправить после замены избыточного идентификатора магазина с идентификатором сервера?

Я сейчас пользуюсь redux-optimistic-ui чтобы иметь возможность визуализировать что-то сразу пользователю при сохранении в БД.

Перед тем, как часть моего нормализованного хранилища редуксов сохраняется в БД и возвращает идентификатор, я генерирую временный идентификатор, который заменяется, как только я получаю ответ от сервера.

У меня проблема связана с маршрутизацией. Поскольку идентификаторы активно используются в маршрутах в моем приложении, когда я генерирую временный идентификатор, он используется в моем URL, пока я жду ответа сервера.

Я думаю, что способ сделать это состоит в том, чтобы сделать что-то эквивалентное history.replaceState с URL-адресом, содержащим новый сервер сгенерированный идентификатор.

Я использую React-Router v4, и я не уверен, где это сделать. Кажется, я не могу сделать это напрямую из редукторных редукторов. Должен ли я иметь другой редуктор пользовательского интерфейса, который слушает SUCCESS действие и сохранить URL для перенаправления тоже? Или есть более чистый способ?

Спасибо!

1 ответ

Наконец, мы пошли на сохранение сгенерированного идентификатора внешнего интерфейса вместе с идентификатором, сгенерированным базой данных в бэкенде, и имели дело только с сгенерированным внешним интерфейсом идентификатором в API. Другое решение - использовать uuids в качестве первичных ключей в postgresql и использовать uuids, сгенерированные внешним интерфейсом.

Другие вопросы по тегам