使用react-navigation怎么动态修改title的内容?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
动态修改title内容:
static navigationOptions = {
title: ({ state }) => `Chat with ${state.params.user}`
};
ps:`Chat with ${state.params.user}` 这里有个注意的地方,是这个符号·而不是单引号‘
index.android.js
/**
* Sample React Native App
* https://github.com/facebook/react-native
* @flow
*/
import {
AppRegistry,
}from 'react-native';
import rootApp from './js/rootApp'
AppRegistry.registerComponent('GankProject', () = >rootApp);
rootApp.js:
/**
* Created by Administrator on 2017/3/31 0031.
*/
'use strict'import React from 'react';
import {
AppRegistry,
Text,
View,
Button,
}
from 'react-native';
import {
StackNavigator
}
from 'react-navigation';
import ChatScreen from './ChatScreen';
class HomeScreen extends React.Component {
static navigationOptions = {
title: 'Welcome',
//设置标题内容 };
render() {
const {
navigate
} = this.props.navigation;
return ( < View > <Text > Hello, Navigation ! </Text>
<Button
onPress={() => navigate('Chat',{user:'Lucy'})}
title="Chat with Lucy"/ > </View>
);
}
}
const SimpleApp = StackNavigator(
{
Home: {screen: HomeScreen},
Chat:{screen:ChatScreen},
}
);
export default SimpleApp;
ChatScreen.js:
/**
* Created by Administrator on 2017/3/31 0031.
*/
'use strict'
import React,{Component}from 'react';
import {View,Text}from 'react-native';
class ChatScreen extends Component {
static navigationOptions = {
title: ({state}) = >`Chat with $ {state.params.user}`
};
render() {
const {params} = this.props.navigation.state;
return ( < View > <Text > Chat with {
params.user
} < /Text> </View > );
}
}
export default ChatScreen;
效果2:
/** * Created by Administrator on 2017/3/31 0031. */
'use strict'
import React, { Component}from 'react';
import {View, Text, Button}from 'react-native';
class ChatScreen extends Component {
static navigationOptions = {
title: ({
state
}) => {
if (state.params.mode === 'info') {
return `${state.params.user}'s Contact Info`;
}
return `Chat with ${state.params.user}`;
},
header: ({state, setParams}) => {
// The navigation prop has functions like setParams, goBack, and navigate.
let right = ( < Button title = {
`${state.params.user}'s info`
}
onPress = {
() => setParams({
mode: 'info'
})
}
/>
);
if (state.params.mode === 'info') {
right = (
<Button
title="Done"
onPress={() => setParams({ mode: 'none' })}
/ >
);
}
return {right};
},
};
render() {
const {
params
} = this.props.navigation.state;
return (
< View >
< Text > Chat with {params.user} < /Text>
</View >
);
}
}
export default ChatScreen;
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。