Всем привет. Есть у меня компонент в котором рендерится инфа про продукты.
Есть так же кнопки prev / next, на клик которых можно переходить между продуктами внутри компонента.
То есть если у нас есть
[{id: 2, name: "Apple"}, {id: 3, name: "Banana"}]
Мы допустим на компоненте Banana -
/products-setup/product-info/3
Кликаем на prev кнопку переходим на -
/products-setup/product-info/2
И так далее
Вот так это реализованоchangeContent = (action) => {
const {productTable, routeParams: {id}} = this.props;
const indexOfCurrentElement = productTable.data.findIndex(obj => obj.id === Number(id));
const index = action === "next" ? indexOfElement + 1 : indexOfElement - 1;
const previousElement = productTable.data[index];
const path = `/products-setup/product-info/${previousElement.id}`;
browserHistory.push(path);
}
componentDidUpdate(prevProps){
if(this.props.location !== prevProps.location){
getProductById(
this.props.routeParams.id
)
}
}
То есть когда мы кликаем внутри компонента на допустим
prev
, то происходит поиск индекс current продукта и берется предыдущий объект продукта и идет запрос на получение инфы про продукт и делается ре-рендер.
Теперь вопрос - Допустим пользователь зашёл на компонент, сделал какие-то действия (проредактировал название продукта) и нажимает на кпопку
Previous
. Как мне определить что пользователь имеет не сохраненные данные и выдать попап что перед тем как перейти на предыдущий продукт, надо сохранить данные??
P.S Весь код не могу выставить потому что проект confidence