#json #ajax #reactjs #redux
#json #ajax #reactjs #redux
Вопрос:
Итак, я работаю над некоторой демонстрацией, и у меня есть два вызова AJAX, первый — это просто дата последнего изменения, чтобы сообщить мне, следует ли извлекать данные из второго. Это работает, но я чувствую, что есть более разумный способ сделать это для реальных приложений, и я просто пользовательская обезьяна, пытающаяся придумать мир, любой совет очень ценится.
componentDidMount() {
this.getJson();
setInterval(this.getJson.bind(this), 1000);
}
getJson() {
const el = this;
const isModified = (date) => {
let mod = false;
if (this.state.lastModified == date) {
console.log('no change');
} else {
mod = true;
console.log({
'previously modified': this.state.lastModified,
'newly modified': date
});
el.setState({lastModified: date});
}
return mod;
}
this.serverRequest = $.ajax({
url: 'URL_LAST_MODIFIED',
success: function(result) {
const lastModified = $.parseJSON(result).LastModifiedDateTime;
if (isModified(lastModified)) {
$.ajax({
url: 'URL_DATA',
success: function(result2) {
const result2Obj = $.parseJSON(result2);
el.setState({data: result2Obj});
},
error: function(xhr, status, err) {
alert(err.toString());
}
})
}
},
error: function(xhr, status, err) {
}
});
}
Ответ №1:
Я думаю, что это связано с этим:https://github.com/reactjs/redux/issues/1676
Идея заключается в том, чтобы создать действие для первого вызова ajax … и при успешном выполнении отправить другое действие для выполнения второго вызова.