2016-08-04 23 views
0

Ich habe eine JSON-Datei mit HTML-Elementen (mehr als 20) Details wie, ID, Wert, Typ usw.OnChange-Ereignis für Elemente in HTML-Set mit DangerouslySetInnerHTML in ReactJS

ich einen großen String mit allen erschaffe die Elemente erstellt und Einfügen in meine React JS-Komponente mit 'DangerouslySetInnerHTML'. Aber ich möchte OnChange-Ereignis für diese Ereignisse verwenden.

Dies funktioniert nicht sicher, aber ich habe keine Optionen für OnChange-Ereignis auf Anforderung aufrufen.

Ich bin ein Neuling in React JS, bitte werfen Sie etwas Licht darauf.

+0

Warum eine Zeichenkette erstellen, anstatt die Elemente erstellen zu lassen? – ScientiaEtVeritas

+0

Die JSON-Datei, die meine Elemente hat, wird sich weiter verändern, es ist eher, als würde ich ein HTML-Snippet erstellen, indem ich die JSON-Datei analysiere – BigHairDev

+0

Werfen Sie einen Blick auf seine, ich denke, das wird Ihre Probleme lösen: https://Stackoverflow.com/questions/31805713/meiden-mit-gefährlich-esterninnerhtml-wenn-html-in-react-js-wraw-1 = 1 – ScientiaEtVeritas

Antwort

0

Eine Lösung, die immer funktioniert, ist die Verwendung von jQuery, ReactJS und jQuery funktionieren gut zusammen. Die folgende Lösung funktioniert auch für dynamisch generierte Elemente.

$(document).on('change', 'your-selector', this.onChangeForAllElements); 

onChangeForAllElements(e) { 
    // console.log('onChange INVOKED', e); 
} 

Aber wenn Sie Funktionalität reagieren verwenden, möchte ich empfehlen, die Reaktion zu nutzen Elemente zu erstellen, anstatt die unsichere DangerouslySetInnerHTML Verfahren zur Verwendung.

+0

Danke für die Antwort, was ist, wenn ich nicht 'statischer' Selektor 'erwähnen möchte, d. H. Gibt es einen Weg, wo ich etwas so erwähnen kann, rufen Sie diese Methode onChange-Ereignis auf. – BigHairDev

+0

So erstellen Sie Ihr HTML-Snippet beim Parsen durch JSON. Du könntest dort auch die jQuery-Sache mit einem dynamischen Selektor aufrufen - während des Parsings hast du die ID, hast du gesagt. Aber - alternativ - und wie ich dich verstehe - alle Elemente, die erstellt werden, sollten das gleiche Ereignis haben, oder? Dann könnte Ihr Selektor der Nachfahrenselektor auf einem gemeinsamen Elternteil sein, dann könnte er vielleicht statisch sein. – ScientiaEtVeritas

+0

Können Sie bitte einen Beispielcode teilen, damit ich ein wenig klarer verstehen kann – BigHairDev