0

パラメータが渡され、ログで確認できますが、アクセスできません。画面 1 はログイン画面であり、スタック ナビゲーター内にあります。画面 2 は、ドロワー ナビゲーター内にあるプロファイル画面です。

画面 1 内:

this.props.navigation.navigate('ProfileRoute', {name: data.name});

上記の行は機能し、正しいデータが選択されて渡されます。パラメータが正常に渡されました。これはログで確認できます。

画面 2 内:

渡されたパラメーターを「キャッチ」または「呼び出し」しようとしたさまざまな方法があります。

1.

<Text style={styles.name}>{this.props.navigation.params.name}</Text>

2.

<Text style={styles.name}>{this.props.navigation.state.params.name}</Text>

3.

 <Text style={styles.name}>{this.naviation.params.name}</Text>

調べたところ、最初の方法が最も推奨されているようですが、行の最初の部分に向けられた未定義のオブジェクトエラーが引き続き表示されますthis.props.navigation.params

要求されたパラメーターに値がない場合、未定義のオブジェクトエラーが発生することを読みました。ただし、ログ内で、このパラメーターに値があることがわかります。

2 つの異なる種類のナビゲーター間でデータを渡し、params を呼び出す特定の方法はありますか?

4

1 に答える 1

0

これが最終的に私のために働いたものです....

前のページ/画面内

this.props.navigation.navigate('ScreenOneRoute', {name: data.name});

次の画面内

var {params} = this.props.navigation.state; 
let name = params.name;

リターンの中で

<Text>{name}</Text>

注:データは、データベースからの応答から取得した情報と呼んでいるものです

于 2018-02-26T10:41:02.043 に答える