Искаженные вызовы из JS: размеры полей разные

#react-native #bluetooth-lowenergy #communication

#react-native #bluetooth-низкое энергопотребление #Информационные материалы

Вопрос:

Я перешел по ссылке:https://github.com/facebook/react-native/issues/23835#issuecomment-493007479

Но решения нет. Я понял, что эта ошибка возникает, когда

  1. Вы отправляете NaN в массив на react native bridge. Я мало что знаю об этом.
  2. Во время использования недопустимых данных (бесконечность) в анимации.
  3. Во время навигации снизу.
  4. Использование меню.
  5. Отображение данных ответа в предупреждении или уведомлениях в виде тостов.

Я использую react-native-ble-manager.

Процедура: я отправил сообщение для записи, используя характеристику, которая разрешает запись, после настройки уведомлений для характеристики, которая разрешает чтение. Я получил ‘ack’ в прослушивателе ответов, который использовался для получения уведомлений, а затем я начинаю отправлять пользовательские фрагменты данных по частям, как и было задумано.

Я получаю эту ошибку во время отправки этого первого фрагмента.

Я проверил свой Uint8Array на наличие каких-либо неправильных данных, используя итерацию и to, но не смог их найти.

Из моих журналов:

 2020-09-04 12:52:13.944 21942-22004/com.my_app E/ReactNativeJS: Error: Exception in HostFunction: Malformed calls from JS: field sizes are different.
    
    [[3,13,37],[5,22,0],[["{"type":"log","level":"log","data":["payload[18]: \u0000"]}",1],[221,100,1599204133919,false]],2453]
  

Ответ №1:

Я перебрал свой Uint8Array и взял каждый из элементов в var newArr = [];

Я также сделал newArr [i] = newArr [i] amp; 0xff.

Ошибка исчезла.