我的应用在 React 中运行。我已经安装了带有 react-map-gl-geocoder、react-map-gl 和 mapbox-gl 的地图。我正在创建一个带有 React map GL 的地图应用程序,使用 Geocoder 进行地址搜索。地图运作良好。现在我需要能够在我的子组件 Map 中读取用户在输入地址中键入的内容,以便我可以在我为它创建的空间中更新我的母组件 App 中的状态(this.state.answerOptionsInputs .问题1)。
在此处输入图像描述 我尝试在 MapGL 组件和 Geocoder 组件的 onChange 事件上传递一个函数,但它不起作用。
Map.js
<MapGL
ref={mapRef}
{...viewport}
mapStyle="mapbox://styles/mapbox/streets-v9"
width="100%"
height="100%"
onChange={ onSearchLocation }
onViewportChange={handleViewportChange}
mapboxApiAccessToken={MAPBOX_TOKEN}>
<Geocoder
mapRef={mapRef}
containerRef={geocoderContainerRef}
onViewportChange={handleGeocoderViewportChange}
mapboxApiAccessToken={MAPBOX_TOKEN}
position="top-left"
onChange={ onSearchLocation }
/>
</MapGL>
App.js
handlerLocation(e) {
const { value } = e.target;
this.setState (prevState => {
return {
answerOptionsInputs: {
...prevState.answerOptionsInputs,
Question1: value
}
}
}) }
<Map onSearchLocation = { this.handlerLocation }/>
非常感谢提前!!