Наряду с componentDidMount, вам также нужно реализовать componentWillReceiveProps или использовать getDerivedStateFromProps (начиная с v16.3.0 и далее) на странице Products, поскольку этот же компонент повторно отображается с обновленными параметрами и не монтируется при изменении параметров маршрута, это связано с тем, что параметры передаются в качестве реквизитов для компонента и при изменении реквизитов компоненты React перерисовываются и не монтируются заново.
РЕДАКТИРОВАТЬ: начиная с версии 16.3.0 используйте getDerivedStateFromProps для установки / обновления состояния на основе параметров (не нужно указывать его в двух разных методах жизненного цикла)
```static getDerivedStateFromProps(nextProps, prevState) {
if (nextProps.match.params.product !== prevState.currentProductId){
const currentProductId = nextProps.match.params.product
const result = productlist.products.filter(obj => {
return obj.id === currentProductId;
})
return {
product: result[0],
currentId: currentProductId,
result
}
}
return null;
}```