Я надеюсь, что это может помочь вам:
Попробуйте разделить проблемы в вашем компоненте, в данном случае рендер и установленное время ожидания:
Какую версию реакции вы используете?Если у вас выше, чем 16.8
Hooks
, запускайте после каждого рендера, включая первый, так: вы можете попробовать что-то вроде этого:
import React, { useEffect } from 'react';
useEffect(() => {
// Run your setTimeout here!!!
});
return (
// Render your component
);
Или, если вы используете более низкую версию реакции, вы можетепреобразуйте ваш компонент в компонент класса и вместо вызова setTimeout в методе рендеринга используйте его в componentDidMount()
class Alert extends React.Component {
constructor(props){
super(props)
}
componentDidMount() {
setTimeout(() => this.props.removeAlert(), 3000)
}
render() {
return (
// Set your conditions &&
// Render your message or component
);
}
}