2017-09-11 3 views
0

私は値を斧の中に入れようとしていますが、同じエラーメッセージが表示されます。 これは私のコードです:反応ナビゲーションはタイトルに私の軸索の値を挿入できません。 "未定義はオブジェクトではありません"

fetchWeather() { 
    axios.get(`http://api.openweathermap.org/data/2.5/forecast/daily?q=${this.state.city}&mode=json&units=metric&cnt=10&APPID=94c6cf0868fa5cb930a5e2d71baf0dbf`) 
    .then((response) => { 
     this.setState({report: response.data}); 
    }) 
} 


static navigationOptions = ({navigation}) => { 
    return { 
     title: `Météo de ${this.state.report.city.country}`, 
     tabBarIcon:() => { 
      return <Image source={require('./images/avatar.png')} style={{width: 20, height: 20}}/> 
     } 
    } 
} 

誰かが私を助けることができますか?

答えて

0

navigationOptionsstaticなので、インスタンスではなくクラス定義に関連付けられています。つまり、特定のインスタンスからデータにアクセスするのにを使用できないため、undefinedが得られます。

代わりに、あなたは、このようなReduxのストアとして、どこかでよりグローバルにデータを設定し、そこからそれを読んで、またはsetParamsを使用してナビゲーション状態にパラメータとしてデータを設定することができ、次のいずれか

... 
.then(response => this.navigation.setParams({report: response.data}); 

そして、中にあなたのnavigationOptions:あなたが答えるために

title: `Météo de ${navigation.state.params.report.city.country}` 
+0

が、私は私のエラーがどこだったundestand、ありがとうございますが、私はこのページに、SETPARAMSを配置する必要がどこ、私は理解していませんか?または、私がナビゲータを作成したページで? –

+0

ナビゲーションツリーのすべての画面には、独自のパラメータがあります。あなたがそれらを必要とするスクリーン上にあることを知っているなら 'setParams'を呼び出すか、' setParams'アクションで 'dispatch'を呼び出すことができます。このアクションでは、パラメータを設定するスクリーンのキーを設定できます。詳細はこちら[こちら](https://reactnavigation.org/docs/navigators/navigation-actions#SetParams)をご覧ください。 – Kraylog

+0

それは働いている!どうもありがとう ! –

関連する問題