相关疑难解决方法(0)

useDispatch() 错误:找不到 react-redux 上下文值;请确保组件被包裹在 <Provider> 中

我正在尝试使用 React-Redux 库,但标题出现错误。我用 Provider 包装了我的组件,但我仍然收到错误,只有当我实现 useDispatch() 钩子时。

该应用程序运行良好,直到我添加了 useDispatch() 行。可以删除有关调度功能的其余行,但我仍然遇到相同的错误。

如果你能帮助我,我将不胜感激。谢谢

这是我的代码:

import 'react-native-gesture-handler';
import {NavigationContainer} from '@react-navigation/native';
import Navigator from './navigation/Navigator';

import React, {useEffect, useState, useCallback} from 'react';
import {SafeAreaView, StyleSheet, Text, View} from 'react-native';

import {createStore, combineReducers} from 'redux';
import {Provider, useDispatch} from 'react-redux';
import dataReducer from './store/reducers/dataReducer';
import {CONSTANTS} from './constants/constants';
import {saveInitialData} from './store/actions/dataActions';

const App = () => {
  const [fetched, setFetched] = useState(initialState);

  const dispatch = useDispatch();

  const saveInitialDataHandler = useCallback(data => {
    dispatch(saveInitialData(data)); …
Run Code Online (Sandbox Code Playgroud)

reactjs react-native redux react-redux

45
推荐指数
4
解决办法
5万
查看次数

Jest测试失败:TypeError:window.matchMedia不是函数

这是我的第一次前端测试体验.在这个项目中,我正在使用jest快照测试并TypeError: window.matchMedia is not a function在我的组件中出错.

我通过jest文档,我找到了"手动模拟"部分,但我还不知道如何做到这一点.

reactjs jestjs

34
推荐指数
12
解决办法
1万
查看次数

测试自定义钩子:不变违规:找不到 react-redux 上下文值;请确保组件被包裹在 <Provider> 中

我有一个我想测试的自定义钩子。它接收一个 redux store 调度函数并返回一个函数。为了得到结果,我正在尝试做:

const { result } = renderHook(() => { useSaveAuthenticationDataToStorages(useDispatch())});
Run Code Online (Sandbox Code Playgroud)

但是,我收到一个错误:

不变违规:找不到 react-redux 上下文值;请确保组件被包裹在一个

发生这种情况是因为useDispatch没有连接商店。但是,我这里没有任何组件可以与提供程序一起包装。我只需要测试只是将数据保存到商店的钩子。

我该如何解决?

reactjs jestjs redux react-testing-library

12
推荐指数
4
解决办法
3万
查看次数