react 使用jsonp调高德天气API

import jsonp from 'jsonp'
import { message } from 'antd'
import { useEffect, useState } from 'react'

export function Weather() {
  const POSITION_NAME = '城市名称'
  const [weatherStr, setWeatherStr] = useState<string>('')
  const [iconName, setIconName] = useState<string>('')
  useEffect(() => {
    getWeather()
  }, [])
  const getWeather = () => {
    return new Promise((resolve, reject) => {
      const url = `https://restapi.amap.com/v3/weather/weatherInfo?key=94d1cfc75900384b746b89edfea5fb1a&city=城市名称`
      jsonp(url, {}, (err, data) => {
        if (data.status === '1') {
          //请求成功,拿到数据
          const { weather, city, temperature } = data.lives[0]
          resolve({ weather, city, temperature })
          let iconName = WEATHER_ICON_MAP[weather as string]?.day
          let str = `${POSITION_NAME}&nbsp${weather}&nbsp${temperature}℃`
          setIconName(iconName)
          setWeatherStr(str)
        } else {
          //请求失败
          message.error('获取天气信息失败!')
        }
      })
    })
  }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值