在渲染之前反应setState回调

时间:2020-09-20 14:15:06

标签: reactjs

在尝试绘制一定数量的卡片后,我试图弹出警报,但是当尝试在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

1 个答案:

答案 0 :(得分:0)

您在执行回调函数时出错。试试这个

        this.setState({
            card: card.images[card.number + 1],
            total: this.state.total -1,
            description: card.description
        }, () => this.checkWin() );   ///-> see here