6.0.3 • Published 1 month ago

@uiw/react-amap-weather v6.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
1 month ago

Weather 天气查询服务

Buy me a coffee npm version Downloads

天气查询服务,根据城市名称或区域编码返回城市天气预报信息,包括实时天气信息和四天天气预报。

import { Weather } from '@uiw/react-amap';
import { Weather } from '@uiw/react-amap-weather';

基本用法

import ReactDOM from 'react-dom';
import React, { useState, useRef } from 'react';
import { APILoader, Weather } from '@uiw/react-amap';

const Example = () => {
  const [data, setData] = useState();
  const [city, setCity] = useState('上海市');
  return (
    <>
      <button onClick={() => setCity('上海市')}>
        上海市
      </button>
      <button onClick={() => setCity('北京市')}>
        北京市
      </button>
      <button onClick={() => setCity('黄冈市')}>
        黄冈市
      </button>
      <div style={{ width: '100%' }}>
        <Weather
          city={city}
          onComplete={(data) => {
            console.log('返回数据:', data);
            setData(data);
          }}
        />
        <pre style={{ padding: 10, marginTop: 10 }}>
          {data ? JSON.stringify(data, null, 2) : '{}'}
        </pre>
      </div>
    </>
  );
}

const Mount = () => (
  <APILoader akey="a7a90e05a37d3f6bf76d4a9032fc9129">
    <Example />
  </APILoader>
);

export default Mount;

查询四天预报天气

import ReactDOM from 'react-dom';
import React, { useState, useRef } from 'react';
import { APILoader, Weather } from '@uiw/react-amap';

const Example = () => {
  const [data, setData] = useState();
  const [city, setCity] = useState('上海市');
  return (
    <>
      <button onClick={() => setCity('上海市')}>
        上海市
      </button>
      <button onClick={() => setCity('北京市')}>
        北京市
      </button>
      <button onClick={() => setCity('黄冈市')}>
        黄冈市
      </button>
      <div style={{
        width: '100%', height: '300px', overflow: 'auto'
      }}>
        <Weather
          city={city}
          type="forecast"
          onComplete={(data) => {
            console.log('返回数据:', data);
            setData(data);
          }}
        />
        <pre style={{ padding: 10, marginTop: 10 }}>
          {data ? JSON.stringify(data, null, 2) : '{}'}
        </pre>
      </div>
    </>
  );
}

const Mount = () => (
  <APILoader akey="a7a90e05a37d3f6bf76d4a9032fc9129">
    <Example />
  </APILoader>
);

export default Mount;

切换类型

import ReactDOM from 'react-dom';
import React, { useState, useRef } from 'react';
import { APILoader, Weather } from '@uiw/react-amap';

const Example = () => {
  const [data, setData] = useState();
  const [type, setType] = useState('live');
  return (
    <>
      <button onClick={() => setType('live')}>
        实时天气信息:live
      </button>
      <button onClick={() => setType('forecast')}>
        四天预报天气:forecast
      </button>
      <div style={{ width: '100%', height: '300px' }}>
        <Weather
          city="上海市"
          type={type}
          onComplete={(data) => {
            console.log('返回数据:', type, data);
            setData(data);
          }}
        />
        <pre style={{ padding: 10, marginTop: 10 }}>
          {data ? JSON.stringify(data, null, 2) : '{}'}
        </pre>
      </div>
    </>
  );
}

const Mount = () => (
  <APILoader akey="a7a90e05a37d3f6bf76d4a9032fc9129">
    <Example />
  </APILoader>
);

export default Mount;

不使用组件

import ReactDOM from 'react-dom';
import React, { useEffect, useState, useRef } from 'react';
import { APILoader } from '@uiw/react-amap';

const Example = () => {
  const [data, setData] = useState();
  useEffect(() => {
    AMap.plugin(['AMap.Weather'], () => {
      const instance = new AMap.Weather({});
      instance.getForecast('上海市', (status, result) => {
        if(status === 'complete'){
          setData(result);
        } else {
          setData(result);
        }
      });
    });
  }, []);
  return (
    <>
      <div style={{ width: '100%' }}>
        <pre style={{ padding: 10, marginTop: 10 }}>
          {data ? JSON.stringify(data, null, 2) : '{正在获取}'}
        </pre>
      </div>
    </>
  );
}

const Mount = () => (
  <APILoader akey="a7a90e05a37d3f6bf76d4a9032fc9129">
    <Example />
  </APILoader>
);

export default Mount;

Props

参数说明类型默认值
city城市名称/区域编码(如:“杭州市”/“330100”)string-
type获取 查询实时天气信息查询四天预报天气live|forecastlive

事件

参数说明类型
onComplete数据请求完成时触发事件。(data: WeatherLiveResult | WeatherForecastResult): void;
onError数据请求错误时触发事件。(err): void;
6.0.3

1 month ago

6.0.2

3 months ago

6.0.1

5 months ago

6.0.0

5 months ago

5.0.20

5 months ago

5.0.21

5 months ago

5.0.9

9 months ago

5.0.8

10 months ago

5.0.7

10 months ago

5.0.6

10 months ago

5.0.5

10 months ago

5.0.10

9 months ago

5.0.11

9 months ago

5.0.12

8 months ago

5.0.13

8 months ago

5.0.14

8 months ago

5.0.15

7 months ago

5.0.16

7 months ago

5.0.17

7 months ago

5.0.18

6 months ago

5.0.19

6 months ago

5.0.4

11 months ago

5.0.3

11 months ago

5.0.2

11 months ago

4.5.3

1 year ago

4.6.0

1 year ago

5.0.1

1 year ago

5.0.0

1 year ago

4.4.1

1 year ago

4.4.0

1 year ago

4.4.2

1 year ago

4.5.0

1 year ago

4.5.2

1 year ago

4.5.1

1 year ago

4.0.5

1 year ago

4.2.2

1 year ago

4.0.7

1 year ago

4.0.6

1 year ago

4.2.1

1 year ago

4.2.0

1 year ago

4.3.1

1 year ago

4.1.0

1 year ago

4.3.0

1 year ago

4.1.1

1 year ago

4.0.4

1 year ago

4.0.3

1 year ago

4.0.1

2 years ago

4.0.2

2 years ago

4.0.0

2 years ago

3.0.4

2 years ago

2.7.22

2 years ago

2.7.21

2 years ago

2.7.20

2 years ago

3.0.3

2 years ago

3.0.2

2 years ago

3.0.1

2 years ago

2.7.6

2 years ago

2.7.5

2 years ago

3.0.0

2 years ago

2.7.7

2 years ago

2.7.9

2 years ago

2.7.19

2 years ago

2.7.18

2 years ago

2.7.17

2 years ago

2.7.16

2 years ago

2.7.11

2 years ago

2.7.10

2 years ago

2.7.15

2 years ago

2.7.14

2 years ago

2.7.13

2 years ago

2.7.12

2 years ago

2.7.4

2 years ago

2.7.3

2 years ago

2.5.0

2 years ago

2.4.1

2 years ago

2.7.0

2 years ago

2.6.1

2 years ago

2.6.0

2 years ago

2.5.1

2 years ago

2.7.2

2 years ago

2.7.1

2 years ago

2.6.2

2 years ago

2.3.0

3 years ago

2.4.0

3 years ago

2.2.6

3 years ago

2.2.5

3 years ago

2.2.4

3 years ago

2.2.3

3 years ago

2.2.2

3 years ago

2.2.1

3 years ago

2.2.0

3 years ago

2.0.2

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago