Я хочу визуализировать компонент снэк-бара при нажатии на кнопку сохранения, установив для состояния showSnackbar значение true и выполнив простой условный тест в основном методе рендеринга.Реагируйте 101, не важно.Этот компонент панели закусок автоматически скрывается через 2 с.
Проблема состоит в том, что я хочу, чтобы это состояние вернулось к значению false, чтобы пользователь мог снова нажать кнопку «Сохранить» и снова получить компонент панели закусок для рендеринга, поскольку я хочу егооставаться в той же форме.Я попробовал несколько методов, но потерпел неудачу.Вот код, который я использую ... возможно, я упускаю тривиальный способ:
class MyForm extends Component {
state = {
showSnackbar: false
};
..
saveChanges = async () => {
// this technique actually toggles the states in sequence successfully
// but I guess since it's super fast, React is not able to render the
// snackbar
await this.renderSnackbar();
await this.unrenderSnackbar();
};
renderSnackbar = async () => {
console.log("render"); // This is being displayed in console
await this.setState({ showSnackbar: true });
};
unrenderSnackbar = async () => {
console.log("unrender"); // This is being displayed in console
await this.setState({ showSnackbar: false });
};
..
..
render() {
return (
..
{this.state.showSnackbar && (
<MessageSnackbar message="Saved successfully!" />
)}
..
)
}
}