如何自动销毁对话框组件?喜欢(autoHideDuration)

时间:2019-08-27 07:26:32

标签: reactjs material-ui material-ui-dialog

我以类似于Popup的方式使用Material-ui的Dialogue组件。但我希望它在屏幕上停留一会儿。我该如何设置?我正在寻找自动隐藏等功能。

2 个答案:

答案 0 :(得分:1)

这是基本的MUI对话框组件:

mounted(){
 console.dir(this.$refs.head);
 console.log(this.$refs.head.offsetHeight);
}

this.state.open决定对话框是否打开。 要打开对话框,您可能已经将open设置为true。在同一setState函数中,您可以添加超时以隐藏对话框。

示例:

<Dialog 
    open={this.state.open ? true : false} 
    onClose={this.handleClose}  
    aria-labelledby="alert-dialog-title" 
    aria-describedby="alert-dialog-description" 
    disableBackdropClick 
> 
    //content...
</Dialog>

答案 1 :(得分:0)

隐藏不是破坏。

const Login: FunctionComponent<Props> = (props) => {
const [should_open, set_should_open] = useState(true);
const { is_login } = useRecoilValue(user_info_state);

// ! logout function
const reset_user_info = useResetRecoilState(user_info_state);

return (
    <Wrapper {...props}>
        <StyledButton onClick={() => (is_login ? reset_user_info() : set_should_open(true))}>
            {is_login ? (
                <>
                    LogOut
                    <img src={airplanemode_inactive} alt='login' />
                </>
            ) : (
                <>
                    Login
                    <img src={airplanemode_active} alt='log_out' />
                </>
            )}
        </StyledButton>
        {is_login ? '' : <LoginModal should_open={should_open} set_should_open={set_should_open} />}
    </Wrapper>
);

};

你可以销毁模态组合取决于状态