Подскажите, пожалуйста, как в React синхронно записать объект в переменную и тут же получить ее обратно?
Например, мое react приложение общается с сервером и получает от него json данные с разными состояниями. На основе этих состояний строится логика моего приложения. Проблема заключается в том, чтобы после получения от сервера ответа и записи ее в переменную, не удается получить это значение - оно undefinded.
constructor(props) {
super(props);
this.state = {
input: "",
};
this.axiosData = {}
}
getServerDataGET = async (value) => {
axios
.get("/test.json")
.then(res => {
//console.log(res.data);
this.axiosData = res.data;
})
.catch(err => { });
};
handleChange = event => {
this.setState({ input: event.target.value });
};
handleSubmit = event => {
event.preventDefault();
this.getServerDataGET();
console.log(this.axiosData);
}
Таким образом, нажимая на кнопку Submit, вызывается функция, которая получает JSON данные. Данные приходят и отображаются в консоль внутри Axios. Затем эти данные должны записываются в this.axiosData. Но, как я понимаю, в силу того, что Javascript язык асинхронный эти данные попадают в эту переменную позже. Поэтому внутри handleSubmit() в консоле у меня undefinded. При повторном нажатии на кнопку Submit я эти данные вижу.
Ссылка на пример: https://codesandbox.io/s/v6k22wx3y0