Bir sunucudan bazı verileri getirmeyi denedim ve bazı garip nedenlerden dolayı componentDidMount()
olması gerektiği gibi çalışmıyor. Ben ateş etmek olup olmadığını kontrol etmek için componentDidMount()
içinde bir console.log()
ekledi. Sunucunun isteğinin gerektiği gibi çalıştığını biliyorum. Reaksiyonun dışında kullandım ve gerektiği gibi çalıştı. BuradacomponentDidMount() yanıt bileşen yüklenirken çağrılmıyor
class App extends React.Component {
constructor(props, context) {
super(props, context);
this.state = {
obj: {}
};
};
getAllStarShips() {
reachGraphQL('http://localhost:4000/', `{
allStarships(first: 7) {
edges {
node {
id
name
model
costInCredits
pilotConnection {
edges {
node {
...pilotFragment
}
}
}
}
}
}
}
fragment pilotFragment on Person {
name
homeworld { name }
}`, {}). then((data) => {
console.log('getALL:', JSON.stringify(data, null, 2))
this.setState({
obj: data
});
});
}
componentDidMount() {
console.log('Check to see if firing')
this.getAllStarShips();
}
render() {
console.log('state:',JSON.stringify(this.state.obj, null, 2));
return (
<div>
<h1>React-Reach!</h1>
<p>{this.state.obj.allStarships.edges[1].node.name}</p>
</div>
);
}
}
render(
<App></App>,
document.getElementById('app')
);
ReactDOM.render kullanıyor musunuz? Bileşeni orijinal durumla oluşturma konusunda sorunlarınız olabilir. This.state.obj.allStarships.edges [1] .node.name dosyasının tamamını orijinal duruma (veya render yönteminizde kullanımında biraz daha güvenli) sağlamayı deneyin. –
"allStarships" undefined "olduğu için, bileşeniniz ilk kez oluşturulurken TypeError öğesinin olması gerekir. Öyleyse, bu, uygulamanızı kilitleyebilir ve çalışma zamanı yürütmesini engelleyebilir. Sadece bir tahmin. –
Jim Pedid'i ne demek istediğinden emin değilim, tepki-dom kullanıyorum. –