Я столкнулся с проблемой, которую пытался решить разными способами, но не могу заставить ее работать. Пожалуйста, посмотрите это приложение Expo, я создал глупый пример, который демонстрирует мою проблему: https://snack.expo.io/HJB0sE4jS
Подводя итог, я хочу создать приложение с перетаскиваемым компонентом (синяя точка в примере), нов то время как пользователь перетаскивает компонент, мне также нужно обновить состояние приложения (счетчик в примере). Проблема заключается в том, что всякий раз, когда состояние обновляется во время перетаскивания, компонент сбрасывается в исходное положение. Я хочу, чтобы пользователь мог свободно перетаскивать компонент во время обновления состояния.
Я смог «решить» проблему, поместив PanResponder в useRef, поэтому он не будет повторно инициализирован в случаеобновление состояния, но, как вы можете видеть в примере, я хочу использовать состояние в PanResponder. Если я помещу его в useRef, я не смогу использовать состояние в PanResponder, потому что оно будет содержать устаревшее значение (оно всегда будет содержать начальное значение счетчика, равное 0).
Как вы справляетесь с этим видомситуаций в родной реакции? Я предполагаю, что это не является чем-то необычным, что кто-то хочет обновить состояние во время анимации, хотя я не могу найти какую-либо документацию или примеры по этому поводу.
Что я делаю не так?
Редактировать: Iпродолжал исследовать дальше, и я вижу, что проблема в том, что я сопоставляю значения (dx, dy) из параметра жеста с позицией, но значения (dx, dy) сбрасываются в (0,0), когда состояниеменяется. Я думаю, (dx, dy) инициализируется в (0,0) при создании PanResponder. До сих пор не знаю, что делать, чтобы сделать эту работу ...