我正在制作本机应用程序。我有按钮和onPress我想发送headerTitle到createStackNavigator,但是我有一些错误。我用setParams发送标题,在createStackNavigator中,我用getParam获取标题。 为什么不起作用怎么正确? 代码:
// page.js
<TouchableOpacity
onPress={() => navigate('Page2', {
this.props.navigation.setParams({Title: 'Title'});
})}>
// createStackNavigator
export default createStackNavigator(
{
Main: {
screen: Page1,
},
Page2: {
screen: Page2,
navigationOptions: ({ navigation }) => ({
headerTitle: navigation.state.getParam('Title', 'Default Title'),
}),
},
},
{
initialRouteName: 'Main',
}
);
答案 0 :(得分:0)
该问题似乎是按照该应用的操作顺序发生的。
因为在设置该值之前已经获得了该值,所以该值必须为null或undefind,这是设置之前的值。
尝试将其用作全局函数。
globalScreen
let TITLE = "defaultTitle"
function setT(data){
TITLE = data;
}
function getT() {
return TITLE;
}
export { setT, getT }
用法
// page.js
import {setT } from "globalScreen"
<TouchableOpacity
onPress={() => {
setT("page2");
navigate('Page2'); }}>
// createStackNavigator
import {getT } from "globalScreen"
export default createStackNavigator(
{
Main: {
screen: Page1,
},
Page2: {
screen: Page2,
navigationOptions: ({ navigation }) => ({
headerTitle: getT(),
}),
},
},
{
initialRouteName: 'Main',
}
);