setState внутри useEffect не работает в ферменте - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь проверить этот компонент с состоянием true:

<DashboardBreadcrumbButtons
        canShare={stateHooks.state.canShare} />

но в моих тестах всегда имеет значение false. Он входит, присваивает состоянию значение true, но после того, как он приходит в состояние рендеринга, значение false.

const setStates = ({ state, setState }, newState) =>
    setState(Object.assign({}, state, newState));    

const [state, setState] = useState({
            isFullscreen: false,
            confirmDelete: false,
            icon: props.icon,
            iconUpload: null,
            title: props.title,
            description: props.description,
            canShare: false,
            canDefineHome: false,
            canEditPortal: false,
            canCopyPortal: false,
            canViewAudit: false
        });

 useEffect(() => {
        debugger;
        // Enter here in the tests and assign
        setStates(stateHooks, {
            canShare: true,
            canDefineHome: true,
            canEditPortal: true,
            canCopyPortal: true,
            canViewAudit: true
        });
    }, []);

useEffect(() => {
    // Here, always is false in test, setStates not working
    console.log(stateHooks.state.canShare);
    debugger;
}, [stateHooks.state.canShare]);

В моем приложении работает Изображение приложения

...