Как очистить поле после отправки в React with useState

#node.js #reactjs

#node.js #reactjs

Вопрос:

Я работаю над приложением Mernstack, все в моем приложении работает хорошо, за исключением поля ввода, которое не очищается после отправки.

мой компонент

const [comments, setCommentData] = useState([]);

 const onSubmit = useCallback(
  (e) => {
   e amp;amp; e.preventDefault();
  
  axios
    .post(
      "http://localhost:9000/events/"  
        props.match.params.id  
        "/eventcomment",
      { name: name, description: eventDescription }
    )
    .then(function (response) {
      console.log("response", response.data.eventcomments);
      onPageLoad();
    })
    .catch(function (error) {
      console.log(error);
    });
},
[props.match.params.id, name, eventDescription]
);
  

Я пытался это сделать, но это не сработало.

setCommentData("");

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

1. Скорее всего, вы не работаете с контролируемыми компонентами в react. В вашем случае вы можете сделать что-то вроде e.target.value = «», после вызова api

2. Если @simbathesailor прав, «Реактестный» способ сделать это был бы через ref .

Ответ №1:

Начальное состояние — [] , поэтому вы должны восстановить его с тем же исходным содержимым:

 setCommentData([]);