反応ナビゲーションを使用してアプリのテストを作成しようとしていますが、ルートとパラメーターが正しく読み取られるという問題が発生しています。
次のエラーが表示されます
TypeError: 未定義のプロパティ 'params' を読み取れません
の上const [leadId] = useState(route.params.leadId);
私のコンポーネントは次のようになります
export default function AComponent() {
const route = useRoute();
const navigation = useNavigation();
const dispatch = useDispatch();
const [leadId] = useState(route.params.leadId);
}
https://callstack.github.io/react-native-testing-library/docs/react-navigation/に従ってみましWarning: React.createElement: type is invalid
たが、コンポーネントをラップするときに受け取りました。
私のテストは次のようになります
import React from 'react';
import { Provider } from 'react-redux';
import { NavigationContainer } from '@react-navigation/native';
import { render, fireEvent, cleanup } from 'react-native-testing-library';
import configureMockStore from 'redux-mock-store';
import AComponent from 'components/contact/AComponent';
const mockStore = configureMockStore([]);
describe('<AComponent />', () => {
let getByTestId, store;
beforeEach(() => {
store = mockStore({});
({ getByTestId } = render(
<Provider store={store}>
<AComponent />
</Provider>
));
});
});
私のモックは
jest.mock('@react-navigation/native', () => {
return {
useNavigation: () => ({ goBack: jest.fn() }),
useRoute: jest.fn(),
};
});
コンポーネントのラッピングが間違っているのか、それとも他に何か不足しているのかはわかりません。
どんなアイデアや助けも大歓迎です。
ありがとう。