我在AppBar中有一个搜索TextField,我在某些页面上动态加载。如果组件在我的“MainView”中加载,该组件是需要搜索的列表,则组件可以动态地通过ComponentWillMount告知搜索框显示。该组件还需要隐藏UnMount上的搜索框。但是,每当我卸载搜索框组件时,我都会收到以下错误:
未捕获的不变违规:traverseParentPath(...):无法遍历和转移到相同的ID,``。
以下是显示文本搜索的代码:'header'在render方法中定义,它只调用redux状态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>
}
/>
如果我注释掉TextField,我从未收到错误。另外,如果我没有卸载它,我没有收到错误。
有什么想法吗?
更新:这是0.15.0-alpha.2版本的材料-ui。我可以确认版本14.4中没有发生此错误。