[英]Property 'submitAction' is missing in type '{}' but required in type
我正在尝试学习 redux forms 和 typescript 但我遇到了一个我无法解决的错误。
错误是: Property 'submitAction' is missing in type '{}' but required in type 'Readonly<IDispatchProps & Partial<ConfigProps<IUser, IDispatchProps, string>>>'.ts(2741)
这是我认为错误所在的地方......
//Form.tsx
import * as React from 'react';
import { Input } from "../FormInput/FormInput";
import { Button } from "../FormButton/FormButton"
import { Validation } from "./FormValidation"
import { reduxForm, InjectedFormProps, Field } from 'redux-form';
import './formStyles.scss';
export interface IUser {
title: string;
description: string;
}
export interface IDispatchProps {
submitAction:() => any;
}
const Form = (props:IDispatchProps & InjectedFormProps<IUser, IDispatchProps>) => (
<div className="LoginFormWrapper">
<div className="bodyWrapper">
<Field
id="title"
name="title"
placeholder="Enter title"
type="text"
component={Input}
/>
<Field
id="description"
name="description"
placeholder="Enter description"
type="text"
component={Input}
/>
<div className="buttonWrapper">
<Button
text="Submit"
onClick={() => props.submitAction()}
isDisabled={props.invalid}
/>
</div>
</div>
</div>
);
export const FormEx = reduxForm<IUser, IDispatchProps>({
form: 'Form',
validate: Validation,
})(Form);
错误显示在<FormEx />
import React from 'react';
import { connect } from 'react-redux';
import { createStream } from '../../actions';
import './formStyles.scss';
import { FormEx } from './Form/From';
interface StreamCreate {
createStream: any;
}
class StreamCreate extends React.Component<StreamCreate> {
render() {
return (
<div>
<h3>Create</h3>
<FormEx />
</div>
)
}
}
export default connect(null, { createStream })(StreamCreate);
谢谢
您的Form
组件有一个必需的submitAction
道具。 (在您的IDispatchProps
接口中定义。)
将任何类型为() => any
的 function 传递给您的<FormEx />
组件,错误应该 go 消失。
例如:
<FormEx submitAction={console.log("submit")} />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.