Я использую свой пользовательский компонент Button.
Раньше мне не нужен был ref
в моем компоненте Button.
Но теперь мне нужно сделать так, чтобы он поддерживал ref
.
Итак, я добавил React.forwardRef()
в код.
И работает хорошо.
Это мой пример.
interface ButtonProps {
children?: string | number | React.ReactNode;
style?: CSSProperties;
className?: string;
onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
disabled?: boolean;
block?: boolean;
}
export const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(({disabled, onClick = ()=>{}, className, block, style, children}, ref ) => {
return (
<button ref={ref} disabled={disabled} onClick={onClick} className={`Button ${className} ${block ? '--block' : ''}`} style={style}>
{children}
</button>
)});
В моем проекте я использую более 100 компонентов Button,
Но только некоторые компоненты нуждаются в ref
.
Это означает, что почти все кнопки не нужны React.forwardRef()
.
Можно ли использовать компонент, как указано выше? или
Должен ли я разделять компонент после использования?