Как избежать ошибки отдачи «Настройка селекторов в атомном обновлении не поддерживается»Javascript

Форум по Javascript
Ответить
Гость
 Как избежать ошибки отдачи «Настройка селекторов в атомном обновлении не поддерживается»

Сообщение Гость »


У меня есть код управления состоянием, использующий Recoil, и я столкнулся с ошибкой:

Настройка селекторов в атомном обновлении не поддерживается

Я понимаю, почему возникает эта ошибка. У меня есть несколько атомов, которые следуют шаблону использования селекторов для установки значений по умолчанию, например:
экспортировать const ProductState = атом({ ключ: 'productstate', по умолчанию: селектор({ ключ: 'productstate/default', get: ({ get }) => get(...асинхронный селектор...) }) }) Проблема возникает, когда я позже использую useRecoilTransaction__UNSTABLE, чтобы попытаться установить этот селектор, например:

const setProductState = useRecoilTransaction__UNSTABLE(({ set }) => newState => { set(productState, newState) }) При использовании этого установщика транзакции возникает описанная выше ошибка, пока значение default атома установлено селектором. Вот минимальный воспроизводимый пример: ссылка

На данный момент я понимаю, что это просто запрещено, хотя я не уверен, что понимаю, почему.

Я хотел бы знать, есть ли какой-нибудь способ обойти это. Как я могу обеспечить транзакционное обновление набора частей состояния (что позволяет useRecoilTransaction) и установить состояние атома по умолчанию. (Примечание: здесь я кратко пытался использовать Atom Effects, но мне не удалось заставить обработку ошибок работать должным образом. Эффекты, казалось, поглощали ошибки).
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»