这个警告是我们使用Link组件实现跳转时出现的
以register组件已经有账号跳转到login组件为例
import {Link} from 'react-router-dom'
<Button><Link to='/login'>已经有账号</Link></Button>
效果如下:
可以看到Link组件有默认样式,点击还会有红色,使用起来毫无问题,跳转自如
但是控制台会报如下警告:
意思是不能再 <a>标签中重复的出现<a>标签。 显然antd的Button组件使用的DOM元素是<a>。
解决办法使用history实现跳转
toLogin(){
this.props.history.push('/login')
}
<Button onClick={()=>{this.toLogin()}}>已经有账号</Button>
history.push和history.replace都可以实现跳转,区别是如果用push在login界面点击左回退箭头会回到register界面,而replace不会。
效果如下:
可以看到还帮我们消除了默认样式,何乐不为。
至此,问题解决。