【发布时间】:2018-03-09 00:55:45
【问题描述】:
我正在尝试根据导航参数有条件地呈现 headerRight。我目前正在静态导航选项中尝试这个。这是我的代码,但没有任何内容呈现到屏幕上
static navigationOptions = ({navigation}) => ({
headerRight : () => {
if (navigation.state.params.user.following) {
return (
<TouchableOpacity
onPress={() => this.followUser()}>
<Icon2 name="ios-person-add-outline" size={35} />
</TouchableOpacity>
)} else {
return (
<TouchableOpacity
onPress={() => this.unfollowUser()}>
<Icon name="user-times" size={20} />
</TouchableOpacity>
)}
},
})
可以这样做还是我需要在此处使用自定义标题?
任何帮助将不胜感激!谢谢!
解决方案:
去掉匿名函数,实现soutot推荐的条件语法
static navigationOptions = ({navigation}) => ({
headerRight : navigation.state.params.otherUser.following ?
( <TouchableOpacity
onPress={() => this.followUser()}>
<Icon2 name="ios-person-add-outline" size={35} />
</TouchableOpacity> )
:
( <TouchableOpacity
onPress={() => this.unfollowUser()}>
<Icon name="user-times" size={20} />
</TouchableOpacity> )
})
【问题讨论】:
-
哪些行显示了意外的令牌?在触发导航之前检查是否传递了
user参数? -
对不起,这应该已经被编辑了,因为它现在没有抛出意外的令牌。相反,它没有渲染任何东西。编辑以反映这一点。
标签: react-native conditional-rendering stack-navigator