在Jest/React中的“Connect(App)”的上下文或属性中找不到“store”是因为在测试环境中没有正确配置Redux store。Connect是React-Redux库中的一个高阶组件,用于将Redux store中的状态和操作映射到React组件的属性中。当在测试环境中使用Connect包裹组件时,需要提供一个模拟的store。
解决这个问题的方法是使用Redux提供的测试工具来创建一个模拟的store,并将其传递给被测试组件。以下是一个可能的解决方案:
npm install redux react-redux --save-dev
import React from 'react';
import { Provider } from 'react-redux';
import { createStore } from 'redux';
import { render } from '@testing-library/react';
import App from './App';
import rootReducer from './reducers'; // 假设你有一个reducers文件来管理Redux的状态
const store = createStore(rootReducer); // 创建一个模拟的store
test('renders App component', () => {
render(
<Provider store={store}>
<App />
</Provider>
);
// 进行其他的测试断言
});
通过以上步骤,你可以在测试环境中正确地使用Connect高阶组件,并且能够找到“store”。请注意,这只是一个示例解决方案,具体的实现可能因你的项目结构和配置而有所不同。
关于Jest、React、Redux和React-Redux的更多信息,你可以参考以下链接:
领取专属 10元无门槛券
手把手带您无忧上云