2017-12-23 21 views
1

私のデフォルトのReact Navigationタブ画面では、画面のタイトルをMobXストアの値に設定したいと思います。これを行う唯一の方法は、パラメータを介して値を渡すことです - 私は 'title:'フィールドにMobXの値を置くことはできませんが、これは 'デフォルト'の画面です何も渡していない。MobXの店舗価値を使ってReact Navigationの画面タイトルを動的に設定する方法は?

デフォルト画面:

export default class HomeScreen extends Component { 
    static navigationOptions = ({ navigation, screenProps }) => ({ 
    title: `This is ${navigation.state.params.title}`, 

私はcomponentWillMount中にSETPARAMSの使用を試みましたが、にconsole.logは私を示し、それは遅すぎ起こってしなければならないので、私はタイトルに空のオブジェクトを取得します。

どうすればいいですか?

答えて

0

今日も同じ問題がありました。

navigationOptionsをオブジェクトではなく関数に変更するだけで、状態の変化に対して再評価されます。マニュアルはhttps://reactnavigation.org/docs/intro/headers#Header-interaction-with-screen-componentに記載されているように、あなたのための修正があります:

static navigationOptions = ({ navigation }) => { 
    const { params = {} } = navigation.state; 
    const title = `This is ${params.title}`; 
    return { title }; 
}; 
関連する問題