web-dev-qa-db-fra.com

Comment remplacer les options de navigation dans le composant fonctionnel?

Pour remplacer les options de navigation à l'aide des composants de classe, ce serait quelque chose comme

export default class SomeClass extends Component {

    static navigationOptions = ({ navigation }) => {
        return {
            title: navigation.getParam('headerTitle'),
        }
    }

    componentDidMount() {
        this.props.navigation.setParams({ headerTitle: someVariableThatComesFromExternalCall })
    }

    ...
}

Mais comment puis-je le faire en utilisant un composant fonctionnel ??

export default function SomeFunctionalCompoenent({ navigation }) {

    // How and Where do I change the header title ?

    useEffect(() => { navigation.setParams({ headerTitle: someVariableThatComesFromExternalCall })})
    return (
        ...
    )
}
9
Vencovsky

Vous devez toujours définir des options de navigation sur votre composant fonctionnel. Vous faites comme ça:

export default function SomeFunctionalComponent({ navigation }) {
    useEffect(() => { 
        navigation.setParams({ 
            headerTitle: someVariableThatComesFromExternalCall 
        }) 
    }, [])
}

SomeFunctionalComponent.navigationOptions = ({ navigation }) => {
    return {
        title: navigation.getParam('headerTitle'),
    }
}
18
tbergq