首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >reactjs-select +react google- place -autocomplete:如何使用place初始化

reactjs-select +react google- place -autocomplete:如何使用place初始化
EN

Stack Overflow用户
提问于 2021-10-25 04:38:54
回答 1查看 1.1K关注 0票数 0

我正在使用来自https://www.npmjs.com/package/react-google-places-autocomplete的现成组件,用于google自动完成的地方

但是我想用place初始化它。(因为当我编辑表单时,我必须显示那里的位置)

代码语言:javascript
复制
import React from "react";
import GooglePlacesAutocomplete from "react-google-places-autocomplete";

const GooglePlacesAutocompleteComponent = () => (
  <div>
    <GooglePlacesAutocomplete
      apiKey="xxxxxxxxxxxxxxx"
    />
  </div>
);

export default Component;

以上是组件。

使用就像

代码语言:javascript
复制
<GooglePlacesAutocompleteComponent />}

我知道react-google-places-autocomplete使用react-select AsyncSelect

代码语言:javascript
复制
    <AsyncSelect
      {...selectProps}
      loadOptions={fetchSuggestions}
      getOptionValue={({ value }) => value.place_id}
    />

获取项是{label和value}的列表。

传递初始值的HOw

EN

回答 1

Stack Overflow用户

发布于 2021-12-22 15:08:39

按照创建者的建议,这最好是在React文档之后实现。但是要实现你想做的事情,你需要反应状态。

代码语言:javascript
复制
import { useState, useEffect } from "react"
import GooglePlacesAutocomplete from "react-google-places-autocomplete"

const Places = () => {
  const [data, setData] = useState("");
  //our default data

  useEffect(() => {
    data === "" ? setData("") : setData(data.label);
  }, [data]);
  // updating our default data

  return (
    <GooglePlacesAutocomplete
      apiKey={process.env.REACT_APP_MAP_API_KEY}
      autocompletionRequest={{
        componentRestrictions: {
          country: ["ng"] //to set the specific country
        }
      }}
      selectProps={{
        defaultInputValue: data, //set default value
        onChange: setData, //save the value gotten from google
        placeholder: "Start Destination",
        styles: {
          input: (provided) => ({
            ...provided,
            color: "#222222"
          }),
          option: (provided) => ({
            ...provided,
            color: "#222222"
          }),
          singleValue: (provided) => ({
            ...provided,
            color: "#222222"
          })
        }
      }}
      onLoadFailed={(error) => {
        console.log(error);
      }}
    />
  )
}

export default Places;

我们使用useEffect更新我们设置的在得到实际值的条件下所设置的defualt值。如果我们没有得到真正的价值,我们就不能拯救它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69702936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档