Почему этот элемент сетки материалов и пользовательского интерфейса перемещается, когда я нажимаю на него? - PullRequest
2 голосов
/ 18 октября 2019

Я занимаюсь разработкой приложения React с использованием Material UI. У меня проблема с одной страницей приложения.

Эта страница содержит текст и кнопку, которые выровнены по вертикали друг с другом. Он также содержит второй фрагмент текста и вторую кнопку, которые вертикально выровнены друг с другом и которые изначально скрыты. Первая кнопка может использоваться, чтобы показать второй фрагмент текста и вторую кнопку. Вторая кнопка может использоваться, чтобы скрыть второй фрагмент текста и себя (т.е. вторую кнопку).

Вот ссылка на скриншот страницы с видимым изначально скрытым содержимым (у меня нетдостаточно точек повторения StackOverflow для встраивания изображения).

Reaction-material-ui-app-page-screenshot-1008 *

У меня проблема в том, что:

Когда я нажимаю первую кнопку (т.е. кнопку «ПОКАЗАТЬ»), затем нажимаю вторую кнопку (то есть кнопку «СКРЫТЬ»), затем снова нажимаю первую кнопку; первая кнопка перепрыгивает через страницу . Точнее говоря, он касается того, что его правый край касается правого края элемента <body>, и его левый край касается правого края предыдущего фрагмента текста.

После того, как кнопка перепрыгнула, когдаКогда я изменяю размер окна браузера (например, щелкая и перетаскивая окно приложения Chrome), кнопка возвращается в исходное положение.

Примечание. Прыжок происходит в Chrome , но не в Firefox.

Кто-нибудь из вас знает, почему это происходит?

Я создал демонстрацию этого явления на CodeSandbox. Вот ссылка на эту демонстрацию:

Ответы [ 2 ]

0 голосов
/ 19 октября 2019

При ближайшем рассмотрении кажется, что это имеет отношение к наличию flex-wrap: wrap на display: flex; flex-direction: column;.

wrap={"nowrap"}

... исправляет это.

Смотрите здесь .

Трудно сказать, если это ошибка или нет. Чего следует ожидать от контейнера гибкого столбца с flex-wrap:wrap и без набора height в терминах ширины столбца?
Поскольку правильное поведение может заключаться в том, чтобы максимально уменьшить столбец.

Баг в том, что он отрисовывается по-разному в разных контекстах. Каково бы ни было правильное поведение, оно должно быть последовательным.

0 голосов
/ 19 октября 2019

Вы можете предотвратить поведение, добавив ширину в строку 19.

19 <Grid item style={{ border: "1px dashed lightblue", width: "100%" }}>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...