#javascript #reactjs #react-native
Вопрос:
Мое приложение подключается к устройству Bluetooth и постоянно извлекает из него данные, сохраняет их в состоянии и выводит на экран. Кроме того, у меня есть кнопка на экране, которая должна что-то сделать (скажем, войти в консоль с сообщением). Моя проблема в том, что заданное состояние вызывает повторный рендеринг так быстро (думаю, в миллисекундах), что при нажатии кнопки ничего не происходит. Если я буду продолжать нажимать кнопку снова и снова, в конце концов она поймает и войдет в журнал консоли. Как я могу исправить это, если я могу постоянно показывать обновленные данные, одновременно нажимая на кнопку?
Я попытался удалить состояния быстрого набора, и все работает так, как ожидалось, поэтому я уверен, что функциональность кнопок обусловлена быстрым, повторяющимся повторным рендерингом.
Комментарии:
1. похоже, вы можете использовать ref для хранения входящих данных, которые не будут вызывать повторный рендеринг, а затем, скажем, через каждые 100 мс запускать повторный рендеринг, используя комбинацию useEffect/setTimeout…?