Installation
React prerequisites
This documentation assumes you are already familiar with React and have a project setup. If it is not the case, you should read React's Getting Started documentation first.
Leaflet prerequisites
This documentation assumes you are already familiar with Leaflet. React Leaflet does not replace Leaflet, it only provides bindings between React and Leaflet.
This documentation is not a replacement for Leaflet's documentation, it only focuses on aspects specific to React Leaflet.
Before using React Leaflet, you must setup your project following Leaflet's Quick Start Guide.
Adding React Leaflet
Using ESM imports
React Leaflet exports ES Modules that can be imported by URL, notably from CDNs such as esm.sh:
import { MapContainer } from 'https://cdn.esm.sh/react-leaflet/MapContainer'
import { TileLayer } from 'https://cdn.esm.sh/react-leaflet/TileLayer'
import { useMap } from 'https://cdn.esm.sh/react-leaflet/hooks'
Or importing the full library at once:
import {
MapContainer,
TileLayer,
useMap,
} from 'https://cdn.esm.sh/react-leaflet'
Using a package registry
A package registry such as npm can be used to install React Leaflet and its dependencies.
React, React DOM and Leaflet are required peer dependencies. You must add them to your project if they are not already installed:
- npm
- yarn
npm install react react-dom leaflet
yarn add react react-dom leaflet
Then you can install React Leaflet:
- npm
- yarn
npm install react-leaflet
yarn add react-leaflet
Modules can then be imported using bare specifiers when supported by a bundler such as webpack.
import { MapContainer } from 'react-leaflet/MapContainer'
import { TileLayer } from 'react-leaflet/TileLayer'
import { useMap } from 'react-leaflet/hooks'
Alternatively, all the components and hooks can be imported from the module entry-point:
import { MapContainer, TileLayer, useMap } from 'react-leaflet'
TypeScript support
Dependencies
React Leaflet provides TypeScript definitions in the installed packages, but needs Leaflet's definitions to be present. If you have not installed them yet, you will need to add them:
- npm
- yarn
npm install -D @types/leaflet
yarn add -D @types/leaflet
Imports
TypeScript definitions are only exported from the package entry-point, so you should import from it directly when using TypeScript:
// ⚠️ No types available here
import { MapContainer } from 'react-leaflet/MapContainer'
// ✅ Types are available here
import { MapContainer } from 'react-leaflet'