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

365
Visualizações
¿Cómo acceder al reductor/acción de redux-toolkit desde un componente de clase usando react-redux connect()?

Tengo una tienda de redux-toolkit en store.js.

 import { configureStore } from '@reduxjs/toolkit'; import productCurrency from './stateSlices/productCurrency'; const Store = configureStore({ reducer: { productCurrency: productCurrency, }, }) export default Store;

La función Createslice() en sí está en un archivo diferente y se ve así a continuación.

 import { createSlice } from '@reduxjs/toolkit' const initialState = { value: '$', } export const productCurrency = createSlice({ name: 'productCurrency', initialState, reducers: { setproductCurrency(state, newState) { state.value = newState }, }, }) export const { setproductCurrency } = productCurrency.actions; export default productCurrency.reducer;

Mi problema es que tengo un componente de clase NavSection que necesita acceder al estado inicial y la acción reductora setproductCurrency() para cambiar el estado. Estoy tratando de usar la función react-redux connect() para lograr eso.

 const mapStateToProps = (state) => { const { productCurrency } = state return { productCurrency: productCurrency.value } } const mapDispatchToProps = (dispatch) => { return { setproductCurrency: () => dispatch(setproductCurrency()), dispatch, } } export default connect(mapStateToProps, mapDispatchToProps)(NavSection);

Ahora, puedo acceder al estado usando this.props.productCurrency. Sin embargo, si trato de acceder a setproductCurrency() usando this.props.setproductCurrency()... La consola de Chrome me da un error de que "this.props.setproductCurrency() no es una función".

¿Hay alguna forma de arreglar esto, o estoy tratando de hacer algo imposible?

ACTUALIZACIÓN #1

Creo que acabo de mover la pelota en la dirección correcta. Cambié la función onClick para que sea una función de flecha como se muestra a continuación.

 onClick={() => this.props.setproductCurrency('A$')}

Ahora, setproductCurrency() se considera una función, pero devuelve un error diferente cuando hago clic en el botón...

Los objetos no son válidos como hijos de React (encontrado: objeto con claves {tipo, carga útil}). Si tenía la intención de representar una colección de niños, use una matriz en su lugar.

¿Por qué esta función ahora devolvería un objeto? Se supone que debe cambiar el estado y desencadenar una nueva representación de la página para que el componente de la clase pueda acceder al estado recién modificado.

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

0

Para ser claros, RTK no tiene nada que ver con React-Redux, connect o mapDispatch :)

El error actual de "Los objetos no son válidos como hijos de React" se debe a que su reductor está mal. La firma de un reductor no es (state, newState) . Es (state, action). So, your line state.value = newState is really state.value = action`, y eso es asignar todo el objeto de acción de Redux como un valor en el estado. Eso definitivamente no es correcto conceptualmente.

En su lugar, necesita state.value = action.payload .

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