如何将输入表单组件覆盖在 ReactMapGL 组件上?
How to put a input form component overlay on ReactMapGL component?
我是 React 应用程序开发的新手。我正在尝试创建一个使用 ReactMapGL class 来自 react-map-gl 库的反应应用程序。这会渲染地图(我创建了地图组件)。我想显示一个输入表单(我创建了 SampleInputForm 组件)作为此地图上朝向页面右侧的叠加层。
我正在为前端 UI 设计使用 material-ui 框架。下面是代码片段:-
const useStyles = makeStyles((theme: Theme) =>
createStyles({
root: {
display: 'flex',
flexDirection: 'column',
overflow: 'hidden',
},
})
)
<div className={classes.root}>
<Map />
<Sampleinputform />
</div>
这会在页面下方的地图框区域之外显示表单。
如果我在我的地图组件中使用 Sampleinputform 作为子组件,那么它工作正常,我得到一个输入表单作为页面右上角 mapbox 顶部的叠加层,下面是代码片段:-
export default function Map() {
return (
<ReactMapGL>
// some code to render the map goes here
<SampleInputForm/>
</ReactMapGL>
}
我在第一个代码片段中遗漏了什么,所以我不需要在 Map 组件中传递表单?
使用 help 发现 --
我能够将组件 <SampleInputForm/>
放在 <ReactMapGL>
之外。
.control-panel{
#the styling elements goes here
}
const defaultContainer = ({ children }) => <div className="control-panel">{children}</div>
const SampleInputForm: React.FC = () => {
const Container = defaultContainer
return (
<Container>
<form noValidate>
//Input components goes here
<form>
</Container> )
}
如果有其他更好的解决方案,请提出建议。
我是 React 应用程序开发的新手。我正在尝试创建一个使用 ReactMapGL class 来自 react-map-gl 库的反应应用程序。这会渲染地图(我创建了地图组件)。我想显示一个输入表单(我创建了 SampleInputForm 组件)作为此地图上朝向页面右侧的叠加层。 我正在为前端 UI 设计使用 material-ui 框架。下面是代码片段:-
const useStyles = makeStyles((theme: Theme) =>
createStyles({
root: {
display: 'flex',
flexDirection: 'column',
overflow: 'hidden',
},
})
)
<div className={classes.root}>
<Map />
<Sampleinputform />
</div>
这会在页面下方的地图框区域之外显示表单。 如果我在我的地图组件中使用 Sampleinputform 作为子组件,那么它工作正常,我得到一个输入表单作为页面右上角 mapbox 顶部的叠加层,下面是代码片段:-
export default function Map() {
return (
<ReactMapGL>
// some code to render the map goes here
<SampleInputForm/>
</ReactMapGL>
}
我在第一个代码片段中遗漏了什么,所以我不需要在 Map 组件中传递表单?
使用 help 发现 --
我能够将组件 <SampleInputForm/>
放在 <ReactMapGL>
之外。
.control-panel{
#the styling elements goes here
}
const defaultContainer = ({ children }) => <div className="control-panel">{children}</div>
const SampleInputForm: React.FC = () => {
const Container = defaultContainer
return (
<Container>
<form noValidate>
//Input components goes here
<form>
</Container> )
}
如果有其他更好的解决方案,请提出建议。