Я новичок в реагировании, я также использую graphql в своем проекте. Кто-то может помочь в преобразовании компонента в реагирующие хуки.
class Detail extends Component {
static propTypes = {
classes: PropTypes.shape(commonStyles).isRequired,
siteId: PropTypes.string
};
state = {
showDialog: false
};
handleRowHistory = () => {
this.setState({ showDialog: true });
};
render() {
const { showDialog } = this.state;
const { data, classes, siteId } = this.props;
if (data.error) {
return <CardErrorIndicator apolloData={data} />;
} else if (data.loading) {
return <CardLoadingIndicator />;
}
const { sites } = data;
const { controller } = _.first(sites);
return (
<div
className={classNames(
classes.overall,
classes.basePadding,
"site-assets-detail-page"
)}
>
<SiteRowController
controller={controller}
onRowHistoryClick={this.handleRowHistory}
/>
{showDialog && (
<RowHistoryDialog
open={showDialog}
siteId={siteId}
onClose={() => this.setState({ showDialog: false })}
/>
)}
</div>
);
}
}
const DetailWithData = compose(
graphql(SITE_ASSETS_DETAIL_QUERY, {
options: props => ({
variables: {
siteId: props.siteId
},
pollInterval: 5000
})
})
)(Detail);
export default withStyles(commonStyles)(DetailWithData);
Я понимаю, что React-Hooks является альтернативой стилю React Class. Вопрос в том, смогу ли я изменить рефакторинг и добавить к нему хиты React.
Спасибо