Wie man svg-animation mit Animierten in reagieren-native
ReactNative:
<ScrollView style={styles.container}>
<Svg
height="100"
width="100">
<Circle
cx="50"
cy="50"
r="50"
stroke="blue"
strokeWidth="2.5"
fill="green"/>
</Svg>
</ScrollView>
Ich will Kreis-Skala mit Animiert.Wert. Ich habe dies ausprobiert :
let AnimatedScrollView = Animated.createAnimatedComponent(ScrollView);
let AnimatedCircle = Animated.createAnimatedComponent(Circle);
<ScrollView style={styles.container}>
<Svg
height="100"
width="100">
<AnimatedCircle
cx="50"
cy="50"
r={this.state.animator}
stroke="blue"
strokeWidth="2.5"
fill="green"/>
</Svg>
</ScrollView>
Dann flash zurück mit kein Fehler.
Wie kann ich tun?
update 2016.8.24
Ich eine neue Methode gefunden, statt requestAnimationFrame :
Konstruktor:
this.state = {
animator: new Animated.Value(0),
radius: 1,
};
this.state.animator.addListener((p) => {
this.setState({
radius: p.value,
});
});
render:
<Circle
cx="50"
cy="50"
r={this.state.radius}
stroke="blue"
strokeWidth="2.5"
fill="green"/>
Aber hier die guides Rat gibt, verwenden Sie es sparsam, da es möglicherweise Auswirkungen auf die Leistung in der Zukunft.
also, was ist der beste Weg ?
- Ich habe versucht, diesen Ansatz, aber der Hörer wurde nie genannt. Ich bin mit Reagieren.createClass().
- Haben Sie jemals finden eine gute Lösung für diese, die sich nicht um die Aktualisierung der Staat mit dem Hörer? Danke!
- Gefunden eine ideale Lösung, macht Gebrauch von Ihrem
addListener
aber ersetztsetState
mitsetNativeProps
machen Sie viel performant. - Welches Paket verwenden Sie zum Rendern von SVG-Grafiken in RN?
- Könntest du nicht einfach verwenden Transformation: [{ Skala: animatedValue }] auf die Animierte.Anzeigen um ihn herum? Vielleicht bin ich falsch.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
setNativeProps
für Viel Bessere Leistung.Hab ich etwas mehr basteln und fand eine weitere leistungsfähige Methode, die macht die Verwendung von
addListener
undsetNativeProps
.Konstruktor
Rendern
Ergebnis
Und dies ist, wie die animation aussieht, wenn der 2 Sekunden (2000 Millisekunden) timeout-Trigger.
So, das wichtigste was Sie ändern musste, war die Verwendung von
setNativeProps
anstattsetState
in Ihrem Hörer. Dies macht einen systemeigenen Aufruf und umgeht re-die Berechnung des gesamten Bauteils, in meinem Fall war sehr Komplex und langsam zu tun.Danke für führende mich in Richtung der Zuhörer Ansatz!
useNativeDriver
undinterpolate
so dass wir nicht haben, um auf dem neuesten Stand? Ich brauche eine animierte SVG-Grafiken und wollen versuchen, dass.NativeDriver
undinterpolate
so dass wir nicht haben, um auf dem neuesten Stand?habe ich eine einfache svg-Animationen-Bibliothek basiert auf einem Projekt, von einer anderen person, für jetzt, nur Pfade, die animiert werden können, aber noch mehr Formen und Animationen werden in Zukunft Hinzugefügt werden
https://www.npmjs.com/package/react-native-svg-animations
Keine besseren Antworten, und ich implementiert durch hinzufügen der listener
Animated.Value
variabel, Sie können Holen Sie mehr info aus meiner Beschreibung der Frage.