componentDidMount
のメカニックに関する質問があります。私は都市の予測データを取得するために外部APIを使用する天気予報アプリケーションを構築しています。Reactjsライフサイクル機能レンダリング2回
私の予測コンテナがこの
var React = require('react');
var Forecast = require('../components/Forecast');
var weatherHelpers = require('../utils/weather');
var ForecastContainer = React.createClass({
getInitialState: function(){
return {
isLoading: true,
forecastData: {}
}
},
componentDidMount: function(){
weatherHelpers.getCityForecast(this.props.routeParams.city)
.then(function(results){
this.setState({
isLoading: false,
forecastData: results
})
}.bind(this))
},
render: function() {
return (
<Forecast
city={this.props.routeParams.city}
isLoading={this.state.isLoading}
forecastData={this.state.forecastData}
/>
)
}
});
module.exports = ForecastContainer;
のように構築された私は、HTTP GET天気APIへのリクエストとweatherHelpersと呼ばれるヘルパーファイル内の機能を格納を送信するためにaxiosを使用しています。
function Forecast(props) {
console.log(props)
return (
<div style={styles.container}>Forecast component</div>
)
}
予測コンポーネントからプロップをログに記録すると、2回記録されます。初期状態では1回、更新された状態では再び動作します。これはちょうど状態生活が動作していますか?componentDidMount内の初期状態と実行中の命令の間の遅れですか?私のコンポーネントの再レンダリングはありますか(したがって、2つのコンソールログ)。そうであれば、働いている仕組みは何か。コンポーネントはその状態をどのように聴いていますか?
「componentWillMount」は表示されません。 – jmargolisvt
@Coder_Nickは 'componentDidMount'を意味しています。私は最初の答えで私を捨てたので、私は質問を編集しました。 –