Страница обновляется, так как тип кнопки - «отправить», что вызывает обновление страницы.
Вы можете подписаться, нажав на «Песочницу».
Таким образом, вы можете остановить проблему двумя различными способами.
1 Удалить "type = submit"
const CommentSend = () => {
// ... redacted for brevity
return (
<form>
<Button
onClick={e => {
setOpen(true);
}}
>
Add Comment
</Button>
<Dialog open={open}>
// ... redacted for brevity
</Dialog>
</form>
);
};
Ознакомьтесь с рабочей демонстрацией ниже.
2 Запретить событие по умолчанию при нажатии кнопки.
<Button
onClick={e => {
e.preventDefault();
setOpen(true);
}}
type="submit"
>
Если вам нужно сохранить type="submit"
для кнопки, вы можете предотвратить обновлениеиспользуя событие, переданное обратному вызову onClick и вызову .preventDefault()
.