React-native: Попытка перейти из состояния RESPONDER_INACTIVE_PRESS_IN в состояние RESPONDER_ACTIVE_LONG_PRESS_IN, которое не поддерживается.

Созданный на 8 февр. 2016  ·  162Комментарии  ·  Источник: facebook/react-native

Аналогично # 1693. Похоже, это проблема с компонентом Touchable с отладкой Chrome на React Native 0.19.0.

Attempted to transition from state `RESPONDER_INACTIVE_PRESS_IN` to `RESPONDER_ACTIVE_LONG_PRESS_IN`, which is not supported.
This is most likely due to `Touchable.longPressDelayTimeout` not being cancelled.

stack:
reactConsoleError                                 @ ExceptionsManager.js:76
console.error                                     @ YellowBox.js:49
TouchableMixin._handleLongDelay                   @ Touchable.js:575
JSTimersExecution.callbacks.(anonymous function)  @ JSTimers.js:47
JSTimersExecution.callTimer                       @ JSTimersExecution.js:69
JSTimersExecution.callTimers                      @ JSTimersExecution.js:92
__callFunction                                    @ MessageQueue.js:183
(anonymous function)                              @ MessageQueue.js:87
guard                                             @ MessageQueue.js:41
callFunctionReturnFlushedQueue                    @ MessageQueue.js:86
onmessage                                         @ debuggerWorker.js:39

Код, вызывающий эту ошибку, взят из только что запущенного приложения, использующего компонент TouchHighlight:

class App extends Component {
  constructor() {
    super()
    this.state = {
      testText: ''+Math.random()
    }
  }

  _updateTouch(e) {
    this.setState({testText: ''+Math.random()})
  }

  render() {
    return (
      <View style={styles.container}>
        <Text>
          {this.state.testText}
        </Text>
        <TouchableHighlight onPress={this._updateTouch.bind(this)}>
          <Image
            style={width: 100, height: 100}
            source={{uri: 'http://facebook.github.io/react/img/logo_og.png'}}
          />
        </TouchableHighlight>
      </View>
    );
  }
}

PS Есть ли лучший способ скопировать трассировку стека? Я просто копирую из консоли инструментов разработчика Chrome

Самый полезный комментарий

Исправлено после добавления просмотра

<TouchableNativeFeedback>
     <View> // <= here
         <Text style={css.item}>{rowData.title + rowData.id}</Text>
     </View>
</TouchableNativeFeedback>

Все 162 Комментарий

Привет, Dyscrete, спасибо, что сообщили об этой проблеме!

React Native, как вы, наверное, слышали, становится действительно популярным, и правда в том, что мы немного ошеломлены деятельностью, связанной с ним. Нам нужно решить слишком много проблем.

  • Если вы не знаете, как что-то сделать, или что-то работает не так, как вы ожидаете, но не уверены, что это ошибка , спросите в StackOverflow с тегом react-native или для дополнительных взаимодействий в реальном времени спросите в Discord в # Реагировать на собственный канал.
  • Если это запрос функции или ошибка, которую вы хотели бы исправить, сообщите об этом на странице «Проблемы с продуктом» . Он имеет функцию ранжирования, которая позволяет нам сосредоточиться на наиболее важных проблемах, с которыми сталкивается сообщество.
  • Мы приветствуем четкие вопросы и PR, готовые к всестороннему обсуждению. При необходимости предоставьте снимки экрана и всегда указывайте версию React Native, которую вы используете. Спасибо за ваш вклад!

Я получаю ту же ошибку при тестировании на iPhone6 ​​(9.1)

Чем этот выпуск отличается от №1693? В общем проблема вроде та же. Можем ли мы закрыть его и продолжить расследование там, где есть больше деталей?

+1
У меня тоже такая проблема, и бывает, что часто переключаю навигатор

Собираюсь закрыть его как @askday, также

Такая же ошибка для меня.
Реагировать 0,31
Отладка Chrome.
При нормальном использовании проблем нет.

console.error: «Попытка перейти из состояния RESPONDER_INACTIVE_PRESS_IN в состояние RESPONDER_ACTIVE_LONG_PRESS_IN , которое не поддерживается. Скорее всего, это связано с тем, что Touchable.longPressDelayTimeout не отменяется.»

Object.console.error
YellowBox.js: 60
Конструктор._handleLongDelay
Touchable.js: 595
JSTimersExecution.callbacks. (Анонимный
index.ios.bundle? platform = ios & dev = true & minify = false: 8476 : 13
Object.callTimer
JSTimersExecution.js: 84

JSTimersExecution.js: 119
Object.callTimers
JSTimersExecution.js: 119
MessageQueue .__ callFunction
MessageQueue.js: 204

MessageQueue.js: 95

+1

+1

+1

+1

: +1:

👍

+1

+1

+1

+1

+1

+1

+1

+1

+1

У меня тоже возникает эта ошибка, но только на Android. IOS работает как положено.

+1

+1

+1

+1

+1

+1

+1

+1 такая же ошибка только на Android, но iOS работает нормально.

+1 такой же, как @ binzailani3136

+1

Поздравляем, эта ошибка была выбрана как одна из самых громких проблем RN0.39.

+1

+1

+1

+1

+1

+1

+1

+1

Ребята, ваши +1 бесполезны, и это # ​​1693

+1

+1

+1

+1

+1

+1

Как я вижу, у многих людей эта проблема всегда возникает, а эта уже закрыта, поэтому я создаю новую здесь: # 11989

+1

+1

@magrinj , почему эта проблема закрыта, когда так много людей, включая меня, только что использующего RN 0.37, продолжают

@fungilation Может быть, я сделал ошибку, открыв новый билет, потому что он открыт и говорит о той же проблеме: # 1693

Исправлено после добавления просмотра

<TouchableNativeFeedback>
     <View> // <= here
         <Text style={css.item}>{rowData.title + rowData.id}</Text>
     </View>
</TouchableNativeFeedback>

@Yadro , вы имеете в виду, что добавление дополнительных View исправляет это со стороны приложения, или RN может исправить это изнутри, сделав это?

хм, я плохо говорю по-английски, но добавление дополнительных View решает эту проблему

В порядке. Я сообщу, если я все еще столкнусь с этой проблемой с дополнительными представлениями

+1

Я получаю это только при удаленной отладке. Обычно этого не происходит. РН .41.2. Windows 10. Android

+1

@ ckwong90 , некоторые здесь, появляются только при удаленной отладке
РН .41.2. macOS Sierra 10.12.3

  • 1 такая же проблема

То же самое, Android 6.0, последняя версия RN, удаленная отладка

+1

+1

+1

Я столкнулся с этой проблемой с react-native-button и моделью отладки в Chrome

Я решил проблему, заключив компонент Button в View.

+1

Я уже завернул компоненты в представление, но получил эту ошибку. После этого любой TouchableHighlight в моем приложении выдавал эту ошибку. Решил (временно?), Очистив данные приложения в настройках. Проблема возникла в Android, эмуляторе, Win10, RN 0.42.3 с «Отладкой JS удаленно» без «горячей перезагрузки».

то же самое

+1

  • 1

+1 случается, когда я переключаю навигатор

+1

Получил ту же ошибку. Восстановление приложения из XCode решило эту проблему для меня.

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

Есть ли в этом прогресс?

Эта проблема возникает при удаленной отладке.

кто-нибудь?!

после разработки в течение 3 недель внезапно эта проблема появляется, когда я использую компонент Fab nativebase. Я надеюсь, что F8 может исправить эту проблему

Есть такая же проблема,

+1

+1

+1

+1

    render() {
        let {onNavigateToOfferScreen, navigation} = this.props;
        let {dataSource} = this.state;
        return (
            <ListView style={styles.container} dataSource={dataSource} renderRow={offer => (
                <TouchableHighlight onPress={() => onNavigateToOfferScreen(offer)}>
                    <View style={styles.row} elevation={2}>
                        <Text style={styles.businessName}>{offer.name}</Text>
                    </View>
                </TouchableHighlight>
            )}/>
        );
    }

+1

Тоже самое

+1

+1

+1

+1

+1 .... эта ошибка появляется только после того, как я начинаю использовать выборку ...

та же проблема дополнительный вид не работает

+1

+1

счет ++

+1

ОСТАНОВИТЕСЬ со спамом +1. Просто поставьте отметку "Нравится" против исходного сообщения или любого другого комментария 👍🏼, если увидите то же самое.

@fungilation 👍

+1

Это происходит только при удаленной отладке, и я временно исправил это, выполнив следующие действия:

  1. Откройте настройки Android
  2. Программы
  3. Щелкните свое приложение
  4. Место хранения
  5. Очистить кэш

Примечание: это действительно временное решение. Он до сих пор то и дело всплывает.

@Jarrio Спасибо

@lukemiles мысли?

+1

+1

+1

Решение @Jarrio tmp пока работает

+1

+1

+1

р-н 48 +1,

+1

р-н 48 + 1

Проблема возникла только в том случае, если удаленная отладка js включена ... в нормальном режиме он работает нормально.

рН 49,3+ 1

+1

+1

+1

image+1

Я меняю TouchableHighlight на TouchableOpacity , этого не происходит

РН.50 +1

@Jarrio по- прежнему сразу выдает ошибку на android

+1 0,47

+1

ПОЖАЛУЙСТА, ОСТАНОВИТЕСЬ +1 !!!

эээ ... плюс 1, тогда

+1

+1

+1 за 0,48,3

+1 на 0.51.0

+1 хороший, люблю его. Бывает 0.50

+1

+1

+1

с реагирующим родным 0.51.0

Я «исправил» это, вручную установив время устройства в Android. Убедитесь, что новое время будет равно времени вашего компьютера (стремитесь к изменению в следующую минуту), подтвердите изменение времени в ту же секунду, когда время вашего компьютера изменится на следующую минуту.

+1

+1

+1

+1

+1

+1

Решение для меня было

  1. Убедитесь, что у телефона и компьютера одинаковый часовой пояс
  2. Вручную обновить время на ПК: Дата и время -> вкладка Интернет-время -> Изменить настройки -> Время обновления
  3. Включите автоматическое обновление времени в настройках Android, затем выключите его.
  4. Перезапустите приложение

+1

В библиотекахComponentsTouchableTouchableHighlight.js заменить

touchableGetLongPressDelayMS: function () {
вернуть this.props.delayLongPress;
},

с участием

touchableGetLongPressDelayMS: function () {
вернуть this.props.delayLongPress === 0? 0:
this.props.delayLongPress || 500;
},

Это решило проблему для меня.

+1

+1

У меня была такая же проблема на Android, когда
а) мой мобильный телефон был подключен к моему компьютеру через USB
б) Я использовал удаленную отладку по сети

Отключение USB решило проблему. Однако не знаю, существует ли причинно-следственная связь.

Изменить: после получения дополнительных проблем с тайм-аутом асинхронизации я проверил текущее время на ПК и устройстве Android через

adb shell date && date .

Расхождение в 5 секунд. Может возникнуть соблазн предположить, что существует несогласованность в том, как RN обрабатывает текущее время при удаленной отладке.
С помощью

curl -s --head http://google.com | grep ^Date: | sed 's/Date: //g'

В моем случае я установил виновника: системное время моего Android-устройства отключилось на 5 секунд. Перезагрузка Android-устройства устранила несоответствие.

Я только что проверил время с устройства Android и моего Mac с помощью: adb shell date && date . Он отличался более чем на 2 минуты. Затем я активировал автоматическую настройку времени на своем устройстве Android и снова выполнил ту же команду, и время было синхронизировано, но часовой пояс не был одинаковым, хотя на обоих (устройстве Android и Mac) настройка часового пояса была автоматической. Поэтому я отключил автоматическую настройку часового пояса на своем устройстве Android и вручную установил соответствующий, и ошибка исчезла.

+1

+1

автоматическая установка времени на устройстве Android и автоматическая установка времени на компьютере решили проблему

в Ubuntu я синхронизировал системное время с текущим временем ADB, выполнив:

sudo date +%T -s `adb shell date +%T`

+1

+1

Блокировка из-за повторяющихся комментариев +1. Решение было опубликовано давно здесь @ Larry-Liu2016. Таким образом, проверьте часы на своих устройствах.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги