Estoy usando el folleto de reacción.
Por ejemplo, quiero establecer límites para mapear fuera del archivo donde se llama <MapContainer> . Para esto necesito usar const map = useMap(); . ¿Cómo conecto useMap() con el archivo donde se llamó?
O para aclarar aún más... Quiero conectarme con el mapa fuera del archivo de mapa para poder agregar/eliminar cosas. Por ejemplo, quiero habilitar marcadores fuera del archivo donde se llama <MapContainer> .
ghybs probablemente tenga razón en que probablemente esté pensando en hacer algo que realmente no requiera el objeto L.map en un ancestro del MapContainer . Especialmente si simplemente está hablando sobre el uso de componentes de Marker de mapa: solo son útiles como elementos secundarios de un mapa. Dicho esto, lo que estás hablando de hacer es simple de configurar. Un ejemplo de cómo hacer que el objeto L.map subyacente esté disponible se encuentra en los documentos del folleto de reacción .
Un ejemplo rápido:
const App = () => { const [mapRef, setMapref] = useState(); return ( <> <Map setMapRef={setMapRef} /> <SomewhereElse mapRef={mapRef} /> </> ) } const Map = ({ setMapRef }) => { return <MapContainer whenCreated={setMapRef} /> } Una vez que MapContainer carga el mapa del folleto, se whenCreated , que luego activa la devolución de llamada setMapRef . La instancia de L.map ahora se guarda en la variable de estado mapRef en App y está disponible allí para usarse en SomewhereElse .