- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个容器组件和一个表单组件:
表单组件:
import * as React from 'react';
import { reduxForm, Field, InjectedFormProps } from 'redux-form';
export type LoginState = {
email: string;
password: string;
};
interface LoginProps extends InjectedFormProps {
isLoading: boolean;
onSubmit(userCredential: LoginState): void;
}
class Login extends React.Component<LoginProps, LoginState> {
constructor(props: LoginProps) {
super(props);
this.state = {
email: '',
password: '',
otp: '',
};
}
onEmailChange = (e: React.FormEvent<HTMLInputElement>) => {
this.setState({ email: e.currentTarget.value.trim() });
};
onPasswordChange = (e: React.FormEvent<HTMLInputElement>) => {
this.setState({ password: e.currentTarget.value.trim() });
};
onSubmit = () => {
this.props.onSubmit(this.state);
};
render() {
return (
<div>
<h3 className="ac-section__title">Login</h3>
<div className="ac-section__body">
<form onSubmit={this.props.handleSubmit(this.onSubmit)}>
<Field
name="email"
placeholder="Email"
component={renderInput}
type="email"
value={this.state.email}
onChange={this.onEmailChange}
validate={[required, email]}
/>
<Field
name="password"
placeholder="Password"
component={renderInput}
type="password"
value={this.state.password}
onChange={this.onPasswordChange}
validate={required}
/>
<br />
<div className="loginBtnContainer">
<button className="btn primaryButton" type="submit">
Login
</button>
</div>
</form>
<div className="ac-password__wrapper">
<Link to="/forgot-password" className="ac-password-link">
Forgot your password?
</Link>
</div>
</div>
</div>
);
}
}
export default reduxForm({ form: 'loginForm' })(Login);
容器组件:
return (
<div>
<Login onSubmit={this.onSubmit} isLoading={true} />
/* here throwing error: Property 'isLoading' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<FormInstance<{}, Partial<ConfigProps<{}, {}>>>> & ...'. */
</div>
);
这里 isLoading
没有作为 props 传递给表单组件。请帮我想出一个好的解决方案。
谢谢:)
最佳答案
Redux Form是一种在 React + Redux 环境中进行表单处理和验证的非常有效的方法。在这里,您遇到的问题似乎与缺少 Prop 和一些接口(interface)定义有关。我在最后提供了一个沙箱。
一个解决方案可能是自己指定表单接口(interface),像这样:
export interface FormInterface {
handleSubmit: PropTypes.func;
handleChange?: PropTypes.func;
reset?: PropTypes.func;
pristine?: PropTypes.bool;
submitting?: PropTypes.bool;
error?: PropTypes.bool;
invalid?: PropTypes.bool;
submitSucceeded?: PropTypes.bool;
submitFailed?: PropTypes.bool;
anyTouched?: PropTypes.bool;
}
并使用它来派生 LoginProps
。然后 typescript 不会提示缺少 Prop ,这显然是 redux 表单的工作方式。
查看此 sandbox了解详情。我也为您介绍了一些小问题。
希望这对您有所帮助。
关于reactjs - 属性 'isLoading' 在类型 'IntrinsicAttributes & IntrinsicClassAttributes<FormInstance<{}, Partial<ConfigProps<{}, {}>> -Redux 表单中不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48651100/
我使用 react.js 一段时间了。最近,我开始看到如下错误: Type '{}' is not assignable to type 'IntrinsicAttributes & Intrinsi
我目前正在制作一个简单的 React 应用程序。这是我的 index.tsx import * as React from 'react'; import * as ReactDOM from 're
TypeScript 的新手,感觉它应该非常简单,但我对语法不太满意! 非常简单的组件: import * as React from "react"; import ControlArea from
我是使用Typescript进行React的新手,并且收到一条错误消息,指出 No overload matches this call. Overload 1 of 2, '(props: Read
我已经使用 typescript 创建了基本的 nextjs 应用程序 链接 - https://github.com/zeit/next.js/tree/master/examples/with-t
我正在尝试将 React 与 TypeScript 和 Material-UI 的组件一起使用。不幸的是,我收到了这样的错误: Property 'openToYearSelection' does
我正在开发一个使用 Typescript、React 和 Redux(全部在 Electron 中运行)的项目,当我将一个基于类的组件包含在另一个组件中并尝试在它们之间传递参数时,我遇到了一个问题。粗
我对 React 和 TypeScript 还很陌生。我正在 Visual Studio 2017 中开发一个网页,其中有一个搜索组件,我想在我的主页组件中使用它。但是在将搜索导入我的主组件后,我得到
我是 typescript 和 redux 的新手,我正在尝试使用 redux-form 中的 SimpleForm 示例。 我有以下表单组件 import * as React from 'reac
我有一个容器组件和一个表单组件: 表单组件: import * as React from 'react'; import { reduxForm, Field, InjectedFormProps
我是一名优秀的程序员,十分优秀!