我正在尝试以状态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]);
在我的应用程序正在运行Application Image
setState是异步操作,因此很难预测何时设置。您可以使用以下代码来更新断言操作上方的包装器组件。这对我有用。
componentWrapper.update();