【发布时间】:2020-02-07 16:11:07
【问题描述】:
我目前正在运行 React 16.8.6 和 Styled Components 4.3.2,但在尝试使用 React.forwardRef 时遇到了问题。
在 Comments.js 中
import CommentItem from './CommentItem';
class Comments extends Component {
constructor(props) {
super(props);
this.items = [];
}
componentDidMount() {
console.log(this.items);
}
render() {
const { comments } = this.props;
return (
<div>
{comments.length > 0 &&
comments.map((comment, i) => {
this.items[i] = React.createRef();
return (
<CommentItem
ref={this.items[i]}
key={comment.id}
comment={comment}
/>
);
})}
</div>
);
}
}
在 CommentItem.js 中
import styled from "styled-components";
import { Media } from "react-bulma-components";
const CommentMediaWrapper = styled(Media)`
position: relative;
`;
const CommentItem = React.forwardRef(
({ comment }, ref) => {
return (
<CommentMediaWrapper ref={ref}>
<div>...</div>
</CommentMediaWrapper>
);
}
);
export default CommentItem;
在 Comments.js 中将控制一个数组 [{ current: null },...]
我不知道如何将 ref 传递给CommentMediaWrapper。我不想在CommentMediaWrapper 外部或内部添加新元素。感谢您的帮助。
【问题讨论】: