2015-10-19 4 views
2

Допустим, у вас есть простое приложение с кнопкой «создать вещь», и когда вы нажимаете на него, вы переходите к новому URL для редактирования этой вещи. Теперь предположим, что вы не хотите ждать, пока сервер выделит вам идентификатор, прежде чем вы покажете интерфейс редактирования.Оптимистичные обновления RelayJS, которые приводят к навигации

Что вы хотите сделать? Временно записывайте «новый» в URL-адрес до тех пор, пока не будет доступен идентификатор, а затем замените его? Выделить идентификатор на стороне клиента и надеяться, что он не столкнется с существующим идентификатором? В любом случае вам нужно будет остановить Relay от получения информации, которая еще не существует. Как бы Вы это сделали?

+0

Я столкнулся с точной ситуацией; что вы в итоге сделали? –

ответ

0

Создайте второй маршрут для состояния new и дайте ему другой Relay.Container, который, возможно, не получит какую-либо информацию об этом объекте.

0

Я выполнил его, передав зрителя непосредственно мутации и изменив его прямо там. В отличие от выбора узлов из ретрансляции вновь созданный узел не будет иметь свойство dataID, поэтому вы можете легко идентифицировать его в вашем реагирующем компоненте.

Смежные вопросы