[Требуется ODATA или возможность фильтрации]
Общим решением этой проблемы является одно (или два поля):
updatedDate / CreatedDate
и фильтрация результатов с помощью UpdateDate / CreatedDate> = LastSuccessfulSyncDate
Вам нужно изменить поле UpdateDate / CreatedDate при каждом изменении строки. Для достижения этой цели используйте триггеры базы данных или логику вашего приложения.
Вы также можете посмотреть лучшую связь между вашими прикладными процессами с помощью брокера сообщений, например RabbitMQ или Azure Service Шина
Я думаю, вы можете сделать это.
onBlur = () => {
this.setState(prevState => ({ lastNumber: prevState.selectedNumber }));
}
onChange = (e) => {
this.setState({ selectedNumber: e.target.value });
}
Теперь, каждый раз, когда фокус размыт от ввода, ваш lastNumber обновляется. И при нажатии кнопки отмены все должно работать нормально. Надеюсь это работает. Удачного кодирования :)
Я нашел решение на этом форуме ...
stackoverflow.com/questions/53479598/reactjs-save-input-value-on-blur-and-not-on-every-key-stroke
НО документация React сообщает что это не очень хорошая практика ...
Вы можете немедленно вызвать setState () в componentDidUpdate (), но [...] это также вызовет дополнительный повторный рендеринг, который, хотя и невидим для пользователя, может повлиять на производительность компонента. Если вы пытаетесь «отразить» какое-то состояние для опоры, идущей сверху, рассмотрите возможность использования опоры напрямую.
blockquote>Я поместил в мой обновленный код решение, приведенное по ссылке выше. Можете ли вы подтвердить, что этот подход не подходит и какова альтернатива?
[110 ]<html> <head> <meta charset="utf-8"> </head> <body> <div id="root"> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script> </body> </html>