我正在使用React 16.3.1和Styled Components 3.2.5,目前遇到了一个问题,尝试使用React.forwardRef。
我有一个Input组件,由包含标签和输入字段的包裹div组成。但是,我希望能够直接将引用转发到输入字段,而不必通过主包装div进行遍历。
那是我组件的简化版本。但是,这会产生以下错误:
我有一个Input组件,由包含标签和输入字段的包裹div组成。但是,我希望能够直接将引用转发到输入字段,而不必通过主包装div进行遍历。
const Input = React.forwardRef((props, ref) => (
<Wrapper>
<Label htmlFor={props.id} required={props.required}>
{props.label}
</Label>
<InputField
id={props.id}
...
/>
</Wrapper>
));
那是我组件的简化版本。但是,这会产生以下错误:
Uncaught Error: Cannot create styled-component for component: [object Object]
也许升级到Styled Components v4会有所帮助?但在升级之前是否有我还没有发现的解决方案呢?
谢谢。
ìnnerRef
而不是ref
,因此我稍微修改了您的答案。 除此之外,我已经成功让它工作了。 - Yuschick