Это больше вопрос, чтобы узнать больше о том, как вы, ребята, обычно делаете это как проблему. В настоящее время у меня нет проблем с кодом, но я не уверен, что это правильный способ сделать это.
В моем коде у меня есть выборка (с Axios) для данных в Бэкэнде (простой список с объектами). И для этого я использую новые хиты React с useEffect, работающие как шарм:
useEffect(() => {
axios
.get("http://localhost:5000/api/list")
.then(result => {
setExampleList(result.data);
})
.catch(error => console.log(error));
}, [setExampleList]);
Но у меня также есть экран, на котором происходит процесс добавления в этот список в Backend. И для этого я обрабатываю форму отправки с аксиосами в Backend. И это «проблема». Это работает и идет к Backend, но мой выбор не обновлялся, потому что он не был повторно обработан или что-то. Затем я пришел к идее вызвать setData (), где выборка живет внутри функции для добавления нового элемента (после публикации):
function handleSubmit(event) {
event.preventDefault();
let obj = {
name: name,
city: city
};
axios
.post("http://localhost:5000/api/add", obj)
.then(response => {
console.log(response.data);
obj.id = response.data.inserted_id;
setExampleList([...setExampleList, obj]);
})
.catch(error => {
console.log(error);
});
handleCloseModal();
}
И это работает, но, как вы можете себе представить, немного «подделка», потому что данные на самом деле не такие, как в Backend, пока я не перезагружу страницу. Итак, ребята, вы что-то сделали таким образом? Что было бы лучшим решением в этом случае?