Не знаю, почему, когда нажимается кнопка сохранения данных, мне нужно нажать ее два раза для обновления данных, getAirlinesUpdated - это функция, которая сохраняет данные в JSONв моем локальном хранилище с использованиемactjs.
Извлечение обновленных данных с последующим сохранением в локальном хранилище JSON
getAirlinesUpdated = _ =>
{
return new Promise((resolve, reject) => {
fetch(`http://ca-fpscfb2:4000/Airlines?dashboardID=${this.state.dashboardID}`)
.then(response => response.json())
.then( response => {
return localStorage.setItem('airlinesUpdatedData', JSON.stringify(response.data))
})
.catch((err) => { return reject(err) });
});
}
Сохранение данныхфункция
handleSaveData(){
if(this.state.live == 1)
{
fetch(`http://ca-fpscfb2:4000/SaveDataRedFlags?dashboardID=${this.state.dashboardID}&airlineID=${this.state.airlineID}&redFlags=${Base64.encode(this.state.redFlagContent)}`) &&
fetch(`http://ca-fpscfb2:4000/SaveDataMaintenanceReleases?dashboardID=${this.state.dashboardID}&airlineID=${this.state.airlineID}&maintenanceReleases=${Base64.encode(this.state.maintenanceContent)}`) &&
fetch(`http://ca-fpscfb2:4000/SaveDataNotes?dashboardID=${this.state.dashboardID}&airlineID=${this.state.airlineID}¬es=${Base64.encode(this.state.notesContent)}`) &&
fetch(`http://ca-fpscfb2:4000/SaveDataStatus?dashboardID=${this.state.dashboardID}&airlineID=${this.state.airlineID}&status=${Base64.encode(this.state.selectedOption.value)}`) &&
fetch(`http://ca-fpscfb2:4000/SaveDataSummary?dashboardID=${this.state.dashboardID}&airlineID=${this.state.airlineID}&summary=${this.state.summaryLiveOn}`) &&
fetch(`http://ca-fpscfb2:4000/SaveDataStatusColor?dashboardID=${this.state.dashboardID}&airlineID=${this.state.airlineID}&statuscolor=${this.state.selectedOption.label}`)
.then(
this.setState({showSaveModal: true}),
setTimeout(() => {
this.handleSaveDataHide();
}, 3000)
)
}
else
{
fetch(`http://ca-fpscfb2:4000/SaveDataRedFlags?dashboardID=${this.state.dashboardID}&airlineID=${this.state.airlineID}&redFlags=${Base64.encode(this.state.redFlagContent)}`) &&
fetch(`http://ca-fpscfb2:4000/SaveDataMaintenanceReleases?dashboardID=${this.state.dashboardID}&airlineID=${this.state.airlineID}&maintenanceReleases=${Base64.encode(this.state.maintenanceContent)}`) &&
fetch(`http://ca-fpscfb2:4000/SaveDataNotes?dashboardID=${this.state.dashboardID}&airlineID=${this.state.airlineID}¬es=${Base64.encode(this.state.notesContent)}`) &&
fetch(`http://ca-fpscfb2:4000/SaveDataStatus?dashboardID=${this.state.dashboardID}&airlineID=${this.state.airlineID}&status=${Base64.encode(this.state.selectedOption.value)}`) &&
fetch(`http://ca-fpscfb2:4000/SaveDataSummary?dashboardID=${this.state.dashboardID}&airlineID=${this.state.airlineID}&summary=${this.state.summaryLiveOff}`) &&
fetch(`http://ca-fpscfb2:4000/SaveDataStatusColor?dashboardID=${this.state.dashboardID}&airlineID=${this.state.airlineID}&statuscolor=${this.state.selectedOption.label}`)
.then(
this.setState({showSaveModal: true}),
setTimeout(() => {
this.handleSaveDataHide();
}, 3000)
)
}
this.getAirlinesUpdated();
}
Кнопка сохранения данных
render(){
div className="pull-right">
<Button style={{height: 47}} onClick={this.handleSaveData} bsStyle="blue-grey"><h5> Save Data </h5></Button>
</div>
}