Как получить обновленные данные, которые публикуются сразу после вызова POST-запроса? AXIOS

#reactjs #axios

#reactjs #axios

Вопрос:

У меня есть сценарий, в котором в соответствии с course_id я добавляю в него модули. Теперь всякий раз, когда я добавляю новый модуль, мне приходится обновлять страницу, чтобы получить недавно добавленный модуль вместе со старыми. Как мне получить отправленные данные (новые) сразу после вызова запроса.

 const fetchModule = () => {
    useEffect(() => {
        axios.get(`http://localhost:8083/getmodules/${course_id}`)
          .then(res => {
            updateModule(res.data)
          })
          .catch(error => {
            console.log(error)
          });
      }, [course_id]);
}
  const submitHandler = (e) => {
            const course = { course_id, course_name };
            const formdata = { module_id, module_type, module_name, duration, course };
            axios.post("http://localhost:8083/createmodule", formdata)
            .then( res => 
            {
                console.log(res.data);
                fetchModule();  
            })
          
  }
 

Теперь функция fetchModule извлекает модуль, поэтому, как только мы отправляем данные, я вызываю fetchModule, но, похоже, это не работает. Пожалуйста, помогите. Заранее благодарю вас 🙂

Комментарии:

1. Вы спрашиваете, когда данные публикуются из любого места (я или другой пользователь добавляет модуль), или просто если текущий пользователь добавляет его? Т.Е. Вы хотите обновляться в любое время, когда данные изменяются на сервере, или просто когда вы, текущий пользователь, отправляете новый модуль.

2. Когда текущий пользователь добавляет новый модуль

3. Это тот код, который вы используете? Вы не можете вызвать useEffect (или любой другой хук) из функции, которая не является компонентом (см. reactjs.org/docs/hooks-rules.html ).