我将方法绑定到useEffect挂钩内的按钮,并且该方法在内部使用状态。但是我没有将要绑定的方法中的更新状态,而是将状态值作为initialSate
如果我将代码拉到useEffect钩子之外,则一切正常,但不确定这是否正确。
function Test() {
const initialState = { name: ''}
const reducer = () => {...}
const [state, dispatch] = useReducer(reducer, initialState);
const save = (): void => {
...
const { name } = state;
// here i am getting state value as the initialState and not the
// updated state value
...
}
useEffect(() => {
...
bindActionToButton(button, save);
...
}, []);
}
save方法绑定到按钮的click事件上。单击按钮时,状态内部的状态值应该是更新后的状态值,但我将值作为initalState值获取。如果我调用将代码拉到useEffect之外,则一切正常。