es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Integración de MOBX y React

Recibo un error de gancho no válido al reescribir una aplicación de clientes… (actualizando código)

mobx 6.3.8 mobx react 7.2.1 y mobx-state-tree 5.0.5
React 17.0.1 RN 0.64.3

Siento que el error está aquí. Busqué en línea la línea de código para usar almacenes y me llevó al sitio obsoleto… no sé dónde encontrar un nuevo manejo en el sitio https://mobx.js.org/react-integration.html… ¿cómo se llamaría esto?

import { createContext, useContext } from “react”
import { RootStore } from “./root-store”

const RootStoreContext = createContext({} as RootStore)

const RootStoreProvider = RootStoreContext.Provider

// ¿error de gancho aquí? // export const useStores = () => useContext(RootStoreContext);

error:
Error: Llamada de gancho no válida. Los ganchos solo se pueden llamar dentro del cuerpo de un componente de función. Esto podría suceder por una de las siguientes razones:
1. Es posible que tenga versiones incompatibles de React y el renderizador (como React DOM)
2. Es posible que esté rompiendo las reglas de los ganchos
3. Es posible que tenga más de una copia de React en la misma aplicación
Consulte https://reactjs.org/link/invalid-hook-call para obtener consejos sobre cómo solucionar y depurar este problema.

agregando más contexto… archivo rootstore

import { Instance, SnapshotOut, types } from “mobx-state-tree”

import { creatMediaPlayerModel } from “../../models/media-player”
import { createUserModel } from “../../models/user”
import { createContentModel } from “../../models/content”

export const RootStoreModel = types.model(“RootStore”, {
mediaPlayerStore: creatMediaPlayerModel(),
userStore: createUserModel(),
contentStore: createContentModel(),
})

export type RootStore = Instance

export type RootStoreSnapshot = SnapshotOut

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el error está relacionado con el uso del gancho useStores dentro de un componente de función. Es posible que el gancho no se haya importado o implementado correctamente en el código.

    Según el código proporcionado, parece que el gancho useStores no se exporta desde el archivo. Por lo tanto, no está disponible para ser utilizado en el componente que lo necesita.

    Para solucionar este error, asegúrese de exportar correctamente el gancho useStores desde el archivo donde se define. Además, asegúrese de que se estén utilizando la versión correcta de React y el motor de representación, y de que no haya copias duplicadas de React en la aplicación.

    En cuanto a encontrar un nuevo manejo, parece que el problema está relacionado con el uso de MobX y React. La documentación de MobX sobre la integración de React (https://mobx.js.org/react-integration.html) puede ser útil para encontrar la forma adecuada de utilizar el gancho useStores con las últimas versiones de MobX y React.

Comments are closed.