我的场景中有自定义导航栏:
<Scene key="myPage"
component={MyPage}
navBar={NavBarCustom}
hideNavBar={false}/>
...
class NavBarCustom extends Component {
constructor(props) {
super(props);
}
onExitPressed(){
App.exit();
}
render() {
return (
<View style={styles.navBar}>
<View style={styles.leftContainer}>
<Image
style={styles.logo}
source={require('./../../res/ic_nav_bar.png')}/>
<Text style={[appStyles.customFontBold, styles.title1]}>
MY TITLE
</Text>
</View>
<View style={styles.centralContainer}>
<Text style={[appStyles.customFontRegular, styles.title2]}>
{strings.benefit_identifier}
</Text>
</View>
<View style={styles.rightButtonContainer}>
<TouchableHighlight
style={{padding: 7}}
underlayColor='#b59d6e'
onPress={() => { this.onExitPressed() }}>
<Text style={[appStyles.customFontRegular, styles.rightButtonTitle]}>
{strings.exit}
</Text>
</TouchableHighlight>
</View>
</View>
);
}
}
效果很好。那么如何从我的场景 MyPage 更改 NavBarCustom 的title1?
提前致谢。
答案 0 :(得分:0)
场景采用标题参数
<Scene
key="myPage"
component={MyPage}
navBar={NavBarCustom}
hideNavBar={false}
title="myPage"
/>
答案 1 :(得分:0)
您可以通过/ props
传递/发送信息:
在渲染中,您可以声明const
取react-native-router-flux
Actions
,设置要指向的路线,然后设置要传递的对象:
如果有登录主文件,然后重定向到注册视图,则声明const
goToRegister
,然后传递text
及其内容:
class Login extends Component {
render() {
const goToRegister = () => Actions.Register({text: 'From Login'});
return(
<View style={{flex:1}}>
<Text>
Login
</Text>
<TouchableHighlight onPress={goToRegister} style={{ marginTop: 100}}>
<Text>Go Register</Text>
</TouchableHighlight>
</View>
)
}
}
然后在您的注册表中,您只需在props
内this.props.text
:
class Register extends Component {
render() {
return(
<View style={{flex:1}}>
<TouchableHighlight onPress={Actions.Login} style={{ marginTop: 100}}>
<Text>{ this.props.text }</Text>
</TouchableHighlight>
</View>
)
}
}
在您的情况下,您应该首先发送您的标题的价值,如:
render() {
const goToMyPage = () => Actions.MyPage({ title: 'Some Title'})
...
然后你就可以使用它了:
<Text style={[appStyles.customFontBold, styles.title1]}>
{ this.props.title }
</Text>