我刚刚开始使用React Navigation
和TabNavigator
。反应导航:TabNavigator中的动态标题。未在对象中定义
我有2个选项卡:ChannelScreen & ListScreen。 当我点击ListScreen中的一个通道时,ChannelScreen的标题应该被替换。
ChannelScreen:
export default class ChannelScreen extends React.Component {
static navigationOptions = ({ navigation }) => ({
title: `${navigation.state.params.title}`,
})
ListScreen:
export default class ListScreen extends Component {
handlePress = (channelKey, channelName) => {
console.log('change channel', channelKey, channelName)
this.props.navigation.navigate('ChannelScreen', { title: channelName });
}
render() {
return(
<View style={styles.container}>
<TouchableOpacity
style={styles.channelCard}
onPress={() => {
this.handlePress('01','Channel 1')
}}
>
<Text>Channel 1</Text>
</TouchableOpacity>
</View>
)
}
}
(我简化了我的代码豆蔻 - 希望我没惹任何东西)
如果我通过在我的StackNavigator
params,一切工作正常。虽然当我尝试通过TabNavigator
的标题传递,我得到这个错误:
Undefined in not an object (evaluating 'navigation.state.params.title')
我也试过setParams
- 我不明白这一点在TabNavigator
工作,要么。 你对我有什么建议吗?