как сформировать отправку при загрузке в react js?

#javascript #reactjs #forms

#javascript #reactjs #формы

Вопрос:

Как мне отправить a form при загрузке страницы в ReactJS?

 <form id="redirectForm" method="post" action="https://test.cashfree.com/billpay/checkout/post/submit">
  <input type="text" name="appId" value={this.state.appId}/>
  <input type="text" name="orderId" value={this.state.orderId}/>
  <input type="text" name="orderAmount" value={this.state.orderAmount}/>
  <input type="text" name="orderCurrency" value={this.state.orderCurrency}/>
  <input type="text" name="orderNote" value={this.state.orderNote} />
  <input type="text" name="customerName" value={this.state.customerName}/>
  <input type="text" name="customerEmail" value={this.state.customerEmail} />
  <input type="text" name="customerPhone" value={this.state.customerPhone} />
  <input type="text" name="returnUrl" value={this.state.returnUrl} />
  <input type="text" name="notifyUrl" value={this.state.notifyUrl} />
  <input type="text" name="signature" value={this.state.signature}/>
  <button type="submit">Pay</button>
</form>
  

Javascript:

 <script>document.getElementById("redirectForm").submit();</script>
  

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

1. может быть, это может помочь tutorialspoint.com/reactjs/reactjs_forms.htm

2. На самом деле вы можете сделать то же самое в react внутри componentDidMount для более старых версий или внутри useEffect (без зависимостей)

3. @kimobrian254 поделитесь примером кода document.getElementById(«redirectForm»).submit() как в react js

4. @ManjuanthVM react запускает обычный JS, поэтому просто выполнение document.getElementById("redirectForm").submit(); будет работать так, как ожидалось. Как я уже сказал внутри componentDidMount для более старых версий внутри useEffect для более новых версий react.

5. @kimobrian254 спасибо, все работает, хорошего дня

Ответ №1:

На самом деле вы можете создать ссылку для формы, и если компонент является компонентом класса, вы можете использовать componentDidMount для отправки формы, или, если функциональный компонент, вы можете сделать это через useEffect

 <form ref={item => this.form = item} id="redirectForm" method="post" action="https://test.cashfree.com/billpay/checkout/post/submit"> 
.....
</form>
  

В вашем компоненте React вы можете создать ссылку с помощью:

 class SampleClass extends React.Component {
   constructor() {
     this.form = null
   }

   componentDidMount() {
    this.form.submit();
   }
}
  

Аналогичную логику можно применить к функциональному компоненту, используя useRef и useEffect.

Подробнее: https://reactjs.org/docs/refs-and-the-dom.html