我無法弄清楚為什么 React 中的這個 reducer 函式設定沒有改變狀態。我只想從 reducer 函式控制臺記錄新狀態?
const [lessonState, dispatchLesson] = useReducer(lessonReducer, {
lesson: 0,
isComplete: false,
});
const lessonReducer = (state, action) => {
if (action.type === "UPDATE") {
return { lesson: action.lesson, isComplete: true };
}
};
const initializeLesson = () => {
dispatchLesson({ type: "UPDATE", lesson: 2 });
console.log(lessonState);<------
};
//other stuff//
export default function Dashboard() {
useEffect(() => {
context.initializeCourse();
}, []);
return (
<Fragment>
<div className="dashboard">
<h1>Hello</h1>
</div>
</Fragment>
);
}
uj5u.com熱心網友回復:
立即調度后,您無法獲得更新的減速器狀態。要獲取更新狀態資料,您可以執行以下操作:
useEffect(() => {
console.log("lessonState", lessonState);
}, [lessonState]);
因此,當狀態更新時,將觸發此 useEffect 并且您將獲得更新后的狀態。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/354961.html
