#javascript #reactjs
#javascript #reactjs
Вопрос:
import React, {useEffect, useState } from 'react';
import axios from 'axios';
function Weather(){
useEffect(()=>{
const apiCall= async ()=>{
var appid="";
const resp=await axios.get(`http://api.openweathermap.org/data/2.5/weather?q=seoulamp;appid=${appid}`);
console.log(resp.data);
var temp=String((resp.data.main.temp-273)).substring(0,4);
};
apiCall();
},[]);
return(
<div>
<div className="displayTime">{temp}</div>
</div>
);
}
export default Weather;
Я хочу использовать переменную с именем temp в функции возврата. Но я не уверен, как объявлять глобальные переменные в React.
Я был бы искренне благодарен за любую помощь.
Комментарии:
1. вы пробовали использовать state ?
const [temp,setTemp] = useState(<initial value>)
2. использовать [var] нехорошо, это вызовет проблемы с безопасностью или некоторые конфликты. Используйте context или localStorage для постоянных данных. попробуйте, как сказал @HarmandeepSinghKalsi, используя state, это лучше для этого случая
Ответ №1:
Объявите temp как переменную состояния, и вы можете использовать ее в качестве метода возврата.
import React, {useEffect, useState } from 'react';
import axios from 'axios';
function Weather(){
const [temp,setTemp] = useState("");
useEffect(()=>{
const apiCall= async ()=>{
var appid="";
const resp=await axios.get(`http://api.openweathermap.org/data/2.5/weather?q=seoulamp;appid=${appid}`);
console.log(resp.data);
setTemp(String((resp.data.main.temp-273)).substring(0,4));
};
apiCall();
},[]);
return(
<div>
<div className="displayTime">{temp}</div>
</div>
);
}
export default Weather;
Комментарии:
1. Я исправил это нормально благодаря вам! большое вам спасибо!!!
2. Рад это знать. Если бы это помогло, я надеюсь, вы не возражали бы проголосовать и принять ответ для лучшей наглядности ответа . Приятного обучения
Ответ №2:
Использование самостоятельно определенных глобальных значений в контексте, подобном вашему примеру, не рекомендуется. Ваш случай похож на обработку состояния. Вы могли бы создать отдельный модуль, который вы можете импортировать и использовать. Также модифицируйте в случае обработки состояния.
import {temp} from './myglobals'