Услуга вызова только один раз в React Native - PullRequest
2 голосов
/ 21 ноября 2019

Я звоню в службу получения по номеру componentWillMount(). Служба ответила мне объектом в виде JSON I, о котором упоминалось ниже. Но мне нужны значения сервисных объектов в мои переменные / объекты, поэтому я сделал цикл, когда получаю данные из сервиса, и он работает нормально, но проблема в том, что для передачи данных в мои объекты / переменные требуется слишком много времени,Передача служебных данных в мои объекты занимает не менее 45–50 секунд. Если я удалил цикл, сервис отвечал мне идеально, но мне нужны значения сервиса в моих объектах. Пожалуйста, предоставьте мне лучшее решение для этого. Спасибо

Ответ службы JSON

{
    "Capital": 0,
    "Code": "BOL",
    "Code2": "",
    "Continent": "",
    "GNP": 0,
    "Name": "Bolivia",
}

Мне нужен код в ключевой переменной и имя в переменной метки

axios.get('http://apiurl.com/api/user/GetCountries')
            .then((response) => {
                for (var i = 0; i < response.data.length; i++) {
                    var joined = this.state.countriesModel.concat({ key: response.data[i].Code, label: response.data[i].Name });
                    this.setState({ countriesModel: joined });
                }
                this.hideLoader();
            }).catch((err) => {
                console.log(err)
            });

1 Ответ

0 голосов
/ 21 ноября 2019

Я сделал массив вне состояния, и он отлично работает. setState занимает слишком много времени для установки данных.

countiesOptions = [];
componentDidMount(){
    var joined = this.countiesOptions.concat({ key: response.data[i].Code, label: response.data[i].Name });
    this.countiesOptions = joined;
}
...