Из вашего вопроса я понимаю, что вы хотите вызывать FetchData только при нажатии кнопки.Если это так, то вам нужно иметь логическое состояние, как показано ниже.Когда кнопка нажата, установите для этого логического значения значение true, используя setState, и вызывайте компонент FetchData только тогда, когда логическое значение равно true.Теперь вам также нужно сделать его ложным, чтобы он снова работал при повторном нажатии кнопки.Так что вы можете сделать это в обработчике событий закрытия ящика.
class MiniDrawer extends React.Component {
state = {
open: false,
callFetchData: false
};
handleDrawerOpen = () => {
this.setState({ open: true });
};
handleDrawerClose = () => {
this.setState({ open: false, callFetchData: false });
};
handleClick = () => {
this.setState({
callFetchData: true
});
}
render() {
const { classes, theme } = this.props;
const { callFetchData } = this.state;
return (
//main part of where help is needed
<main className={classes.content}>
<div className={classes.toolbar} />
<Button onClick={this.handleClick}>{'Get Devices'}</Button>
{callFetchData && <FetchData />}
</main>
</div>
);
}
}
MiniDrawer.propTypes = {
classes: PropTypes.object.isRequired,
theme: PropTypes.object.isRequired,
};
export default withStyles(styles, { withTheme: true })(MiniDrawer);