使用TypeScript写React,如何使用React-router-dom相关的api
先上代码:
import { RouteComponentProps } from 'react-router-dom'
const Login: React.FC<any> = ({ history }: RouteComponentProps) => {
function handleSubmit() {
history.push('/')
}
return (
<div>
<button onClick={handleSubmit}>登录</button>
</div>
)
}
上面的代码是能够正常工作的,但是使用了any
,不是很好。所以我定义了一个接口:
import { RouteComponentProps } from 'react-router-dom'
interface Props {
history: RouteComponentProps
}
const Login: React.FC<Props> = (props) => {
function handleSubmit() {
props.history.push('/')
}
return (
<div>
<button onClick={handleSubmit}>登录</button>
</div>
)
}
这样写了之后就报错了,ts的提示:Property 'push' does not exist on type 'RouteComponentProps<{}, StaticContext, any>'
,
我换成这样的写法也是提示同样的错误:
import { RouteComponentProps } from 'react-router-dom'
interface Props {
history: RouteComponentProps
}
const Login: React.FC<Props> = ({ history }) => {
function handleSubmit() {
history.push('/')
}
return (
<div>
<button onClick={handleSubmit}>登录</button>
</div>
)
}
难道是接口定义错了吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
或者
正常情况推荐第一种