Warum arbeitet Radium nicht mit Reagenz (Clojurescript)?

8

Ich habe versucht, FormidableLabs / radium · GitHub mit Reagenz-Projekt / Reagenz · GitHub , aber ich bin in eine Sackgasse geraten.

Ich konnte es teilweise funktionieren lassen, indem ich die Reagenzfunktion create-class so "hackte" (das ist fast dasselbe wie das Original, ich habe gerade js/Radium wrapper hinzugefügt).

%Vor%

Dann habe ich die Funktion für die Komponente wie folgt gemacht

%Vor%

Und ich verwende es irgendwo in einer anderen Reagenz-Renderfunktion wie: [radium/radium]

  • Das Zusammenfügen von Vektorstilen funktioniert also gut (das ist die Radium-Funktion).
  • Die Medienabfrage funktioniert auch, aber nur beim ersten Rendern reagiert sie nicht dynamisch, wenn ich die Bildschirmgröße ändere.
  • :hover :focus :active funktioniert überhaupt nicht

Ich habe im Radium-Code gegraben, um herauszufinden, was los ist. Ein gutes Zeichen war, dass Radium der Komponente korrekt onMouseEnter onMouseLeave reps zuweist und :hover state der Komponente auf true setzt.

Dies wird richtig gefeuert: Ссылка

Das Problem ist, dass render function, die eine erneute Render-Komponente basierend auf einem neuen Status (geändert durch Radium) haben soll, überhaupt nicht ausgelöst wird. Diese Funktion render : Ссылка Wenn ich JS Radium-Beispiele (kein Clojurescript und Reagent) verwende, wird diese Renderfunktion für jedes onMouseEnter onMouseLeave ausgelöst. Mit Reagenz überhaupt nicht.

Blockiert Reagent das erneute Rendern irgendwie, wenn sich der Komponentenstatus ändert?

    
ma2s 02.09.2015, 14:19
quelle

1 Antwort

5

Ich habe den grundlegenden Button Radium-Beispiel übersetzt, der mit Reagenz verwendet werden soll:

%Vor%

Das Wichtigste ist, dass ich button Reagenzkomponente in eine React-Komponente umgewandelt habe (mit reactify-component ), dann durch Radium geleitet und dann wieder in etwas konvertiert habe, das ich in Reagenz konsumiere (mit adapt-react-class ).

In meinem Beispiel funktioniert hover .

Hoffe, das hilft.

Ich habe die Arbeitsversion auf GitHub platziert.

    
ducky 04.07.2016, 11:31
quelle

Tags und Links