簡體   English   中英

如何讓代碼等到滿足條件 x= true 時,請注意我不想使用“setTimeOut”

[英]How can I make a code wait until condition x= true is met , note I don't want to use 'setTimeOut'

如何讓代碼等到滿足條件 x= true ,請注意我不想使用“setTimeOut”:如果單擊按鈕時 x == true,我希望模式打開,我從 redux 獲得 x 值

{itemList &&
          itemList.map((item) => {
            return (
              <StyledMenuItem>
                <ListItemText          
                  primary={item.fieldName}
                  onClick={() => {
                    if (
                      !formPristine ||
                      (isChangesRowsFnc && isChangesRowsFnc())
                    ) {
                      var r = window.confirm("Press a button!");
                      if (r) {
                        customHandleSubmit();

                         if (x) {
                           setShowComponent(true);
                           handleClose();
                           item.props.setModalVisible(true);
                         }
                      }
                    } 
                  
                  }}
                />
                {showComponent === true && (
                  <div>
                    <item.comp
                      setShowComponent={setShowComponent}
                      key={item.name}
                      {...item.props}
                    />
                  </div>
                )}
              </StyledMenuItem>
            );
          })}
    

//我從redux獲取x值

const mapStateToProps = (state) => {
  return {
    x: state.stateReducer.animationStart,
  };
};

如果您正在使用 React,您可以利用React Docs中的生命周期方法。

在您的情況下,解決方案應該是:

  componentDidUpdate(prevProps) {
      if (prevProps.x ===false && prevProps.x!==this.props.x) {
        /// do your code here
      }
    }

請注意不要在此處創建無限循環。

另外,如果您使用的是函數式組件,請使用React hooks

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM