我有一个组件,在该组件中,当调用函数并接收到服务器的响应时,我想重定向到其他路由。我正在使用钩子。
问题是我出现TS错误Type error: 'this' implicitly has type 'any' because it does not have a type annotation. TS2683
。
在我的tsconfig中,我尝试放入"noImplicitAny": false
,但似乎不起作用。
在这种情况下是否可以解决该问题?
export const SignupForm = () => {
const name:any = handleUserInput('');
function registerUser(event: React.FormEvent<HTMLFormElement>): void {
event.preventDefault();
axios.post('/users/register', registerInfo)
.then(response => {
this.context.history.push('/some/Path');
})
}
return (
<div>
<div className="form-holder">
<form action="POST" className="form" onSubmit={(e) => registerUser(e)}>...</div>
);
}
编辑
如果我尝试在组件console.log(this)
顶部的The containing arrow function captures the global value of 'this' which implicitly has type 'any'. TS7041
答案 0 :(得分:1)
我不知道上下文来自哪里。
您可以从“反应路线”模块中使用“ withRouter” HOC 并使用props.history.push代替this.context.history.push