【发布时间】:2018-11-09 14:21:40
【问题描述】:
我正在开发react 项目,在这个项目中,我和我的同事正在使用Material UI,出于某种原因,我想访问由HOC 包装的另一个组件的DOM node。为此,我使用了 react 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} />
在 Table 的 componentDidMount 内部,组件 I console.log(this.header) 如下所示:
我在网上寻找并找到一些GitHub 问题页面并尝试使用innerRef 而不是ref,但这对我没有帮助。
如何访问 DOM 节点来计算其高度?
【问题讨论】:
标签: javascript reactjs material-ui react-with-styles