Я использую Gatsby и плагин макета, чтобы моя навигационная панель сохранялась, пока содержимое страницы под ней меняется. Причина этого в том, что я хочу, чтобы некоторые анимации запускались при изменении страниц, поэтому я не хочу, чтобы панель навигации перезагружала середину анимации. У меня это работает до базового уровня c, однако анимации возвращаются к началу каждый раз, начиная с одной и той же точки, вместо перехода от текущего состояния к следующему. Я понимаю, что это потому, что мне нужно добавить следующий класс, прежде чем удалять предыдущий, но я связываю себя узлами с контекстным API, чтобы попытаться достичь этого. Вы можете видеть, что я имею в виду в этой песочнице: https://codesandbox.io/s/ancient-cookies-tmb5b Проблема заключается в применении правильных классов к этому div в компонентах / TopNav:
<div className={`menuBarIcons ${this.props.data.prevPage} ${this.props.data.curPage}`}>
, который зависит от возможности обновить компоненты / Context. js как с предыдущей, так и с текущей страницей. Текущая часть страницы работает, как вы можете видеть из текстового вывода на соответствующих страницах (и анимации), но чтобы получить предыдущую страницу, которую я пробовал из componentWillUnmount на предыдущей странице, используя prevState и не повезло. Я чувствую, что мой подход стал слишком сложным; Любые указатели на решение очень ценятся.