React NavigatorIOS 不更新 replace() 上的标题
React NavigatorIOS not updating title on replace()
我在我的根组件中使用 NavigatorIOS 组件,并希望在登录屏幕和注册屏幕之间切换:
navToLogin() {
this.refs.nav.replace({
title: "Login",
component: LoginScene,
rightButtonTitle: "Sign Up",
onRightButtonPress: this.navToRegister.bind(this)
});
}
navToRegister() {
this.refs.nav.replace({
title: "Sign Up",
component: RegisterScene,
rightButtonTitle: "Login",
onRightButtonPress: this.navToLogin.bind(this)
});
}
render() {
return (
<NavigatorIOS
ref = "nav"
style={styles.navigator}
initialRoute={{
component: LoginScene,
title: "Login",
rightButtonTitle: "Sign Up",
onRightButtonPress: this.navToRegister.bind(this)
}}
/>
);
}
虽然视图已正确更新,但在 nav.replace() 调用后,标题和右按钮没有改变。当我使用 nav.push() 时,一切都按预期工作。
我是不是用错了这个组件?
你没有用错,这是NavigatorIOS的bug。如果可以的话,可能值得使用 Navigator,因为它得到了更好的支持(Facebook 实际上在内部使用它)
我在我的根组件中使用 NavigatorIOS 组件,并希望在登录屏幕和注册屏幕之间切换:
navToLogin() {
this.refs.nav.replace({
title: "Login",
component: LoginScene,
rightButtonTitle: "Sign Up",
onRightButtonPress: this.navToRegister.bind(this)
});
}
navToRegister() {
this.refs.nav.replace({
title: "Sign Up",
component: RegisterScene,
rightButtonTitle: "Login",
onRightButtonPress: this.navToLogin.bind(this)
});
}
render() {
return (
<NavigatorIOS
ref = "nav"
style={styles.navigator}
initialRoute={{
component: LoginScene,
title: "Login",
rightButtonTitle: "Sign Up",
onRightButtonPress: this.navToRegister.bind(this)
}}
/>
);
}
虽然视图已正确更新,但在 nav.replace() 调用后,标题和右按钮没有改变。当我使用 nav.push() 时,一切都按预期工作。
我是不是用错了这个组件?
你没有用错,这是NavigatorIOS的bug。如果可以的话,可能值得使用 Navigator,因为它得到了更好的支持(Facebook 实际上在内部使用它)