Objekte Reagieren Nativen
Ich habe ein Stück text und jedes mal, wenn Sie auf Sie klicken, ändert sich der text auf das nächste Element in das Objekt. Ich brauche auch die Namen der eine sagt den text, so habe ich ein mehrdimensionales array wie dieses:
let texts = {
0:{
"name" : "Bob",
"text" : "Hello, this is a text",
},
1:{
"name" : "Peter",
"text" : "Hey there.",
},
};
Dies ist mein Status:
this.state = {
textNumber: 0,
};
Ist und diese Funktion rufe ich onPress:
nextScene = () => {
if(this.state.textNumber >= Object.keys(texts).length-1){
}
else{
this.setState({textNumber: this.state.textNumber+1})
}
};
Funktioniert es perfekt so wie ich es will. Aber meine Frage ist: ist dies die Art, wie es getan werden soll, Reagieren die Einheimischen? Oder gibt es eine bessere Möglichkeit?
- Sie sind mit einem lokalen Zustand zu halten, der die aktuelle Zahl, die ist gut, bis auf das Sie zugreifen möchten es aus anderen Komponente der App. Sie müssen möglicherweise den redux zu bestehen, Sie in einen globalen Zustand.
- Das was du da hast ist kein array, sondern ein mehrdimensionales Objekt. Dies ist erwähnenswert im Fall erwarten Sie, dass der array-ähnliche Verhaltensweisen und Methoden existieren, auf die es (wie push, map, etc.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Möchten Sie wahrscheinlich ein array von Objekten:
Dann können Sie tun:
Wenn Sie möchten, eine Schleife, können Sie auch Folgendes tun:
Über Ihre Frage, da gibt es keinen Unterschied zwischen tun dies, Reagieren Nativen oder nicht. Dies ist lediglich JS.
Es ist in Ordnung zu halten, die in den Zustand (beide Reagieren oder RN). Wenn Sie wollen mehr ausgefallene Lösung, die Sie schreiben, ein
HOC
zu verwalten, die den Zustand der Komponente (siehe zum Beispiel recompose).