Reactjs Antd 库和 google 地图 Places
Reactjs Antd library and google maps Places
我和我的团队一直在使用 Antd
反应组件库。我被要求将 google.map
的 Places 库连接到一个输入字段,以便我们可以获得一个简单的地址下拉列表。
问题是 Antd
的输入组件隐藏在引擎盖下。所以 当我从 google.maps
地点菜单中点击一个地址时,它会在输入字段中出现一毫秒然后消失 。
event.preventDefault()
、event.stopPropoagtion()
我都试过了。将 google.maps
地方返回的数据与嵌套良好的 react-ui 组件结合起来有什么技巧吗?
这是一个很简单的状态管理的事情。听起来 google-places 输入字段工作正常,否则根本不会显示。如果您的输入字段连接到比方说 Reactjs,那么您将需要将 google-places 响应数据添加到您的状态管理中,它应该停止消失。当公司使用自定义状态管理系统时,这种情况经常发生。
(评论太长)
我有完全相同的问题。
我将 NextJS 与功能组件和 @react-google-maps/api 库一起使用。
我使用的解决方法: 简单的 <input>
元素结合正确的 CSS class 使它看起来像 Antd <Input>
.
像这样:
<LoadScript
googleMapsApiKey={process.env.NEXT_PUBLIC_GOOGLE_MAP_API_KEY}
libraries={libraries}
>
<Autocomplete
onLoad={(autocomplete) => setAutocomplete(autocomplete)}
onPlaceChanged={onPlaceChanged}
restrictions={{ country: "fr" }}
fields={['geometry.location', 'formatted_address']}
>
<input
type="text"
placeholder="Enter your address"
className="ant-input"
/>
</Autocomplete>
</LoadScript>
这样,当从“位置”菜单中单击地址时,其值将保留在输入字段中。
如果有人有更好、更简单的解决方案,我正在寻找一个!
我和我的团队一直在使用 Antd
反应组件库。我被要求将 google.map
的 Places 库连接到一个输入字段,以便我们可以获得一个简单的地址下拉列表。
问题是 Antd
的输入组件隐藏在引擎盖下。所以 当我从 google.maps
地点菜单中点击一个地址时,它会在输入字段中出现一毫秒然后消失 。
event.preventDefault()
、event.stopPropoagtion()
我都试过了。将 google.maps
地方返回的数据与嵌套良好的 react-ui 组件结合起来有什么技巧吗?
这是一个很简单的状态管理的事情。听起来 google-places 输入字段工作正常,否则根本不会显示。如果您的输入字段连接到比方说 Reactjs,那么您将需要将 google-places 响应数据添加到您的状态管理中,它应该停止消失。当公司使用自定义状态管理系统时,这种情况经常发生。
(评论太长)
我有完全相同的问题。 我将 NextJS 与功能组件和 @react-google-maps/api 库一起使用。
我使用的解决方法: 简单的 <input>
元素结合正确的 CSS class 使它看起来像 Antd <Input>
.
像这样:
<LoadScript
googleMapsApiKey={process.env.NEXT_PUBLIC_GOOGLE_MAP_API_KEY}
libraries={libraries}
>
<Autocomplete
onLoad={(autocomplete) => setAutocomplete(autocomplete)}
onPlaceChanged={onPlaceChanged}
restrictions={{ country: "fr" }}
fields={['geometry.location', 'formatted_address']}
>
<input
type="text"
placeholder="Enter your address"
className="ant-input"
/>
</Autocomplete>
</LoadScript>
这样,当从“位置”菜单中单击地址时,其值将保留在输入字段中。
如果有人有更好、更简单的解决方案,我正在寻找一个!