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.

React Router Dom v6 – Las funciones no son válidas como un hijo de React.

Estoy intentando actualizar a v6 de react router dom. La aplicación funciona, pero no logro que los casos de prueba funcionen.

Antes teníamos este envoltorio para jest:

const render = (ui: React.FC, path: string, route: string): RenderResult => {
const history = createMemoryHistory({ initialEntries: [route] });
const queryClient = new QueryClient({
defaultOptions: {
queries: {
retry: false,
},
},
});

return {
    ...render(
        <QueryClientProvider client={queryClient}>
            <Router history={history}>
                <Route path={path} component={ui} />
            </Router>
        </QueryClientProvider>,
    ),
};

};

Después de seguir la documentación para v6, logré que la aplicación funcionara y actualicé el envoltorio para jest a la siguiente solución:

return {
…render(






,
),
};

Esto resulta en el siguiente error:

Advertencia: Las funciones no son válidas como un hijo de React. Esto
puede ocurrir si devuelve un Component en lugar de desde
render. O tal vez querías llamar esta función en lugar de devolverla.

La mayoría de los componentes en el proyecto son componentes de función. Así que conseguir que esto funcione es bastante importante. :/

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que está intentando actualizar a React Router v6 y está teniendo problemas para que los casos de prueba funcionen. Ha actualizado el envoltorio para Jest, pero está recibiendo el siguiente error:

    Advertencia: Las funciones no son válidas como hijo de React. Esto puede ocurrir si devuelve un componente en lugar de desde render. O tal vez quiso llamar a esta función en lugar de devolverla.

    La mayoría de los componentes en el proyecto son componentes de función, por lo que es vital que esto funcione.

Comments are closed.