Как получить состояние из хука usereducer внутри useEffect? - PullRequest
0 голосов
/ 13 мая 2019

Я привязываю метод к кнопке внутри хука 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, все работает нормально.

...