问题描述
我创建了一个带有“电子邮件”和“密码”的接口 ILogin:
export interface ILogin {
email: string
password: string
}
这是我使用它的代码:
interface ILoginProps {
login: (a: ILogin) => void
}
class Login extends React.Component<ILoginProps> {
public render() {
const { login } = this.props
return(
<Container center={true}>
<Card>
<Title>Log In</Title>
<LoginForm onSubmit={login} />
</Card>
</Container>
)
}
}
const mapStatetoProps = (state: any) => state
const mapdispatchToProps = (dispatch: any) => ({
login: (payload: any) => dispatch(loginThunk(payload))
})
export default connect(mapStatetoProps,mapdispatchToProps)(Login)
LoginForm 代码,我使用的是来自 redux-form 的 InjectedFormProps:
import React from 'react'
import { Link } from 'react-router-dom';
import {reduxForm,InjectedFormProps,Field} from 'redux-form';
class LoginForm extends React.Component<InjectedFormProps> {
public render() {
const { handleSubmit } = this.props
return(
<form onSubmit={handleSubmit}>
<Field label='Mail' name='email' type='email' placeholder='Mail' component={Input} />
<Field label='Password' name='password' type='password' placeholder='Password' component={Input} />
<Button block={true}>Confirm</Button>
<Center>
<Link to='/register'>Register</Link>
</Center>
</form>
)
}
}
export default reduxForm({
form: 'login',})(LoginForm)
并且我收到此错误,因为在 onSubmit 中似乎不可分配:
TypeScript error in ****:
Type '(a: ILogin) => void' is not assignable to type 'FormSubmitHandler<{},{},string> | SubmitHandler<{},string> | undefined'.
Type '(a: ILogin) => void' is not assignable to type 'FormSubmitHandler<{},string>'.
Types of parameters 'a' and 'values' are incompatible.
Type '{}' is missing the following properties from type 'ILogin': email,password TS2322
20 | <Card>
21 | <Title>Log In</Title>
> 22 | <LoginForm onSubmit={login} />
| ^
23 | </Card>
24 | </Container>
25 | )
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)