繁体   English   中英

当消费者调用时,作为上下文值传递的函数无法访问更新的组件状态

[英]Function passed as context value can't access updated component state when called by a consumer

我正在将一个函数作为值传递给Context Provider并且在从使用者调用该函数时,我得到了较旧的状态。

Provider.jsx

const MyContext = createContext();

const Provider=()=>{
  const [someState, setSomeState] = useState();

  const providerFunction=()=>{
    // accessing someState
  }

<MyContext.Provider value={{providerFunction}}>
  <ConsumerComponent/>
</MyContext.Provider>

消费者.jsx

const {providerFunction} = useContext(MyContext);

在从Consumer.jsx调用providerFunction时,Provider.jsx 中的 providerFunction 被调用,但someState没有获得更新的值,它正在打印分配给它的初始值。

我无法弄清楚这是什么原因。 任何帮助表示赞赏。

我想通了这个问题,其实,我是用debounceConsumeruseCallback ,我错过了传球providerFunction作为一个依赖。

添加依赖项后,它起作用了!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM