Javascript redux useDispatch-不断重新加载页面

Javascript redux useDispatch-不断重新加载页面,javascript,reactjs,redux,Javascript,Reactjs,Redux,当我在useffect中使用useDispatch时,它会不断地重新加载整个组件 这是我的行动: export const getData=()=>dispatch=>{ 取回(“https://jsonplaceholder.typicode.com/users") .then((response)=>response.json()) 。然后((json)=> json.map((obj)=>({ …obj, 奖金:1500, 剩余:230, 活动:Math.floor(Math.random

当我在
useffect
中使用
useDispatch
时,它会不断地重新加载整个组件

这是我的行动:

export const getData=()=>dispatch=>{
取回(“https://jsonplaceholder.typicode.com/users")
.then((response)=>response.json())
。然后((json)=>
json.map((obj)=>({
…obj,
奖金:1500,
剩余:230,
活动:Math.floor(Math.random()*2)==1?“是”:“否”,
}))
)
。然后((响应)=>
分派({type:constants.REQUEST\u PLAYERS\u SUCCESS,payload:response})
)
.catch(错误=>dispatch({type:constants.REQUEST\u PLAYERS\u失败,负载:error}))
};
这是我的减速机:

const initialState={
数据:[],
孤岛加载:false,
};
export const changeGridData=(state=initialState,action={})=>{
开关(动作类型){
case constants.REQUEST\u PLAYERS\u挂起:
返回{…状态,isLoading:true};
case constants.REQUEST\u PLAYERS\u SUCCESS:
返回{…状态,数据:action.payload,isLoading:false};
case constants.REQUEST\u PLAYERS\u失败:
返回{…状态,isLoading:false};
违约:
返回状态;
}
};
这是一个组件:

import React,{useState,useffect}来自“React”;
从“./store/gridPlayersLoad/gridPlayersActions”导入{getData};
从“react redux”导入{useDispatch,useSelector};
常数奖金=()=>{
常量内容=使用选择器((状态)=>状态);
const dispatch=usedpatch();
useffect(()=>{
调度(getData())
}, []);
//其他一些代码。。。
}

它不断重新加载的原因可能是什么?

基于您提供的内容,您对
useffect
useDispatch
的实现没有问题

无论是什么原因导致了您的非故意刷新,都必须由应用程序中受redux状态更改影响的更高级别组件引起

当订阅redux状态的包装组件经历状态更改时,它将重新呈现。这可能会导致安装/卸载组件的更改


在您的情况下,某种原因导致路由器被重新装载,这意味着带有
useffect
钩子的路由中的所有组件将再次运行这些装载效果。

它继续重新装载的原因可能与
奖金
的父组件有关,而不是与
奖金
组件本身有关。您的调度必须影响正在侦听事件影响的其他内容。
奖金的唯一父组件
是唯一一个包含react router
}/>
的组件,该组件刚刚在另一个具有相同减速器的组件上进行了检查-工作正常。所以,是的,我们需要更深入地了解一下
奖金
-谢谢!你能把奖金的完整代码发给我们吗?这样我们就有更好的了解了?我有一种感觉,一定是有别的东西在干扰我们,因为你给我们看的东西看起来还不错。我删除了所有东西,除了这个部分,仍然有这个问题。但是路由器交换机内部的所有组件都有这个问题