J'ai un composant Header commun. Comment puis-je transmettre le 'Nom d'écran' à ce composant?
Je veux transmettre le 'Nom d'écran' de Accueil à HeaderStyle.
Je veux utiliser le headerstyle dans un autre composant et passer 'Screen Name' au headerstyle
export default class HeaderStyle extends Component {
render() {
return (
<View>
<Header >
<View style={{
width: width, height: hp('12%'),
flexDirection: 'row', backgroundColor: '#141414'
}} >
<Left>
<Image style={styles.logo}
source={require('../assets/images/1x/logo.png')}>
</Image>
</Left>
<View style={{ marginLeft: 280, marginTop: 20 }}>
<Text style={{ color: 'white', fontSize: 35, fontWeight: 'bold' }}>
Should be Dynamic Screen Name</Text></View>
<Right>
<TouchableOpacity onPress={this.ShowHideComponent2}>
<Image style={styles.imgsearch} source={require('../assets/test/a.png')}>
</Image>
</TouchableOpacity>
</Right>
</View>
</Header>
{this.showAssests()}
</View>
);
}
}
import HeaderStyle From './HeaderStyle '
export default class Home extends Component {
render (){
return (
// <HeaderStyle>Screen Name</HeaderStyle>
<HeaderStyle Name={"Screen Name"}/>
<HeaderStyle />
)
}
3 Réponses :
Créez une fonction et lisez window.location.pathname , puis dans le composant Header, rendez cette fonction, par exemple
export default function currentScreenName(){
let screenName = '';
switch(window.location.pathname){
case '/employees':
screenName = 'Employees';
break;
case '/admin':
screenName = 'Admin';
break;
default:
screenName = 'Dashboard';
}
return screenName;
}
//Header.js
<h1>{currentScreenName()}</h1>
Vous pouvez simplement passer le prop header dans static navigationOptions directement à l'intérieur du composant écran.
Par exemple
Dans votre composant d'écran
<Text style={{ color: 'white', fontSize: 35, fontWeight: 'bold' }}>
{this.props.Name}
</Text>
À l'intérieur du composant HeaderStyle , utilisez les accessoires dans le texte
class HomeScreen extends React.Component {
static navigationOptions = ({ navigation }) => {
header: <HeaderStyle Name={"Screen Name"}/>
};
/* render function, etc */
}
Pour plus d'informations sur la personnalisation des en-têtes, ici
merci mais dans le HeaderStyle comment recevoir le nom et le mettre dans render render () {return (
merci beaucoup je résous le problème
dans l'écran d'accueil, j'envoie le nom d'écran comme celui-ci
<Text >{this.props.title}</Text>
et dans le HeaderStyle je reçois le titre comme celui-ci
<Headerstyle title={"text"} />
pouvez-vous publier plus de code à partir de quel composant vous envoyez la valeur des accessoires et où vous devez utiliser cette valeur dans le composant ci-dessus