2017-09-21 2 views
0

Nous utilisons la bibliothèque routeur RÉAGIR dans ReactJS pour accéder aux différentes pages de l'application, mais lors de l'exécution du cas de test unitaire par Jest et l'enzymeObtenir un message d'erreur lors de la tentative d'exécution des composants du routeur dans ReactJS en utilisant Jest et enzymes

obtenir les exceptions suivantes:

Failed context type: The context `router` is marked as required in `Switch`, but its value is `undefined`. 

Failed context type: The context `router` is marked as required in `Link`, but its value is `undefined`. 

Envoyez-moi vos suggestions

+1

Bienvenue sur StackOverflow. Si vous voulez que nous vous aidions, veuillez nous fournir quelques [MCVE] (https://stackoverflow.com/help/mcve) pour que nous ayons plus d'informations. – DamCx

Répondre

0

Montez votre composant à l'intérieur d'un <MemoryRouter /> de réagir-routeur-dom. L'erreur indique que ces composants s'attendent à "vivre" en tant que descendants d'un composant Router (ils obtiennent l'état de routage via le contexte React).

mount(<MemoryRouter><YourCompThatUsesRouter /></MemoryRouter>)

fera l'affaire.

1

composant Installation à l'intérieur soit <MemoryRouter /> ou <BrowserRouter /> de réagir-routeur en utilisant dom mount() et si vous utilisez également Redux puis monter à l'intérieur <MemoryRouter /><Provider />.

mount(
    <MemoryRouter> 
     <Component /> 
    </MemoryRouter> 
) 

ou en cas de Redux

mount(
    <Provider store={yourDummyStore}> 
     <MemoryRouter> 
      <Component /> 
     </MemoryRouter> 
    </Provider> 
)