2015-08-06 12 views
6

Ho una vista a scorrimento con una griglia di immagini quando premo a lungo su un'immagine Mi piacerebbe interrompere la propagazione degli eventi del mouse alla scrollview e monitorare solo i movimenti. Con l'intento di reinizializzare la propagazione su stampa. Qualcuno sa come?Come interrompere la propagazione dell'evento tocco in React-Native

+0

Avete mai trovato una soluzione a questo problema? –

risposta

0

Dovresti dare un'occhiata ai metodi di Gesture Responder: https://facebook.github.io/react-native/docs/gesture-responder-system.html#responder-lifecycle. In realtà, anche il modo più semplice sarà quello di dare un'occhiata al PanResponder https://facebook.github.io/react-native/docs/panresponder.html - vedi prima l'esempio di UIExplorer per vederlo in funzione: https://github.com/facebook/react-native/blob/master/Examples/UIExplorer/ResponderExample.js. Non sono sicuro se questo gestirà il tuo caso a lungo termine?

+0

L'ho già trovato e ho iniziato a usarlo. Ho dimenticato di aver postato la domanda. Fa altri problemi con quello che sto cercando di realizzare ma funziona. Io uso un longpress per girare scrollenabled e quindi utilizzare i ganci del ciclo di vita del responder per afferrare gli eventi e guardare per spostare e rilasciare. – aintnorest

0

Ho risolto questo problema avvolgendo il mio evento stampa con un metodo di classe che impostava la variabile interna su true, quindi eseguiva la logica originale e, al termine, impostava nuovamente la variabile interna su false. Quindi, è possibile avvolgere il gestore eventi del componente contenitore per verificare se la variabile interna è impostata su true o false. per esempio:

<TouchableOpacity onPress={this.doSomething1}> 
    <TouchableOpacity onPress={this.doSomething2}> 
     <Image ... /> 
    </TouchableOpacity> 
</TouchableOpacity> 

doSomething1() { 
    this.preventDefault = true; 
    doSomeLogic(); 
    this.preventDefault = false; 
} 

doSomething2() { 
    if(!this.preventDefault) { 

    } 
} 
Problemi correlati