Я пытаюсь получить файл json по ссылке https, независимо от того, какая ссылка даст результат, не изменится!?
Я проверил все файлы json. в случае, если у них была ошибка.
responseData остается прежним, и даже когда я заставляю данные изменяться, вместо этого возвращая responseData, возвращая json, написанный вручную; он меняется прямо на старые данные json, которые просто не меняются, когда я возвращаю responseData обратно.
И данные ответа, которые я просил разместить на консоли, дают неверную информацию
Указанный URL-адрес правильный.
но вывод не соответствует данным, когда я заполняю ссылку в интернет-браузере.
constructor(props){
super(props);
this.state = {
connected: false,
}
this.init = this.init.bind(this);
this.getJson = this.getJson.bind(this);
this.updateVisited = this.updateVisited.bind(this);
}
init = async ({json})=>{
if(json==null){
await AsyncStorage.setItem('database', "");
alert('error occured');
} else {
await AsyncStorage.setItem('database', JSON.stringify(json));
this.setState({
connected: true
});
}
}
getJson = async ()=>{
var url = await AsyncStorage.getItem("database_url");
console.log(url);
return fetch(url,
{
method: "GET",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
})
.then(response => response.json())
.then(responseData => {
this.updateVisited(url);
console.log(responseData);
return responseData;
})
.catch(error => {
alert('Could not connect!');
return null;
})
}
connect = async ({url})=>{
await AsyncStorage.setItem("database_url", url);
this.getJson().then(json => this.init({json}));
}
"a_json": [{"name": "greg"}]
"test": [{"name": "sheldon"}]
"temp": [{"name": "bob"}]
когда URL указывает на тест JSON, это дает Бобу ожидание Шелдона
когда URL указывает на JSON Temp, это дает Боб, ожидающий Боб
когда URL-адрес указывает на JSON A_JSON это дает Боб, ожидая Грег
при возврате json без попыток получить его из Интернета в месте responseData; это дает ожидаемое значение
Если вам нужна дополнительная информация, не стесняйтесь спрашивать.
Спасибо, что уделили время на чтение моего вопроса.