Witam,
Mam problem z funkcją setState w React. W funkcji componentWillMount pobieram do state dwa razy dane. Niestety aby pobrać drugą daną muszę skorzystać z danej w state, która się nie zmienia po update. Jak mogę rozwiązać swój problem?
export class Blog extends React.Component {
constructor(props){
super(props);
this.state = {
name: props.match.params.blog,
nick: '',
last_modification: '',
creation_date: '',
blog_id: '',
articles: [],
blog_category_id: '',
blog_category: ''
}
}
componentWillMount(){
Api.getBlogDetails(this, this.state.name);
Api.getBlogArticles(this, this.state.blog_id);
}
render(){
return(<div></div>);
}
API:
const getBlogDetails = function(obj, blog){
axios.post(baseURL + '/index.php?/API/BlogController/getBlogDetails/', querystring.stringify({
name: blog
}))
.then(response => {
obj.id = response.data.results.blog_id
obj.setState({
nick: response.data.results.nick,
name: response.data.results.name,
last_modification: response.data.results.last_modification,
creation_date: response.data.results.creation_date,
blog_id: response.data.results.blog_id,
blog_category_id: response.data.results.blog_category_id,
blog_category: response.data.results.blogCategory
} )
}/*, () => {getBlogArticles(obj, response.data.results.blog_id)} */)
.catch(error => {
console.log(error);
});
}
const getBlogArticles = function(obj, blog_id){
apiClient().get('/index.php?/API/ArticleController/getArticles/' + blog_id)
.then(response => { console.log(response.data.results)
obj.setState({
articles: response.data.results
})
})
.catch(error => {
console.log(error);
});
}
Proszę o wyrozumiałość dopiero się uczę Reacta i JS.
Z góry dziękuje za pomoc :)