2015-09-28 12 views
8

jeśli mam element tekstowy wejściowy Reactjs z przypisanym do niego zdarzeniem onPaste, w jaki sposób mogę uzyskać wklejoną wartość w odpowiedzi?Jak wkleić wartość z zdarzenia Reactjs onPaste

w tej chwili to, co dostaję na konsoli, to SyntheticClipboardEvent z wszystkimi właściwościami jako null. Czytałem, że console.log to sprawdzanie asynchronizacji, więc dlatego większość wartości ma wartość zerową, ponieważ patrzą w przyszłość.

Jednak zastanawiam się, jak uzyskać tę wartość.

Cheers

Odpowiedz

16
onPaste: function(e) { 
    console.log(e.clipboardData.getData('Text')); 
}, 
+0

kiedy używam tego, że daje mi więcej niż jedną wartość ze schowka – PositiveGuy

0

danych można znaleźć na clipboardData i analizowany ciąg następująco:

event.clipboardData.items[0].getAsString(text=>{ 
    // do something 
}) 
2

pierwszy obejmuje moduł Facebook DataTransfer:

var DataTransfer = require('fbjs/lib/DataTransfer'); 

następnie można do:

onPaste: function (evt) { 
     var data = new DataTransfer(evt.clipboardData); 

     var text = data.getText(); 
     var html = data.getHTML(); 
     var files = data.getFiles(); 
}, 

że powitanie;)

2

https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types

Formaty są ciągami Unicode podając typ lub format danych, ogół podane przez typ MIME. Niektóre wartości, które nie są typami MIME , są specjalne ze względu na starsze wersje (na przykład "tekst").

przykład:

onPaste: function(e) { 
    console.log(e.clipboardData.getData('Text')); 
    console.log(e.clipboardData.getData('text/plain')); 
    console.log(e.clipboardData.getData('text/html')); 
    console.log(e.clipboardData.getData('text/rtf')); 

    console.log(e.clipboardData.getData('Url')); 
    console.log(e.clipboardData.getData('text/uri-list')); 
    console.log(e.clipboardData.getData('text/x-moz-url')); 
} 
Powiązane problemy