Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

104
Views
Problemas para volver a actualizar la interfaz de usuario al enviar un formulario que llama a un punto final en React

Estoy obteniendo un número primo mediano de una function de servidor Express . Luego, quiero actualizar el número para verificar su valor medio en la interfaz.

Sin embargo, cuando trato de buscar el punto final y actualizar la UI de usuario en la función handleSubmit y actualizar el estado con this.setState({ medianPrimeNumber: this.fetchMedianPrimeNumber(parseInt(this.state.formValue)) }) , obtengo el siguiente error describe :

 Objects are not valid as a React child (found: [object Promise]). If you meant to render a collection of children, use an array instead.

Parece que this.state.medianPrimeNumber devuelve una Promise cuando envié el formulario. No estoy seguro de cómo solucionar esto:

 import { React, Component } from 'react'; import './App.css'; class App extends Component { constructor(props) { super(props); this.state = { medianPrimeNumber: null, formValue: '' }; this.handleChange = this.handleChange.bind(this) this.handleSubmit = this.handleSubmit.bind(this) } handleChange(e) { this.setState({ formValue: e.target.value }) } handleSubmit(e) { this.setState({ medianPrimeNumber: this.fetchMedianPrimeNumber(parseInt(this.state.formValue)) }) e.preventDefault() } componentDidMount() { this.fetchMedianPrimeNumber(17) .then(res => this.setState({ medianPrimeNumber: res.server })) .catch(err => console.log(err)) } fetchMedianPrimeNumber = async (numberToCheck) => { const response = await fetch(`/median-prime-number/${numberToCheck}`) const body = await response.json() if (response.status !== 200) { throw Error(body.message) } return body; }; render() { return ( <div className="App"> <h1>Median Number Playground</h1> { this.state.formValue } <p className="App-intro">{ this.state.medianPrimeNumber}</p> <form onSubmit={this.handleSubmit}> <label> Enter number: <input type="text" value={this.state.formValue} onChange={this.handleChange} /> </label> </form> </div> ); } } export default App

El estado de formValue se actualiza correctamente

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Tiene razón, this.fetchMedianPrimeNumber(parseInt(this.state.formValue)) }) devuelve una promesa.

Quiere el valor que regresa como resultado de esa promesa. En otras palabras, desea await el valor ya que es una función asíncrona. es decir:

 async handleSubmit(e) { const res = await this.fetchMedianPrimeNumber(parseInt(this.state.formValue)) this.setState({ medianPrimeNumber: res }) e.preventDefault() }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!