So habe ich gerade angefangen zu lernen React und Redux, also ich entschuldige mich, wenn dies eine sehr noobish Frage ist. Aber ich habe mein Google-Zitat geleert und kann nichts finden, was mir hilft.Reagieren Komponente: Foundation Modal (Reveal) wird nicht geöffnet
Mein Problem ist: Ich arbeite auf einer Website mit React, Redux und Foundation 6. Eine meiner React-Komponenten hat einen Link, der bei einem Klick ein Modal mit einer bestimmten Warnung für diesen Link öffnet. So habe ich eine Komponente mit meinem modal Markup erstellt:
ComponentModal.js:
import React, { PropTypes } from 'react';
const Modal =() => (
<div className="reveal" id="exampleModal1" data-reveal>
<h1>Awesome. I Have It.</h1>
</div>
);
export default Modal;
Die Komponente mit einem Link ein paar Sachen macht, aber im Grunde haben eine
<a data-open="exampleModal1">Click me for a modal</a>
tag in es ist render.
Und obwohl die Überprüfung der Seite bestätigt, dass das Markup für das Modal existiert, passiert nichts, wenn ich auf den Link klicke.
Wenn ich das Popup von der Komponente in das DOM verschiebe, funktioniert die Verbindung.
Einige Versuch und Irrtum zeigt mir, dass, wenn ich manuell $(document).foundation();
in der Konsole ausführen, wenn ComponentModal gerendert wird, das Popup wie vorgesehen funktioniert.
Also meine Frage ist ein bisschen zwei Fragen: 1. Wie kann ich, in Redux, $(document).foundation();
ausführen, wenn mein ComponentModal fertig Rendering ist? Vielleicht irre ich mich, aber ich habe nicht die componentDidMount()
Methode zur Verfügung, wo es Sinn machen könnte, diesen Anruf zu machen? 2. Ist das ein völlig falscher Weg?
Hoffe, es ist nicht zu verwirrend und nicht zu dumm, eine Frage :)
Ich bin kein großer Fan von jQuery, aber ich mag Foundation. Meine Seite ist keine App für eine einzelne Seite, daher wird Foundation verwendet, um einige Elemente um die statischeren Teile der Seite herum zu stylen. Das würde ich gerne ändern. Aber vielleicht sollte ich nach Alternativen für den modalen Teil suchen. Aber meine REDUX-Frage steht immer noch - ist die ComponentDidMount-Methode verfügbar und wäre es der richtige Ort? Ein Kollege hat es mir gerade gesagt, und ich sollte es benutzen, also werde ich es versuchen. –
Kein 'componentDidMount' ist * nicht * von redux! sein Teil der Reaktion! https://facebook.github.io/react/docs/component-specs.html –
müssen Sie das Modal zu einer Komponente anstelle einer Funktion ändern. und ja, Sie haben Zugriff auf "componentDidMount" zu reagieren –