我在将 ref
与样式化组件一起使用时遇到困难。当我尝试像下面这样在我的类方法中访问它们时,出现以下错误:
Edit.js:42 Uncaught TypeError: this…..包含不是函数
constructor(props) {
....
this.setWrapperRef = this.setWrapperRef.bind(this);
this.handleClickOutside = this.handleClickOutside.bind(this);
}
----------
setWrapperRef = (node) => {
this.wrapperRef = node;
}
handleEdit = (e) => {
e.preventDefault();
this.props.onEdit(this.props.id, this.state.title);
}
----------
<Wrapper onSubmit={this.handleEdit} ref={this.setWrapperRef}>
...
</Wrapper>
我从 这个问题 中找到了代码
我在这里做错了什么?
原文由 nikjohn 发布,翻译遵循 CC BY-SA 4.0 许可协议
我自己找到了答案。解决方案是使用
innerRef
而不是ref
因为ref
本身指向样式化组件而不是 DOM 节点。可以在 GitHub 上找到详细的讨论