Ретранслируйте необязательный запрос с помощью usePreloadedQuery

#reactjs #relay #relaymodern #react-relay

Вопрос:

Допустим, у вас есть этот вариант использования:

Простая форма с одним вводом и кнопкой отправки.

Когда входное значение является допустимым (>3 символов), вы хотите запросить сервер, чтобы узнать, используется ли это значение уже.

Кнопка должна быть отключена, когда входное значение A.

Я попытался сделать это с помощью usePreloadedQuery

Проблема в том, что кнопка, которая всегда должна быть видна, вызовет usePreloadedQuery до того, как запрос будет когда-либо запущен, и, следовательно, вызовет, потому что ссылка на запрос равна нулю.

Я пытался сделать это с помощью useLazyLoadQuery

Я попытался использовать useLazyLoadQuery и установить { fetchPolicy: value.length < 4 ? "store-only" : "network-or-store" } , но затем это вынуждает меня увеличить резерв ожидания, что приведет к исчезновению моего компонента при каждом нажатии клавиши на 3 символа.

Каков был бы наилучший способ достичь этого с помощью ретрансляции?