问题描述
我有一个 React 应用程序,我在其中实现了一个 Firebase 数据库,其中包含一个表单,用户可以在其中记录他们的联系信息、使用谷歌地点自动完成功能的来源和目的地地址,以及要随数量移动的项目列表。然后应用程序进入一个页面,显示该数据库中所有文档的卡片。单击时,卡片会显示一个模式,其中包含文档中包含的所有信息以及用于编辑文档的表单。唯一的问题是 Google Map Places API 不会加载到自动完成选项的编辑表单中。
模态的设置方式是,当单击卡片时,道具“selectedDiv”设置为该卡片所代表的任何文档的 doc.id,并且模态显示该文档。
显示所有这些的路线代码:
function App() {
const [selectedDiv,setSelectedDiv] = useState(null);
return (...
...<Route path="/Appointments" component={Appointments}>
<Appointments setSelectedDiv={setSelectedDiv} />
{selectedDiv && (<div>
<Modal selectedDiv={selectedDiv} setSelectedDiv={setSelectedDiv}/>
</div>
)}
</Route>...
模态内的代码,调用编辑表单:
<div className={classes.dataDiv}>
<TabPanel value={value} index={0} className={classes.dataPanel}>
...
</TabPanel>
<TabPanel value={value} index={1} className={classes.dataPanel}>
...
</TabPanel>
<TabPanel value={value} index={2} className={classes.dataPanel}>
...
</TabPanel>
<TabPanel value={value} index={3} className={classes.dataPanel}>
<div className={classes.dataContent}>
<h3>Edit Your Information</h3>
<MoveEdit selectedDiv={selectedDiv} />
</div>
</TabPanel>
</div>
最后是编辑表单中地方 API 的代码:
const { ref } = usePlacesWidget({
apiKey: process.env.REACT_APP_GOOGLE,onPlaceSelected: (place) => {
formik.setFieldValue("origin.Origin",place.formatted_address);
formik.setFieldValue("origin.OriginGeometry.OriginLat",JSON.stringify(place.geometry.location.lat()))
formik.setFieldValue("origin.OriginGeometry.OriginLng",JSON.stringify(place.geometry.location.lng()))
},options: {
componentRestrictions: { country: "us" },types: ["address"],fields: ["formatted_address","geometry"],},});
其中有两个,但它们的功能完全相同,所以我认为没有必要同时包含两者。这几乎是从我的创建表单复制和粘贴的,所以我知道它可以在那里工作。唯一的问题是在这个模态内。有趣的是,我设置了一个从 react-router-dom 到原始创建表单的链接,从模态,而地点 API 在被定向到原始创建表单后不会加载。不过,刷新解决了这个问题,所以我认为它一定与 selectedDiv 状态有关。
用于谷歌地点自动完成的依赖项是 react-google-autocomplete 将提供任何进一步的说明或必要的代码来解决这个问题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)