повторно загрузите эффект использования при отправке значения в сообщении в другом файле js:react js

#reactjs

#реагирует на

Вопрос:

у меня есть API для публикации данных в одном файле JS, и опубликованные данные извлекаются с помощью useEffet другого файла JS, который я хочу перезагрузить useEffect после отправки в post

answersubmit.js

 clickQuestion = (e) =gt; {  var gotid = this.props.match.params.catId;  e.preventDefault();  let variableQuestion = this.state.question;   this.setState({ arrayForQuestion: variableQuestion });   axios  .post('https://ask-over.herokuapp.com/answerpost', {  Answers: variableQuestion,  correctcount: 0,  wrongcount: 0,  question_id: gotid,  })  .then(() =gt; {  // window.location.reload();  })  .catch((error) =gt; {  console.log('handlesubmit error for blog ', error);  }); }; render() {  return (  lt;gt;  lt;Answer /gt;  // on success post request pass some value saying its post worked  lt;/gt;  ); }  

answer.js

 useEffect(  () =gt; {  axios  .get('https://ask-over.herokuapp.com/answersapi/'   gotid)  .then((result) =gt; {  // console.table(result.data);  var somevariable = result;   setPosts((data) =gt; {  return [...data, somevariable];  });   setPosts(result.data);  });  },  [  /* get the value here so it reloads dynamicaly */  ] );  

Ответ №1:

Вы можете использовать логическое состояние reloadAnswer для передачи Answer компоненту в качестве реквизита.
его значение будет переключено, если запрос POST будет выполнен успешно, и вызовет вызов GET в дочернем компоненте.

answersubmit.js:

 clickQuestion = (e) =gt; {  ...   axios  .post("https://ask-over.herokuapp.com/answerpost", {  ...  })  .then(() =gt; {  this.setState(prevState =gt; ({   ...prevState,  reloadAnswer: !prevState.reloadAnswer  })  })  ...  };   render() {  return (  lt;gt;  lt;Answer reloadAnswer={this.state.reloadAnswer} /gt;  lt;/gt;  )  

answer.js:

 const Answer = ({ reloadAnswer }) =gt; {  useEffect(() =gt; {  axios  .get("https://ask-over.herokuapp.com/answersapi/"   gotid)  ...  }, [reloadAnswer]); }  

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

1. мой answer.js является функциональным компонентом крючков, я не знаю, как написать код, который вы предоставили здесь в этом