我有一个问题,我不能用这个代码更新用户的黄金。我想更新用户的黄金从他目前的黄金到当前黄金+ 100每10秒。
这个代码不起作用,我想我误解了什么,但我想不出是什么!我想在离开那页的时候把金子送出去。我的意思是,我有我的当前黄金显示在标题中,例如,在页面中,我可以看到每10秒从0我的黄金更新.一旦我离开页面的标题,我想让我的当前黄金+黄金收入。
在我的组件中的useEffect:
const [chrono, setChrono] = useState<number>(0);
const user: any = useSelector((state: any) => state.user);
const dispatch = useDispatch();
const [gold, setGold] = useState(0);
useEffect(() => {
const updateGold = setInterval(() => {
setGold((gold) => gold + 100);
}, 10000);
return () => {
dispatch(
userSlice.actions.update({
...user,
gold: user.gold + gold,
})
);
clearInterval(updateGold);
};
}, []);减速机
update: (state: any, { payload }) => {
console.log("action =>", payload);
return {
...state,
...payload,
};
},发布于 2022-10-20 08:43:03
我认为这样做更有意义,并且更简单的做法是在间隔上分派更新操作,而不是稍后更新本地状态和同步状态。
示例:
const dispatch = useDispatch();
useEffect(() => {
const updateGold = setInterval(() => {
dispatch(
userSlice.actions.addGold(100);
);
}, 10000);
return () => {
clearInterval(updateGold);
};
}, []);切片
addGold: (state: any, { payload }) => {
state.gold = state.gold + payload;
},https://stackoverflow.com/questions/74136666
复制相似问题