안녕하세요 여러분, 저는 새로운 반응을 보이며 특정 프로젝트에 머물러 있습니다. 문제는 내가 api_urlin this.props 부모 구성 요소로부터 받았습니다. 그리고이 자식 구성 요소에서 JSON을 사용하여 일부 데이터를 가져 오기 위해 api_url을 사용하려고합니다. 부모 구성 요소에서 this.props in react in ComponentDidMount
내가Repositories api_url={this.state.objs.repos_url}
을 가지고 아이 컴퍼넌트에, 나는
componentDidMount() {
$.getJSON(this.props.api_url, function(json) {
for (var i = 0; i < json.length; i++) {
var each_repo = json[i]
console.log(each_repo["name"]);
}
});
}
같은 그래서 내가 필요로하는 $ .getJSON의 URL 섹션에서 해당 api_url이다 싶어 .
componentDidMount에서 this.props에 액세스 할 수있는 방법이 있습니까? 아니면 동일한 결과를 얻을 수있는 다른 방법이 있습니까?
또 다른 것은 부모 컴포넌트의 ComponentDidMount에서 $ .getJSON 호출을 사용한다는 것입니다. 미리 감사드립니다. 당신이 하위 구성 요소의 생성자를 만든 다음
constructor(props) {
super(props);
this.state = {}
}
componentDidMount(){
$.getJSON(this.props.api_url , function(json) {
for (var i = 0; i < json.length; i++) {
var each_repo = json[i]
console.log(each_repo["name"]);
}
});
}
과 슈퍼() 함수에 속성으로 소품을 통과하는 데 필요한 하위 구성 요소에 소품에 액세스하기 위해
나는 완전히 이해할 수 없지만 ... this.props는 전체 수업에서 사용할 수 있습니다. 그래서 당신의 코드는 괜찮습니다. –
당신은 이미'$ .getJSON' 내부에 있습니까? .. –
코드가 작동합니다 - http://jsbin.com/wirodemulu/edit?html,js,console,output -'this'에 액세스하려면 '$ .getJSON'의 콜백 함수에서'.bind()'를 사용할 필요가 있습니다. –