В моем компоненте React есть индикатор выполнения. Индикатор выполнения показан на рисунке ниже:
Итак, когда я нахожусь ввторая страница, стиль будет таким, как показано ниже:
И следующее изображение для третьей страницы:
Итак, я создал стиль для второй страницы.
Код выглядит следующим образом:
<div className={classes.sceProgressBar}>
<div className={classes.sceProgressBarText}>
<i className={ 'fas fa-check ' + this.progressBarStyleHandler} />
</div>
</div>
<hr className={classes.sceProgressBarUnderline} />
<div className={classes.sceProgressBarSecondText}>
<div className={classes.sceProgressBarText}>2</div>
<hr className={classes.sceProgressBarSecondUnderline} />
</div>
<div className={classes.sceProgressBarThirdText}>
<div className={classes.sceProgressBarText}>3</div>
</div>
Теперь я хочу сделать его общим компонентом, чтобы для каждой страницы не нужно было добавлять стиль, я могу напрямую импортироватьстраница и показать, какая это страница, передав детали страницы в реквизит.
Итак, я добавил 9 состояний:
this.state = {
firstPage: false, //white background for Progress Bar
secondPage: false,
thirdPage: false,
firstPageDisplay: false, //green background for Progress Bar
secondPageDisplay: false,
tihrdPageDisplay: false,
firstPageCompleted: false, //tick mark for Progress Bar
secondPageCompleted: true,
thirdPageCompleted: false
};
И я добавил функцию, которая будет проверять значение состояния, которое будет определять, на какой странице он находится. Функция выглядит следующим образом:
progressBarStyleHandler = () => {
let progressbarClassname;
if (this.state.firstPageCompleted) {
progressbarClassname = classes.sceCheckIcon;
}
return progressbarClassname;
}
Но для моей текущей страницы функция не работает, т.е. она не принимает className.Что не так с моим кодом? Может кто-нибудь, пожалуйста, помогите мне с этим.Кроме того, если кто-то может предложить лучший способ сделать это, я буду следовать тому же самому.