날씨 애플리케이션을 구축하려고합니다.하위 구성 요소에서 상태에 액세스 할 수 없습니다.
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>
);
}
});
을 :
잡히지 않음 (약속 있음) 오류 : 개체가 React 하위로 유효하지 않습니다 (발견됨 : 키가있는 개체 (도시, 대구, 메시지, cnt, 목록)). 자식 컬렉션을 렌더링하려는 경우 대신 배열을 사용하거나 React 애드온의 createFragment (object)를 사용하여 객체를 래핑하십시오. 렌더링 방법이 TodaysWeatherContainer
인지 확인하십시오.
catch되지 않은 형식 오류 : 내가 추가하는 경우
는 {this.props.weatherData.city은} 나는이 오류가 널 (null)
의 특성 '도시'를 읽을 수 없습니다 내가 혼란스러워지고있어 곳입니다. this.props.weatherData를 사용하여 객체가 반환 될 때 null이 될 수 있습니까?
어떻게 개체 리터럴을 렌더링해야합니까? "객체가 반응하는 자식으로 유효하지 않습니다." –
어쩌면 일어날 수있는 일은 데이터를 다시 얻지 못하는 것입니다. 날씨 호출이 작동하지 않는 것 같습니다. 약속에 데이터를 기록 할 수 있습니까? 왜냐하면 당신은 'null'이라는 날씨에 빠져 있기 때문에 Object 유형으로 나타납니다. state.weather는 결코 업데이트되지 않는다고 생각합니다. – JordanHendrix
내 handleclick 함수에서 this.setState linke 뒤에 console.log 줄을 추가하면 Object {city : Object, cod : "200", message : 0.008, cnt : 40, list : Array [40]} – Banner