类型错误:尝试重定向到其他路由时,“ this”隐式具有“ any”类型

时间:2019-01-26 18:11:29

标签: reactjs typescript

我有一个组件,在该组件中,当调用函数并接收到服务器的响应时,我想重定向到其他路由。我正在使用钩子。

问题是我出现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

时也收到此错误

1 个答案:

答案 0 :(得分:1)

我不知道上下文来自哪里。

您可以从“反应路线”模块中使用“ withRouter” HOC 并使用props.history.push代替this.context.history.push