React-native: Tentativa de transição do estado `RESPONDER_INACTIVE_PRESS_IN` para` RESPONDER_ACTIVE_LONG_PRESS_IN`, que não é suportado.

Criado em 8 fev. 2016  ·  162Comentários  ·  Fonte: facebook/react-native

Semelhante a # 1693. Parece ser um problema com o componente Touchable com o Chrome Debugging no 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

O código que produz esse erro é de um aplicativo recém-iniciado usando um componente 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 Existe uma maneira melhor de copiar um rastreamento de pilha? Estou apenas copiando do console de ferramentas de desenvolvimento do Chrome

Locked

Comentários muito úteis

Corrigido após adicionar visualização

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

Todos 162 comentários

Ei, Discreto, obrigado por relatar esse problema!

React Native, como você provavelmente já ouviu falar, está ficando muito popular e a verdade é que estamos ficando um pouco sobrecarregados com a atividade que o cerca. Existem muitos problemas para gerenciarmos adequadamente.

  • Se você não sabe como fazer algo ou algo não está funcionando como esperado, mas não tem certeza se é um bug , pergunte no StackOverflow com a tag react-native ou para mais interações em tempo real, pergunte no Discord no # canal nativo de reação.
  • Se esta é uma solicitação de recurso ou um bug que você gostaria de consertar, relate no Product Pains . Ele tem um recurso de classificação que nos permite focar nos problemas mais importantes que a comunidade está enfrentando.
  • Aceitamos questões claras e PRs que estão prontos para discussão aprofundada. Forneça capturas de tela quando apropriado e sempre mencione a versão do React Native que você está usando. Obrigado por suas contribuições!

Recebo o mesmo erro ao testar em um iPhone6 ​​(9.1)

Qual é a diferença entre esse problema e o # 1693? Em geral, o problema parece ser o mesmo. Podemos fechá-lo e continuar a investigação lá em cima, pois tem mais detalhes?

+1
Eu também recebo esse problema, e isso acontece com frequência alternar navegador

Fechar como @askday também colocou uma reprodução melhor no # 1693. Por favor, reabra se OP mencionou algo diferente.

Mesmo erro para mim.
React 0,31
Depuração do Chrome.
Em uso normal, não há problema.

console.error: "Tentativa de transição do estado RESPONDER_INACTIVE_PRESS_IN para RESPONDER_ACTIVE_LONG_PRESS_IN , que não é compatível. Isso provavelmente se deve ao fato de Touchable.longPressDelayTimeout não ter sido cancelado."

Object.console.error
YellowBox.js: 60
Constructor._handleLongDelay
Touchable.js: 595
JSTimersExecution.callbacks. (Anônimo
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

Também estou tendo esse erro, mas apenas no Android. O IOS está funcionando conforme o esperado.

+1

+1

+1

+1

+1

+1

+1

+1 mesmo erro apenas no Android, mas iOS funciona bem.

+1 igual a @ binzailani3136

+1

Parabéns por este bug ter sido selecionado como um dos problemas mais notórios do RN0.39

+1

+1

+1

+1

+1

+1

+1

+1

Gente, seus + 1s não são úteis, e isso está em # 1693

+1

+1

+1

+1

+1

+1

Como vejo muitas pessoas parecem sempre ter esse problema, e este está fechado, então crio um novo aqui: # 11989

+1

+1

@magrinj , por que este problema foi fechado quando tantos, incluindo eu agora no RN 0.37, continuam a atingir este erro? Existe uma solução temporária do lado do aplicativo?

@fungilation Talvez eu tenha cometido um erro ao abrir um novo tíquete, porque este é aberto e fala sobre o mesmo problema: # 1693

Corrigido após adicionar visualização

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

@Yadro , você quer dizer inserir correções adicionais do View do lado do aplicativo ou a RN pode consertar internamente fazendo isso?

hm, meu inglês é ruim, mas inserir visualização adicional resolve este problema

OK. Vou relatar se ainda tiver esse problema com visualizações adicionais

+1

Eu só recebo isso quando estou em depuração remota. Isso não acontece normalmente. RN .41.2. Windows 10. Android

+1

@ ckwong90 , alguns aqui, só aparecem durante a depuração remota
RN .41.2. macOS Sierra 10.12.3

  • 1 mesmo problema

O mesmo aqui, Android 6.0, RN mais recente, depuração remota

+1

+1

+1

Encontro este problema com react-native-button e modelo de depuração no Chrome

Resolvi o problema envolvendo o componente Botão com Visualização.

+1

Já envolvi os componentes em uma View, mas recebi este erro. Depois disso, qualquer TouchableHighlight em meu aplicativo gerava esse erro. Resolvido (temporário?), Limpando os dados do aplicativo nas configurações. O problema ocorreu no Android, Emulator, Win10, RN 0.42.3 com "Debug JS Remotely" sem "Hot Reloading".

mesmo aqui

+1

  • 1

+1 acontece quando eu mudo de navegador

+1

Tenho o mesmo erro. Reconstruir o aplicativo do XCode resolveu para mim.

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

Algum progresso nisso?

Esse problema ocorre quando eu depuro remotamente.

qualquer um?!

depois de desenvolver por 3 semanas, de repente esse problema aparece quando eu uso o componente Fab nativo. Espero que F8 possa corrigir esse problema

Tenho o mesmo problema,

+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

A mesma coisa

+1

+1

+1

+1

+1 .... este erro só aparece depois que eu começo a usar fetch ...

mesmo problema, visualização adicional não funciona

+1

+1

contagem ++

+1

PARE com o +1 spam. Basta dar um like na postagem original ou em qualquer comentário 👍🏼 se você vir o mesmo.

@fungilation 👍

+1

Isso só acontece com a depuração remota e eu corrigi isso temporariamente fazendo o seguinte:

  1. Abra as configurações do Android
  2. Apps
  3. Clique no seu aplicativo
  4. Armazenar
  5. Limpar cache

Nota: Esta é realmente uma solução temporária . Ele ainda aparece repetidamente de vez em quando.

Obrigado @Jarrio

pensamentos de @lukemiles ?

+1

+1

+1

A solução tmp de @Jarrio funciona por enquanto

+1

+1

+1

rn 48 +1,

+1

rn 48 + 1

O problema ocorreu apenas se a depuração js remota estiver habilitada ... no modo normal, está funcionando bem.

rn 49.3+ 1

+1

+1

+1

image+1

Eu mudo TouchableHighlight para TouchableOpacity , isso não acontece

RN.50 +1

@Jarrio ainda joga o erro de cara no android

+1 0,47

+1

POR FAVOR, PARE +1 !!!

uh ... mais 1, então

+1

+1

+1 por 0.48.3

+1 em 0.51.0

1 é bom, adoro isso. Acontece de 0,50

+1

+1

+1

com reagente nativo 0,51,0

Eu 'consertei' isso configurando manualmente a hora do dispositivo no Android. Certifique-se de que a nova hora será igual à do seu computador (vise a alteração do próximo minuto), confirme a alteração da hora no mesmo segundo em que a hora do computador mudará para o próximo minuto.

+1

+1

+1

+1

+1

+1

A solução para mim foi

  1. Certifique-se de que o telefone e o PC tenham o mesmo fuso horário
  2. Atualizar manualmente a hora no pc: Data e hora -> guia Hora da Internet -> Alterar configurações -> Atualizar hora
  3. Ative a atualização automática de hora nas configurações do Android e, em seguida, desative-a
  4. Reinicie o aplicativo

+1

Em LibrariesComponentsTouchableTouchableHighlight.js, substitua

touchableGetLongPressDelayMS: function () {
return this.props.delayLongPress;
},

com

touchableGetLongPressDelayMS: function () {
return this.props.delayLongPress === 0? 0:
this.props.delayLongPress || 500;
},

Isso resolveu o problema para mim.

+1

+1

Eu tive o mesmo problema no Android quando
a) meu celular foi conectado ao meu PC via USB
b) Usei depuração remota via rede

Desconectar o USB resolveu o problema. Não tenho ideia se existe uma relação causal, no entanto.

Editar: Depois de obter problemas adicionais com tempos limite assíncronos, verifiquei a hora atual no PC e no dispositivo Android via

adb shell date && date .

Houve uma discrepância de 5 segundos. Pode-se ficar tentado a adivinhar que há uma inconsistência em como o RN lida com a hora atual ao depurar remotamente.
Através da

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

Identifiquei o culpado no meu caso: a hora do sistema do meu dispositivo Android estava errada por 5 segundos. Reinicializar o dispositivo Android corrigiu a discrepância.

Acabei de verificar a hora no dispositivo Android e no meu Mac com: adb shell date && date . Estava diferindo por mais de 2 minutos. Então eu ativei a configuração automática de hora no meu dispositivo Android e executei o mesmo comando novamente e voilá a hora foi sincronizada, mas o fuso horário não era o mesmo, embora em ambos (dispositivo Android e Mac) a configuração de fuso horário fosse automática. Então, desativei a configuração automática de fuso horário no meu dispositivo Android e configurei-o manualmente para o correspondente e o erro desapareceu.

+1

+1

A configuração automática da hora no dispositivo Android e a configuração automática da hora no computador resolveram o problema

no Ubuntu, sincronizei a hora do sistema com a hora ADB atual fazendo:

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

+1

+1

Bloqueando devido a comentários repetitivos de +1. Uma solução foi postada há muito tempo por @ Larry-Liu2016 aqui . Em resumo, verifique o relógio dos seus dispositivos.

Esta página foi útil?
0 / 5 - 0 avaliações