Избежание состояния гонки в ReactJS с Redux - PullRequest
0 голосов
/ 07 мая 2020

Я получил некоторые указания от сообщества относительно того, как предотвратить состояние гонки в ReactJS с Redux.

Предположительно два человека смотрят одну и ту же запись, и оба хотели бы внести изменения в это, как должен выглядеть поток действий? Я не уверен, как использовать этот запрос в Google, поэтому решил попросить сообщество указать мне в правильном направлении.

Первоначально я думал, что если я сделаю setState и сохраню его в БД, он автоматически обновится sh в глазах других пользователей (хотя я не могу это подтвердить), иначе как мне заблокировать элемент для изменения, чтобы другие пользователи не могли манипулировать значением?

1 Ответ

1 голос
/ 07 мая 2020

Для этого вы можете использовать веб-сокеты вместе с React redux. Если user A просматривает запись, отправьте сообщение на сервер, чтобы заблокировать запись. Затем транслируйте сообщение locked через веб-сокет другим подписанным пользователям, которые в настоящее время его просматривают. Как только пользователи получат сообщение locked websocket, обновите состояние response / redux, чтобы показать соответствующий статус.

А что касается состояния гонки, это может произойти и должно обрабатываться на сервере в соответствии с использованием кейс. Например, если запрос user A достигает первого, а User B - второго, и если вы хотите отдать предпочтение первому пользователю, заблокируйте запись ресурса, но установите доступ true только для User A. После того, как user A прекратит редактирование, снимите блокировку.

Если вы хотите сделать часть просмотра сообщений websocket отдельной проблемой вне компонента реакции, вы можете изучить промежуточное ПО redux redux-saga .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...