天気予報アプリケーションを構築しようとしています。子コンポーネントから状態にアクセスできない
getInitialState: function() {
return {text: '', weather: null};
},
handleClick: function() {
WeatherApi.get('q=' + this.state.text).then(function(data) {
this.setState({weather: data})
}.bind(this));
},
は私がやりたいことは、それに一度の子componenetに天候プロップの状態を渡すことです:私は、APIを介してデータを取得し、最初はnullです天候プロップの状態を設定し、検索バーのコンポーネントを持っていますユーザーによって設定されます:
<TodaysWeatherContainer weatherData={this.state.weather} />
次に、このようなコンポーネントからアクセスされることを:今、私は街を検索したとき、私は次のエラーを取得する
var TodaysWeatherContainer = React.createClass({
render: function() {
return (
<div>
<p>{this.props.weatherData}</p>
</div>
);
}
});
:
未知(未定)エラー:オブジェクトはリアクションの子として有効ではありません(見つかったキー:{city、cod、message、cnt、list}のオブジェクト)。子コレクションをレンダリングする場合は、代わりに配列を使用するか、ReactアドオンのcreateFragment(オブジェクト)を使用してオブジェクトをラップします。レンダリング方法がTodaysWeatherContainer
であることを確認します。
キャッチされない例外TypeError::私が追加した場合
は{this.props.weatherData.cityは}私はこのエラーを取得するヌル
のプロパティ「都市」を読み取ることができません私は混乱しそうだところです。 this.props.weatherDataでオブジェクトが返されている場合、どのようにnullになるのですか?
オブジェクトリテラルをどのようにレンダリングする必要がありますか? "オブジェクトはリアクションの子としては有効ではありません" –
何が起こったのかは、データを取得できないことです。おそらく天気予報は機能していないかもしれません。約束事の中でデータを記録できますか?あなたは天気が「null」になるので、これはObject型として表示されます。私はstate.weatherが決して更新されないと思う。 – JordanHendrix
handle.getState linkeをhandleclick関数の後に追加したconsole.log行は、Object {city:Object、cod: "200"、message:0.008、cnt:40、list:Array [40]} – Banner