我正在嘗試使用測驗庫測驗我的 React Native App redux 商店,我按照 Redux 檔案創建了一個 Wrapper 提供程式,以便將商店傳遞給要測驗的組件,在本例中是我的 LoginScreen 組件。但我收到以下錯誤:
Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports. Check the render method of `LoginScreen`.
at LoginScreen (/Users/macbookpro/Proyectos/Personales/antifappi/src/screens/notauthenticated/LoginScreen.tsx:41:22)
at Provider (/Users/macbookpro/Proyectos/Personales/app/node_modules/react-redux/lib/components/Provider.js:19:3)
at Wrapper (/Users/macbookpro/Proyectos/Personales/app/src/utils/test-utils.tsx:29:22)
這是我從 redux 檔案中復制的“ test-utils.tsx ”:
export const renderWithProviders = (
ui: React.ReactElement,
{
preloadedState = {},
// Automatically create a store instance if no store was passed in
store = setupStore(preloadedState),
...renderOptions
}: ExtendedRenderOptions = {}
) => {
const Wrapper = ({ children }: PropsWithChildren<{}>): JSX.Element => {
return (
<Provider store={ store }>
{ children }
</Provider>
)
}
return rtlRender(ui, { wrapper: Wrapper, ...renderOptions })
}
這是我對登錄螢屏的測驗:
describe("Login Screen", () => {
describe("layout", () => {
it("render correctly", async () => {
component = renderWithProviders(<LoginScreen />, { preloadedState: {
auth: {
status: 'checking',
loadingAuth: false,
user: null,
message: '',
token: null,
goSettingUp: false,
}
}, store: store});
console.log(component);
expect(component).toBeDefined();
});
});
});
我希望有人能提出一些建議來解決我有幾天試圖解決的問題。謝謝。
uj5u.com熱心網友回復:
我找到了解決方案。我在嘲笑復活了兩次,我只是洗掉了其中一個,現在作業正常。所以要小心你在嘲笑什么以及如何嘲笑。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/507615.html
