рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдк рдХрд┐рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
рдХреНрд░рд┐рдпрд╛рдПрдБред рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВ () рд╡рд░реНрддрдорд╛рди рджреГрд╢реНрдп рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВред
рдпрджрд┐ рдореЗрд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЧрд▓рдд рдерд╛, рдпрд╛ Actions.refresh рдХреА рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░реЗрдВ
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>
);
рдЬрдм рдореИрдВ рд╕рд░реНрдЪ рд╕реАрди (рд╕реНрдЯреЗрдЯ рдХреЗ рд╕рд╛рде рдкреНрд▓реЗрди рдХрдВрдкреЛрдиреЗрдВрдЯ) рдкрд░ рдерд╛, рддреЛ рдореИрдВ Actions.refresh рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реАрди рдХреЛ рд░рд┐рдлреНрд░реЗрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рддрд░рд╣ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХрд╛рдо рдирд╣реАрдВ рдЖрдпрд╛ред
+1
рдореИрдВ рджреГрд╢реНрдп рд╕реЗ рд░реЗрдВрдбрд░рдмреИрдХрдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб,
public componentWillMount (): void {
Actions.refresh({
renderBackButton: this.renderBackButton.bind(this),
onRight: this.onRightButtonPress.bind(this)
});
}
рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣реА рдореБрджреНрджрд╛ рд╣реИред
renderBackButton рдХреЗ рдмрдЬрд╛рдп renderBackButton
leftButton
рдЖрдЬрд╝рдорд╛рдПрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдХрдВрдкреЛрдиреЗрдВрдЯ рдкрд╛рд╕ рдХрд░реЗрдВред
@ рдХреЗрд╢рд╛-рдПрдВрдЯреЛрдиреЛрд╡ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рддрд╛ рд╣реВрдВред
рдЗрд╕рд╕реЗ рдореЗрд░рд╛ рдХрд╛рдо рдмрдирддрд╛ рд╣реИред rnrf-4-рдмреАрдЯрд╛22
leftButton
рдмрд╛рдПрдВ рдЖрдЗрдХрди рдХреЗ рд▓рд┐рдП
right
рд╕рд╣реА рдЖрдЗрдХрди рдХреЗ рд▓рд┐рдП
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдШрдЯрдХ рд╡рд┐рд▓рдорд╛рдЙрдВрдЯ (): рд╢реВрдиреНрдп {
this.props.navigation.setParams({
рдСрдирд░рд╛рдЗрдЯ: () => {this.myOnRight ();},
рд╕рд╣реА рд╢реАрд░реНрд╖рдХ: 'рдирдпрд╛ рд╢реАрд░реНрд╖рдХ',
});
}
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЬреАрд╕рд╕, рдореИрдВ рдпрд╣рд╛рдВ рдореВрд▓ рдореБрджреНрджреЗ рдХреЗ рдЙрддреНрддрд░ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдЖрдпрд╛ рдерд╛ред
рдХреГрдкрдпрд╛, рдЧреИрд░-рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ рдкрд░ рдЧреБрд▓реНрд▓рдХ рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ!
рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ рд▓реЗрдХрд┐рди рд╕реНрдЯреЛрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп (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>
)
}
}
рдореИрдВрдиреЗ рд╕реНрдЯреЛрд░ рдХреЗ рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд╛рдж Actions.refresh()
рдХреЙрд▓рд┐рдВрдЧ 'рд░реА-рд░реЗрдВрдбрд░' рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди onEnter
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИред
_onPressButton() {
store.session.set('logged', !store.session.get('logged')) // invert the value in store
Actions.refresh() // tested with { key: 'login' } too
}
@aksonov рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? :рдкреНрд░рд╛рд░реНрдердирд╛:
рдирдорд╕реНрддреЗ
рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ ... рдЬрдм рдореИрдВ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд░реАрдлреНрд░реЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВ() рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ
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()}/>
)
}
}
рдпрд╣рд╛рдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдореИрдВ рд░реЗрдбрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЬрдм рдореИрдВ рд╕рд╣реА рдмрдЯрди рд░реАрдлреНрд░реЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдХреГрдкрдпрд╛ рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░реЗрдВред
Actions.refresh({ key: Actions.currentScene });
рджреВрд╕рд░реА рдмрд╛рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛
https://github.com/aksonov/react-native-router-flux/issues/2862
@aksonov
@jaysassyinfotech
рдХреНрд░рд┐рдпрд╛рдПрдБред рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВ ({рдХреБрдВрдЬреА: рдХреНрд░рд┐рдпрд╛рдПрдБред рд╡рд░реНрддрдорд╛рди рджреГрд╢реНрдп}); рджреВрд╕рд░реА рдмрд╛рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛
рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ :)
рдХреНрд░рд┐рдпрд╛рдПрдБред рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВ ({рдХреБрдВрдЬреА: Math.random ()})
@cosinus84 рд╕рд░ рдЖрдк рдЬреАрд╡рди рд░рдХреНрд╖рдХ рд╣реИрдВред
@ cosinus84 рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рд╣реИред рдмрд╣реБрдд рдЦреВрдм
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд╣реИ рдХрд┐ Math.random() рд╕рднреА рдЪрд╛рд▓реЗрдВ рдХреНрдпреЛрдВ рдХрд░рддрд╛ рд╣реИ?
@cosinus84 рдЖрдк рд░реЙрдХ рдореИрди (y)
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдм рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
@aksonov рдХреГрдкрдпрд╛ рдЖрдк рдЙрди рдкреНрд░реЙрдкреНрд╕ (рдЙрдирдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде) рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо Actions.refresh() рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╕реАрди рдкреНрд░реЙрдкреНрд╕ рдпрд╣рд╛рдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЖрдк рдЙрджрд╛рд╣рд░рдг рдРрдк рдФрд░ рдЗрд╕рдХреЗ рд░реАрдлреНрд░реЗрд╢ рдХреЙрд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рдирд╡реАрдирддрдо 4.0.5 рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд▓реЛрди рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред
рд╣рд╛рдВ, рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рд░рд┐рдлреНрд░реЗрд╢ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЙрдкреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдПрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реЛрдВрдЧреЗ рдХрд┐ рдХрдм рдХрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмреИрдХ рдмрдЯрди рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ leftButton
рдкреНрд░реЛрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдЬрдм рддрдХ рдореИрдВ @ рдХреЗрд╢рд╛-рдПрдВрдЯреЛрдиреЛрд╡ рдХреА рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рдкрдврд╝рддрд╛
рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ
@preetluv рдорди рдореБрдЭреЗ рдмрддрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛?
@preetluv рджреЗрдЦреЗрдВ cosinus84 рдХрд╛ рдЬрд╡рд╛рдм
рдЖрдк рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:-
рдХреНрд░рд┐рдпрд╛рдПрдБред рдкреЙрдк ()
setTimeout(()=> Actions.refresh({"somePropToRefresh":Math.random(),"yourProp":" рд░рд┐рдлреНрд░реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдкрд┐рдЫрд▓реА рд╕реНрдХреНрд░реАрди рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдкрд░"}),0.5);
рдЖрдк рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкрд┐рдЫрд▓реА рд╕реНрдХреНрд░реАрди рдореЗрдВ рдХрдВрдкреЛрдиреЗрдВрдЯ WillReceiveProps рдореЗрдВ "yourProp" рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ react-native-router-flux 4.2.0-beta.2
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@jaysassyinfotech
рдХреНрд░рд┐рдпрд╛рдПрдБред рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВ ({рдХреБрдВрдЬреА: рдХреНрд░рд┐рдпрд╛рдПрдБред рд╡рд░реНрддрдорд╛рди рджреГрд╢реНрдп}); рджреВрд╕рд░реА рдмрд╛рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛
рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ :)
рдХреНрд░рд┐рдпрд╛рдПрдБред рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВ ({рдХреБрдВрдЬреА: Math.random ()})