Teilen Sie uns mit, welche Versionen Sie verwenden:
Actions.refresh() aktualisiert die aktuelle Szene.
Wenn mein Ansatz falsch war oder Actions.refresh eine Anforderung hat, geben Sie mir bitte die Informationen
const ConnectRouter = connect()(Router);
const Routes = () => (
<ConnectRouter>
<Scene key="root">
<Scene key="launchScreen" component={LoadingFull} hideNavBar />
<Scene key="login" component={LoginForm} hideNavBar type={ActionConst.RESET} />
<Scene key="lostPassword" component={LostPasswordForm} hideNavBar />
<Scene key="dashboard" component={Dashboard} hideNavBar type={ActionConst.RESET} />
<Scene key="search" component={SearchResult} hideNavBar />
</Scene>
</ConnectRouter>
);
Als ich bei der Suchszene war (einfache Komponente mit Status), habe ich versucht, die Szene mit Actions.refresh zu aktualisieren. Aber irgendwie ging das gar nicht.
+1
Ich möchte renderBackButton aus der Szene verwenden. Mein Beispielcode,
public componentWillMount (): void {
Actions.refresh({
renderBackButton: this.renderBackButton.bind(this),
onRight: this.onRightButtonPress.bind(this)
});
}
Es funktioniert nicht. Ich denke, es ist das gleiche Problem.
Probieren Sie leftButton
anstelle von renderBackButton
aus und übergeben Sie ihm Component.
@kesha-antonov Es funktioniert nicht. Ich erstelle dafür ein neues Thema.
Für mich geht das. rnrf-4-beta22
leftButton
für linkes Symbol
right
für das rechte Symbol
öffentliche KomponenteWillMount (): void {
this.props.navigation.setParams({
onRight: () => {this.myOnRight();},
rightTitle:'neuerTitel',
});
}
Es funktioniert für mich.
Jesus, ich bin hierher gekommen, um nach einer Antwort auf das ursprüngliche Problem zu suchen.
Bitte versuchen Sie nicht, bei nicht verwandten Themen Huckepack zu nehmen!
Ich habe das gleiche Problem, ABER beim Aktualisieren des Stores (mobx)
<strong i="7">@observer</strong>
class Custom extends Component {
render() {
// prints every time I update state, this's ok!
console.log('update', store.session.get('logged'))
return (
<Router>
<Scene key="root">
<Scene key="login"
component={login}
type="replace"
onEnter={() => {
// ONLY enter here once
console.log('onEnter');
return store.session.get('logged')
}}
success="recents"
/>
<Scene key="recents" component={recents} />
</Scene>
</Router>
)
}
}
Ich habe versucht, das 'Re-Rendering' mit Actions.refresh()
nach der Aktualisierung des Stores auszulösen, aber onEnter
reagiert nicht.
_onPressButton() {
store.session.set('logged', !store.session.get('logged')) // invert the value in store
Actions.refresh() // tested with { key: 'login' } too
}
@aksonov Könnten Sie uns bitte in die richtige Richtung weisen? :beten:
Hallo
Ich habe das gleiche Problem ... Wenn ich versuche, mit Actions.refresh() zu aktualisieren, passiert nichts
import React, { Component } from 'react';
import {
View,
Text,
Button,
} from 'react-native';
import { Actions } from 'react-native-router-flux';
export default class Types extends Component {
constructor(props) {
super(props);
console.log("Constructor Types")
}
componentWillMount() {
console.log('Will mount Types')
}
componentWillUpdate() {
console.log("Will Update Types")
}
componentWillUnmount() {
console.log("will Unmont Types")
}
render() {
console.log("render Types")
return (
<Button title='refresh' onPress={() => Actions.refresh()}/>
)
}
}
Das gleiche Problem hier, ich verwende Redux und wenn ich versuche, die rechte Schaltfläche zu aktualisieren, wird sie einfach nicht aktualisiert.
Bitte reproduzieren Sie das Problem mit Beispielprojekt.
Actions.refresh({ key: Actions.currentScene });
funktioniert beim zweiten Mal nicht
https://github.com/aksonov/react-native-router-flux/issues/2862
@Aksonov
@jaysassyinfotech
Actions.refresh({ key: Actions.currentScene }); funktioniert beim zweiten mal nicht
Es funktioniert, wenn du das machst :)
Actions.refresh({Schlüssel: Math.random()})
@cosinus84 Sie, mein Herr, sind ein Lebensretter.
@cosinus84 Es ist wirklich Arbeit. Beeindruckend
Aber gibt es eine Erklärung, warum Math.random() alle Tricks macht?
@cosinus84 du Rocker (y)
Hoffentlich wird für die neueste Version jetzt kein Zufall benötigt
@aksonov Können Sie bitte die Requisiten (mit ihren Funktionen) auflisten, die wir in Actions.refresh() verwenden können, da die Scene-Requisiten hier nicht zu funktionieren scheinen.
Sie können die Beispiel-App und ihre Aktualisierungsaufrufe überprüfen - sie funktioniert dort mit der neuesten Version 4.0.5 einwandfrei. Fühlen Sie sich frei, das Beispiel zu klonen und entsprechend zu ändern, um das Problem zu demonstrieren.
Ja, es funktioniert gut, aber ich schlage vor, dass Sie eine Liste von Requisiten erstellen, die mit Aktualisierungsaufrufen verwendet werden sollen, da wir möglicherweise nicht wissen, welche wann verwendet werden sollen.
Um beispielsweise den Zurück-Button zu rendern, müssen wir leftButton
prop verwenden, aber das wusste ich nicht, bis ich den Kommentar von @kesha-antonov gelesen habe
es funktioniert
@preetluv magst du mir sagen, wie du es behoben hast?
@preetluv siehe die Antwort von cosinus84
Sie können Folgendes tun: -
Aktionen.pop()
setTimeout(()=> Actions.refresh({"somePropToRefresh":Math.random(),"yourProp":"um die
vorheriger Bildschirm beim Zurückgehen"}),0.5);
Sie können die "yourProp" in der KomponenteWillReceiveProps im vorherigen Bildschirm überprüfen, nachdem Sie dies getan haben.
Ich benutze react-native-router-flux 4.2.0-beta.2
und es funktioniert mit setTimeout
Hilfreichster Kommentar
@jaysassyinfotech
Actions.refresh({ key: Actions.currentScene }); funktioniert beim zweiten mal nicht
Es funktioniert, wenn du das machst :)
Actions.refresh({Schlüssel: Math.random()})