Arrow functions上發(fā)布的類似問題只能訪問由 useReducer 創(chuàng)建的初始狀態(tài),不能訪問更新狀態(tài)但不能解決。狀態(tài) (useReducer) 未反映在箭頭函數(shù)中。一個(gè)簡(jiǎn)單的例子:React 組件const Component = ({ children }: Props) => { const [state, dispatch] = useReducer(reducer, {visitor: false}) useEffect(() => { someObject = new Connection({ onMessage: msg onSuccess: () => dispatch({type: "Visitor", value: true}) }) return () => console.log("UNMOUNTING "); }, []); const msg = (request) => { // visitor: false console.log(state) // expected updated state, but instead see initial state, why? // ... do more things } // visitor: true console.log(state) // updated state is present here return ( <Component.Provider value={{ state }}> {children} </Component.Provider> )}減速機(jī)功能:const reducer = (state, action) => { switch (action.type) { case 'Visitor': return {...state, visitor: true} default: return state }}
狀態(tài)沒有反映在箭頭函數(shù)中?
喵喔喔
2023-04-27 15:19:05