Я работаю над проектом react
, и в этом проекте мы с коллегами используем Material UI
, по какой-то причине я хочу получить доступ к DOM node
другого компонента, обернутого HOC
. Я использовал реакцию ref
для этого. но я просто получаю объект withStyle
, см. ниже:
Это мой TableHead
:
import React from 'react';
import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import { TableHead as MaterialTableHead, TableRow } from '@material-ui/core';
import TableCell from './TableCell';
const TableHead = ({ classes, head, ...rest }) => (
<MaterialTableHead {...rest}>
<TableRow>
{head.map(item => (
<TableCell key={item.key} className={classes.headCell} style={{ width: item.width }}>
{item.title}
</TableCell>
))}
</TableRow>
</MaterialTableHead>
);
TableHead.propTypes = {
classes: PropTypes.object.isRequired,
head: PropTypes.arrayOf(PropTypes.shape({
key: PropTypes.string.isRequired,
title: PropTypes.string.isRequired,
width: PropTypes.string,
render: PropTypes.func,
})).isRequired,
};
TableHead.defaultProps = {};
const styles = () => ({
headCell: {
fontSize: '18px',
color: '#0c1d38',
},
});
export default withStyles(styles, { withTheme: true })(TableHead);
А в компоненте Table
я хочу вычислить высоту компонента TableHead
, поэтому я использую следующий код:
<TableHead ref={(header) => { this.header = header; }} head={head} />
и внутри componentDidMount
Table
компонента I console.log(this.header)
и просто смотрите ниже:
введите описание изображения здесь
Я ищу в Интернете и нахожу несколько GitHub
страниц с проблемами и пытаюсь innerRef
вместо ref
, но это мне не помогает.
Как я могу получить доступ к узлу DOM, чтобы вычислить его высоту?