I am using react "react": "^17.0.0",
function component to pass parameter like this:
interface RoleProps {
roles: IRoleState
dispatch: Dispatch
roleListLoading: boolean
}
const EditPermission: React.FC<RoleProps> = ({roles, dispatch, roleListLoading}) => {
}
but I still want to pass another parameter into the function component by using props like this:
<EditPermission
onSubmit={async (value) => {
if(!currentRow){
return
}
const success = await handleUpdate(value,currentRow.id);
if (success) {
handleUpdateModalVisible(false);
setCurrentRow(undefined);
if (actionRef.current) {
actionRef.current.reload();
}
}
}}
onCancel={() => {
handleUpdateModalVisible(false);
setCurrentRow(undefined);
}}
updateModalVisible={editPermissionModalVisible}
values={currentRow || {}}
/>
I have alredy define the props like this:
export type UpdateFormProps = {
onCancel: (flag?: boolean, formVals?: FormValueType) => void;
onSubmit: (values: FormValueType) => Promise<void>;
updateModalVisible: boolean;
values: Partial<API.InterviewListItem>;
};
what should I do to pass both parameter into the function component? is it possible to pass both parameter into component?
CodePudding user response:
I'm not sure if that's what you're looking for. but, If you want to use both types on the same component, you can extend RoleProps
interface with UpdateFormProps
type.
something like this
interface RoleProps extends UpdateFormProps {
roles: IRoleState
dispatch: Dispatch
roleListLoading: boolean
}
Now you can use the props from UpdateFormProps
like this
const EditPermission: React.FC<RoleProps> = ({roles, dispatch, roleListLoading, onCancel, onSubmit, updateModalVisible, values}) => {
//
}
CodePudding user response:
If you want to make sure that you pass all the props of the interface RoleProps OR all the props of the type UpdateFormProps then you can do this:
const EditPermission: React.FC<RoleProps | UpdateFormProps> = ...