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).
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]
: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?
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.
Tags und Links clojurescript reagent