Когда вы вызываете forwardRef для компонента, основанного на классе, и пытаетесь передать ref через атрибут ref, он не будет работать. Пример документации будет работать только для обычных элементов DOM. Скорее попробуйте сделать следующее:
export default forwardRef((props, innerRef) => (
<ColorCheckbox forwardRef={innerRef} {...props} />
));
Я только что использовал произвольное имя, поэтому в этом случае forwardRef, чтобы передать ссылку в качестве реквизита. В вашем компоненте, основанном на классе, я изменил часть, в которой ссылка установлена на кнопке, так:
const { key, children, selected, color, forwardRef } = this.props;
return (
<button
ref={forwardRef}
key={key}
style={{
...
Следующий подход, который они описывают в своем блоге, будет работать только для обычных элементов DOM и стилевых компонентов:
const MyComponent = forwardRef((props, ref) => (
<div ref={ref} {...props} />
));
Пожалуйста, обратитесь к моей ветке Codesandbox , чтобы увидеть рабочий пример.