在尝试绘制一定数量的卡片后,我试图弹出警报,但是当尝试在setState中使用回调时,警报会在渲染发生之前弹出。
FORMATETC formatetcs[64];
ULONG fetched;
IEnumFORMATETC *pEnumFormatEtc;
if (dataObject.EnumFormatEtc(DATADIR_GET, &pEnumFormatEtc) == S_OK) {
enumFormatEtc.Next(64, formatetcs, &fetched);
}
// 'fetched' is around 18
for (int I = 0; I < fetched; I++) {
HRESULT hr;
DWORD connection;
hr = dataObject.DAdvice(&formatetcs[I], ADVF_NODATA | ADVF_DATAONSTOP, pAdvSink, &connection);
}
我尝试将函数放在回调中,但也无法正常工作。
编辑:在显示新卡之前会出现警报
通过将checkWin()更改为此:
FORMATETC
答案 0 :(得分:0)
您在执行回调函数时出错。试试这个
this.setState({
card: card.images[card.number + 1],
total: this.state.total -1,
description: card.description
}, () => this.checkWin() ); ///-> see here