Reactjs 材质ui:未捕获不变冲突:traverseParentPath

Reactjs 材质ui:未捕获不变冲突:traverseParentPath,reactjs,material-ui,Reactjs,Material Ui,我在AppBar中有一个搜索文本字段,我正在某些页面上动态加载该字段。如果某个组件加载到我的“MainView”中,这是一个需要搜索的列表,那么该组件可以通过ComponentWillMount动态通知搜索框显示。该组件还需要在卸载时隐藏搜索框。但是,每当我卸载搜索框组件时,都会出现以下错误: 未捕获不变冲突:traverseParentPath(…):无法从同一ID“%1”和向同一ID“%2”进行遍历 下面是显示文本搜索的代码:“header”在上面的render方法中定义,它只调用redux

我在AppBar中有一个搜索文本字段,我正在某些页面上动态加载该字段。如果某个组件加载到我的“MainView”中,这是一个需要搜索的列表,那么该组件可以通过ComponentWillMount动态通知搜索框显示。该组件还需要在卸载时隐藏搜索框。但是,每当我卸载搜索框组件时,都会出现以下错误:

未捕获不变冲突:traverseParentPath(…):无法从同一ID“%1”和向同一ID“%2”进行遍历

下面是显示文本搜索的代码:“header”在上面的render方法中定义,它只调用redux state prop

    <AppBar
            title={this.props.title}
            onLeftIconButtonTouchTap={this.handleToggle.bind(this)}
            iconElementRight={
                <div>
                {header.showSearch
                ?
                  <TextField onChange={this.updateSearchText.bind(this)}
                  id="header_search"
                  hintText="Search..."/>
                : ''}
                  <IconMenu
                    iconButtonElement={
                       <IconButton><NavigationMoreVert /></IconButton>
                    }
                    targetOrigin={{horizontal: 'right', vertical: 'top'}}
                    anchorOrigin={{horizontal: 'right', vertical: 'bottom'}}
                  >                        
                    <MenuItem primaryText="Sign out" onTouchTap={this.logoutUser.bind(this)} leftIcon={<ActionExitToApp />} />
                  </IconMenu>
              </div>
        }
        />

如果我注释掉文本字段,我永远不会收到错误。此外,如果我不卸载它,我不会收到错误

有什么想法吗


更新:这是0.15.0-alpha.2版本的材料界面。我可以确认14.4版中没有出现此错误。

尝试将
id=“header\u search”
更改为
ref=“header\u search”
。React喜欢拥有身份证。谢谢你的建议,但那没用。我仍然收到相同的错误。请尝试将
id=“header\u search”
更改为
ref=“header\u search”
。React喜欢拥有身份证。谢谢你的建议,但那没用。我仍然会犯同样的错误。