【发布时间】:2016-06-10 10:36:40
【问题描述】:
我在 stackoveflow 中查看了一些答案。但他们中的大多数都与<table> 和<tbody> 有关。但我的问题与此无关。
我使用react-google-maps 库中的ScriptjsLoader 渲染这个<GISMapDropdownMenu> 组件。
initialCustomSetup: function() {
let GISMapDropdownMenu = this.refs.cornermenu;
if (googleMapInstance.props.map.controls[google.maps.ControlPosition.TOP_LEFT].j.length === 0) {// push only once
googleMapInstance.props.map.controls[google.maps.ControlPosition.TOP_LEFT].push(GISMapDropdownMenu);
GISMapDropdownMenu.style.zIndex = 1;
GISMapDropdownMenu.style.display = 'inline-block';
}
},
render: function() {
return(
<ScriptjsLoader
**** some setup ****
googleMapElement={
<GoogleMap
ref={googleMap => {
if (googleMap) {
googleMapInstance = googleMap;
layerType = self.props.layerType;
self.initialCustomSetup();
}
return;
}} >
<GISMapDropdownMenu
ref="cornermenu"
availableDesa={self.props.availableDesa}
availableDesaColor={self.props.availableDesaColor} />
{self.props.children}
</GoogleMap>
}
/>);
这里是GISMapDropdownMenu的实现。
<div className="gmnoprint GISMap-dropdownmenu" style={{display: 'none'}}>
<div>
<div ref="icon" className="GISMap-dropdownmenu--icon" onClick={this.handleIconClick}>
<img src={BurgerIcon} draggable="false" />
</div>
<div ref="content" className="GISMap-dropdownmenu--content" style={{display: 'none'}}>
<div className="GISMap-dropdownmenu--content_header">
<div className="GISMap-dropdownmenu--content_header__title">List of Desa ({number_of_desa})</div>
<div className="GISMap-dropdownmenu--content_header__cross" onClick={this.handleCrossCLick}>
<img src={CrossIcon} draggable="false" />
</div>
</div>
<div className='GISMap-dropdownmenu--content_list'>
{array_div_element_inrange_assigned_desa}
{array_div_element_inrange_desa}
{array_div_element_assigned_desa}
</div>
</div>
</div>
</div>
{array_div_element_something} 是这个数组。
<div key={"desa_name-"+desa.desa_name} className={"GISMap-dropdownmenu--content_list__"+desa_color.status}>Desa {desa.desa_name}</div>;
使用<GISMapDropdownMenu /> 组件时出现此错误。
Uncaught Error: Invariant Violation: processUpdates(): Unable to find child 97 of element. This probably means the DOM was unexpectedly mutated (e.g., by the browser),
我意识到了一些事情:
我在安装后移动了 <GISMapDropdownMenu /> 组件的 DOM。因为我需要它在谷歌地图的左上角。
有什么建议吗?
【问题讨论】:
-
这些是什么:
{array_div_element_inrange_assigned_desa}我认为您需要发布更多您的组件 -
@azium 抱歉。我已经更新了
-
你'移动'它是什么意思?您可以发布您的组件的代码吗?
-
@azium 再次更新。
-
嗯?因此,如果您在 initialCustomSetup 中注释掉代码,错误会消失吗?
标签: reactjs