React-native useEffect钩子刷新获取

时间:2020-04-16 20:14:25

标签: react-native react-hooks use-effect

我正在尝试构建一个本机的天气应用程序,使用像这样的钩子从openweather api中获取数据:

useEffect(() => {
  async function fetchWeather() {
    try {
      let data = await fetch(URL);
      const json = await data.json();
      dispatch({type: 'success', payload: json});
    } catch (error) {
      dispatch({type: 'failure'});
    }
  }
  fetchWeather(); 
}, []);

这只会加载一次数据。我想确保天气信息保持最新。刷新数据的最佳方法是什么?我是否每隔X分钟轮询一次(如果是,则如何)?

1 个答案:

答案 0 :(得分:1)

您要在一段时间内调用api吗?

试试吧:

const [isStatus, setStatus] = useState(true)
setInterval(()=> {
   setStatus(!isStatus)
}, 3000)

useEffect(() => {
   fetchWeather();
}, [isStatus])

我的示例在应用程序打开时适用