![](/img/trans.png)
[英]Function passed and invoked in child component doesn't have access to parent state value
[英]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
沒有獲得更新的值,它正在打印分配給它的初始值。
我無法弄清楚這是什么原因。 任何幫助表示贊賞。
我想通了這個問題,其實,我是用debounce
在Consumer
和useCallback
,我錯過了傳球providerFunction
作為一個依賴。
添加依賴項后,它起作用了!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.