मैं विभिन्न बाल घटकों में डेटा को पॉप्युलेट करने के लिए एक अच्छा एपिवर्पर घटक बनाने का प्रयास कर रहा हूं। मैंने जो कुछ पढ़ा है, उससे यह काम करना चाहिए: https://jsfiddle.net/vinniejames/m1mesp6z/1/
class ApiWrapper extends React.Component {
constructor(props) {
super(props);
this.state = {
response: {
"title": 'nothing fetched yet'
}
};
}
componentDidMount() {
this._makeApiCall(this.props.endpoint);
}
_makeApiCall(endpoint) {
fetch(endpoint).then(function(response) {
this.setState({
response: response
});
}.bind(this))
}
render() {
return <Child data = {
this.state.response
}
/>;
}
}
class Child extends React.Component {
constructor(props) {
super(props);
this.state = {
data: props.data
};
}
render() {
console.log(this.state.data, 'new data');
return ( < span > {
this.state.data.title
} < /span>);
};
}
var element = < ApiWrapper endpoint = "https://jsonplaceholder.typicode.com/posts/1" / > ;
ReactDOM.render(
element,
document.getElementById('container')
);
लेकिन किसी कारण से, ऐसा लगता है कि मूल घटक में परिवर्तन होने पर बाल घटक अपडेट नहीं हो रहा है।
क्या मुझसे कोई चूक हो रही है?
nextProp
बिना री-रेंडर किए ट्रिगर नहीं होगाcomponentWillReceiveProps(nextProps)
?