私は、ナビゲーションパラメータに基づいて条件付きでheaderRightをレンダリングしようとしています。私は現在、静的なnavigationOptionsでこれを試しています。ここに私のコードはありますが、何も画面にレンダリングしていません。反応するネイティブスタックナビゲータのヘッダー内で条件付きでレンダリングする方法は?
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>)
})
お役に立てば幸いですか! navigateをトリガする前に 'user'パラメータを渡しているかどうか確認しましたか? –
申し訳ありませんが、予期しないトークンを投げていないので、これは編集されているはずです。代わりに何も描画されません。これを反映するように編集されました。 – beddow