У меня есть компонент счетчика, созданный этим пакетом npm.
import * as React from 'react';
import { Theme, createStyles, withStyles, WithStyles } from '@material-ui/core';
import withRoot from '../../../withRoot';
import Countdown, { CountdownRenderProps } from 'react-countdown-now/dist';
const styles = (theme: Theme) =>
createStyles
({});
interface IProps
{}
interface IState
{
seconds: number;
}
class Counter extends React.Component<IProps & WithStyles<typeof styles>, IState>
{
constructor(props: IProps & WithStyles<typeof styles>)
{
super(props);
this.state =
{
seconds: 60000
}
}
// Random component
Completionist = () => <span>Time is up!</span>;
// Renderer callback with condition
renderer = (props: CountdownRenderProps): JSX.Element =>
{
if (props.completed)
{
// Render a completed statep
return this.Completionist();
}
else
{
// Render a countdown
return <span>{props.minutes}:{props.seconds}</span>;
}
}
render()
{
const css = this.props.classes;
const seconds = this.state.seconds;
const Body = () =>
<Countdown date={Date.now() + seconds} renderer={ this.renderer } />
return Body();
}
}
export default withRoot(withStyles(styles)(Counter));
В моем проекте мне нужен этот счетчик на 4 разных страницах, следующих друг за другом, составалось время на новой странице.
Моя идея состояла в том, чтобы создать синглтон, но у меня не получилось.Любая помощь!Thnx