reactjs - 我可以自动聚焦 mapbox-gl react 地理编码器吗

标签 reactjs mapbox-gl-js mapbox-gl

我们正在使用 React's wrapper to Mapbox geocoder component .我们的代码基本上是 README 中的代码,除了我们仅在请求时显示地理编码器输入字段(当单击某些“编辑地址”按钮时)。

是否可以自动聚焦“搜索...”<input/>字段(由 <Geocoder /> 创建)组件,以便用户可以在地理编码器出现后立即开始输入?

最佳答案

您应该使用 Geocoders onInit 属性,它将传递一个地理编码器实例,并在地理编码器初始化时调用。

class App extends Component {
  state = {
    viewport: {
      width: 400,
      height: 400,
      latitude: 37.7577,
      longitude: -122.4376,
      zoom: 8,
    },
    searchResultLayer: null,
  };

  // rest of the code

  handleGeocoderInit = (geocoderInstance) => {
    const inputEl = geocoderInstance._inputEl;
    inputEl.focus();
  };

  render() {
    const { viewport, searchResultLayer } = this.state;

    return (
      <MapGL
        ref={this.mapRef}
        {...viewport}
        onViewportChange={this.handleViewportChange}
        mapboxApiAccessToken={MAPBOX_TOKEN}>
        <Geocoder
          mapRef={this.mapRef}
          onResult={this.handleOnResult}
          onViewportChange={this.handleGeocoderViewportChange}
          mapboxApiAccessToken={MAPBOX_TOKEN}
          position="top-left"
          onInit={this.handleGeocoderInit}
        />
        <DeckGL {...viewport} layers={[searchResultLayer]} />
      </MapGL>
    );
  }
}

render(<App />, document.getElementById('root'));

关于reactjs - 我可以自动聚焦 mapbox-gl react 地理编码器吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54576282/

相关文章:

javascript - React 设置一次性路线

reactjs - 在 React 组件中只浅层提供 props 是最佳实践吗?

html - 2 个 div 之间重叠

reactjs - TypeError : _mapboxGl. default.Map 不是构造函数

javascript - mapboxgl : create a map without displaying it

android - 使用 Android Mapbox SDK 下载离线 map

reactjs - React Swiper Navigation 不工作怎么工作呢?

javascript - 在 Mapbox gl 中添加固定方 block ?

mapbox-gl - Mapbox GL 3D 单体建筑高光选择

javascript - map 框 gl 与 React js 的错误行为