Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

133
Visualizações
Reaccionar setState dinámicamente: cómo establecer la propiedad y el valor de los accesorios

Estoy tratando de crear un controlador único para actualizar el estado. Por ahora tengo muchos controladores, uno para cada componente. Lo que estoy tratando de hacer es crear una función de cambio y un controlador para manejar todos los cambios de estado.

Aquí está la función de cambio, por ahora solo tiene un caso:

 function liftingUpStateHandler(type, e, state){ switch(type){ case 'imageClickHandler': let array = state.bottomGalleryItems; const index = array.findIndex((object) => object.cardId === e); window.scrollTo({ top: 0, behavior: 'smooth' }); return ['items', [state.bottomGalleryItems[index]]] default: return null; } } export default liftingUpStateHandler;

Y estoy tratando de crear un controlador en el archivo principal app.js:

 stateHandler = (type, e) =>{ const result = liftingUpStateHandler(type, e); this.setState({result[1]: result[2]}) }

Si esto funciona, puedo agregar casos a liftingUpStateHandler y actualizar el estado con un solo controlador.

(uno para gobernarlos a todos) :)

Lo que estoy tratando ahora es un montón de funciones como esta:

 loaderScreenHandler = (e) => { this.setState({loader: e}) } modalCloseHandler = () =>{ this.setState({noexifdatafilenames: []}) } markerFlyerTo = (e) => { const index = (markerFlyerHandler(e, this.state)); this.setState({ activeCard: index }); } deleteItem = (e) => { const result = (deleteItemHandler(e, this.state)); this.setState({ items: result[0]}); this.setState({ activeCard: 0 }); }; changeActiveCardRight = () => { const result = (changeActiveCardRightHandler(this.state, 'right')); this.setState({ activeCard: result }); } changeActiveCardLeft = () => { const result = (changeActiveCardRightHandler(this.state)); this.setState({ activeCard: result}); } closeHandler = () => { this.setState({ fullScreen: false}) }

... Pero estoy recibiendo un error:

 Failed to compile ./src/App.js SyntaxError: C:\Users\Sławek\Desktop\dev\geolocapp\src\App.js: Unexpected token, expected "," (63:25) 61 | stateHandler = (type, e) =>{ 62 | const result = liftingUpStateHandler(type, e); > 63 | this.setState({result[1]: result[2]}) | ^ 64 | } 65 | 66 |

¿Es esto posible? ¿O necesito adoptar un enfoque diferente como REDUX?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

this.setState({result[1]: result[2]})

Para hacer una propiedad de objeto calculada , debe usar corchetes alrededor de la clave:

 this.setState({ [result[1]]: result[2] })

Además, creo que querías usar result[0] y result[1] , por lo que sería:

 this.setState({ [result[0]]: result[1] })
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda