У меня есть пользовательский компонент кнопки Material-UI:
type ButtonProps = { disabled: boolean; text: string };
export function CustomButton({ disabled, text }: ButtonProps) {
return (
<Button
type="submit"
disabled={disabled}
style={{
background: '#6c74cc',
borderRadius: 3,
border: 0,
color: 'white',
height: 48,
padding: '0 30px',
}}>
{text}
</Button>
);
}
<CustomButton
disabled={
!formik.values.userId ||
!formik.values.numberPlate ||
!formik.values.freeSeats
}
text={'Add Vehicle'}
/>
В большинстве случаев мне не нужно передавать обработчик событий. Но в одном конкретном случае мне нужно добавить onClick={() => ShowUsers()}
Как я могу изменить свой пользовательский компонент так, чтобы мне было необязательно передавать обработчик событий. Я не изменяю его использование во всех других местах, где я уже использую кнопку.
Я пробовал это:
type ButtonProps = { disabled: boolean; text: string, onClick?: () => void; };
// submit button
export function CustomButton({ disabled, text, onClick }: ButtonProps) {
return (
<Button
type="submit"
disabled={disabled}
style={{
background: '#6c74cc',
borderRadius: 3,
border: 0,
color: 'white',
height: 48,
padding: '0 30px',
}}>
{text}
{onClick}
</Button>
);
}
<CustomButton disabled={!searchItem} text={'CHECK'} onClick={ShowUsers()}></CustomButton>
, но при onClick выдает ошибку, что
button.tsx(4, 55): The expected type comes from property 'onClick' which is declared here on type 'IntrinsicAttributes & ButtonProps'
Возможно, некоторая проблема с синтаксисом.