2017-09-21 80 views
0

ReactJS執行路由器組件我們使用ReactJS導航到應用程序的不同頁面陣營路由器圖書館錯誤信息,但在執行通過玩笑和酶獲得,而試圖用玩笑和酶

的單元測試用例得到以下異常:

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`. 

給我你的建議

+1

歡迎StackOverflow上的情況。如果您希望我們提供幫助,請向我們提供一些[MCVE](https://stackoverflow.com/help/mcve),以便我們獲得更多信息。 – DamCx

回答

0

從山反應路由器-DOM一個<MemoryRouter />內的組件。該錯誤表示這些組件希望作爲Router組件的後代「存活」(它們通過React上下文獲取路由狀態)。

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

會做的伎倆。使用mount()和如果使用的是終極版也然後裝入<MemoryRouter />內部<Provider />要麼<MemoryRouter /><BrowserRouter />內部

1

安裝部件從反應路由器-DOM。

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

還是在終極版

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