gpt4 book ai didi

javascript - 如何在 React 中等待 useDispatch 值?

转载 作者:行者123 更新时间:2023-12-01 15:53:59 25 4
gpt4 key购买 nike

在我的 React 代码库中,我集成了 Redux usign react-redux我正在使用 useDispatch从我的 View 中调度操作的钩子(Hook)。我只有一个问题,我在更新商店后无法访问更新的值。有没有办法让我等待状态更新完成,如 await或类似回调的东西,我可以执行其他代码?

这就是我的代码的样子:

import React from 'react';
import { useDispatch } from "react-redux";
import { setCore } from "../store/global";

// the value from the store is drilled down as props
export default function Home({ instance, core }) {
const dispatch = useDispatch();

const onConnect = async () => {
// core may have some value before but I want to clear
console.log(core); // prints the old value
await dispatch(setCore(null));
console.log(core); // Need to have null here
}

return (
<div>
<button onClick={onConnect}>Connect</button>
</div>
);
}

最佳答案

默认情况下调度是 100% 同步的。无需等待调度本身。

但是,等待组件的 props 更新是一个完全不同的问题。鉴于该代码,core永远不会更新,因为 onConnect 的定义已经捕获了 core 的值在定义函数时。

您可能希望将该部分逻辑移动到 useEffect()core 的值时触发的钩子(Hook)已经改变。

关于javascript - 如何在 React 中等待 useDispatch 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58825977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com