2017-11-02 19 views
0

私のフォームでは、フォームの下部にある送信ボタンと同じメソッドを呼び出すヘッダーの右側にサブミットボタンが必要です。React NavigationのnavigationOptionsで非静的メソッドにアクセスできますか?

React Navigationは、各スクリーンのナビゲータにオプションを渡すために、navigationOptionsという静的メソッドを宣言する必要があります。

私のボタンの両方からonFormSubmit()機能にアクセスする必要があり、明らかに静的メソッドでthisにアクセスできないという問題があります。

私は何とかこの問題を回避できる方法はありますか?私はナビゲーションヘッダーの外側にあるボタンを自分自身で絶対的な位置にしてみましたが、ヘッダーの上に移動することはできません。 enter image description here

答えて

1
static navigationOptions = ({ navigation }) => { 
    const { params = {} } = navigation.state; 

    return { 
    headerRight: (
     <Button 
     text="submit" 
     primary 
     raised 
     style={{ container: { margin: 10 } }} 
     onPress={() => params.onFormSubmit()} 
     /> 
    ), 
    } 
} 

componentDidMount() { 
    const { navigation } = this.props; 

    navigation.setParams({ 
    onFormSubmit: this.onFormSubmit, 
    }); 
} 

onFormSubmit =() => { 
    ... 
} 

私はバージョンを使用しています:ここで

export default class EnterBookDetailsScreen extends Component { 
    static navigationOptions = ({ navigation }) => ({ 
    headerRight: (
     <Button 
     text="submit" 
     primary 
     raised 
     style={{ container: { margin: 10 } }} 
     // Is this possible? 
     onPress={() => this.onFormSubmit()} 
     /> 
    ), 
    }) 

onFormSubmit() { 
. 
. 
. 

は、私は、問題がより理にかなっているように持っているもののスクリーンショットです(問題の送信ボタンは右上の1です) 1.0.0-beta.11

関連する問題