Из-за изменения refs
React 0.14 . Я думаю, что у Material-UI будет довольно много проблем почти с каждым компонентом библиотеки.
this.refs.XXX
вернет узел DOM вместо компонента, что означает, что мы не сможем вызывать на нем какие-либо функции компонента.
@tleunen Вы на
@ hai-cea Я изучил некоторые проблемы (я нашел ~ 50 в 21 файле). Это может быть хорошей возможностью для важной вехи. Я смотрел файлы диалога / диалогового окна / оверлея, и через this.refs.xxx.yyy () было много связей, поэтому это может быть непростой задачей. Если вы хотите сделать веху совместимости с React 0.14, дайте мне знать, и я могу помочь в написании проблем (я уверен, что @tleunen хотел бы участвовать - я не хочу его добровольно предлагать).
Спасибо, ребята, @tleunen!
Я согласен, это вызовет некоторые проблемы. Какая альтернатива? Сохранить элемент в переменной внутри рендера?
@jkruder Вы используете gitter - https://gitter.im/callemall/material-ui ? Отправьте мне мгновенное сообщение, и мы займемся организацией проблем / этапов.
В большинстве случаев компоненты не должны иметь общедоступных функций. Все должно проходить с подпорками или при их установке.
Например, компоненту Dialog не нужны show
и hide
. Если он находится в dom, он отображается, иначе - нет.
Я только начинаю использовать Material-UI, поэтому я не очень осведомлен о проблемах с другими компонентами, но я думаю, что большинство из них можно переписать, чтобы не иметь общедоступных функций (в любом случае другого выбора нет).
Дело в том, что это будет серьезное изменение по сравнению с текущей версией.
@tleunen Я не могу больше согласиться с методами отображения и скрытия диалогов.
@tleunen @oliviertassinari Да , я согласен с вами обоими. Это был спор, который мы обсуждали при разработке этого компонента. Проблема, с которой мы столкнулись, заключалась в функции щелчка мышью. Если открытие / закрытие было обработано в состоянии, тогда он мог беспокоиться о закрытии при нажатии. Если бы открытие / закрытие было передано как реквизит, каждый, кто использовал диалог, должен был бы обрабатывать щелчок самостоятельно.
Теперь промежуточным решением было бы добавить опору onClickAway в диалог и позволить пользователю компонента открывать / закрывать.
@ hai-cea Я бы предложил использовать тот же подход, что и https://github.com/rackt/react-modal. По сути, это ваше среднее решение.
Для чего еще эта библиотека использует this.refs
при взаимодействии с компонентом DOM, кроме как getDOMNode()
? Это изменение в React применимо только к таким компонентам, как <div/>
и <i/>
, не так ли? Как обычно, к вашим пользовательским компонентам можно получить доступ с помощью this.refs.xxx
. Поправьте меня, если я ошибаюсь. Я еще не пробовал React 0.14, но то же самое появилось на HackerNews.
Вы имеете в виду, что если React обнаружит, что ссылка находится в пользовательском компоненте, он вернет компонент вместо элемента DOM внутри компонента?
@tleunen это я понимаю. Требуется проверка :)
@mull Было бы очень хорошо, если это так. :)
@ hai-cea @mull @tleunen Просто запустил быстрый тест и ссылка на пользовательский (что-то, что расширяет React.Component) компонент (this.refs.customComponent) вернет ссылку на компонент React, а НЕ на базовый узел DOM. Если у вас есть ссылка на узел DOM (div / a / img / etc), то this.refs.domRef вернет узел.
@ hai-cea При этом я все еще думаю, что лучше отказаться от вызова методов в this.refs.XXX.
@jkruder спасибо, рад, что я говорил не от своего ... :)
хорошо, спасибо за исследование @jkruder. Думаю, мы сэкономим, чтобы закрыть это. Хотя, я думаю, нам еще нужно сделать отметку 0,14?
Кроме того, что вы думаете о # 1033?
Думаю, тогда мы сможем закрыть его. Но было бы хорошо переписать некоторые компоненты, чтобы избавиться от необходимости вызывать на них функции. Компоненты должны работать не так: /
@ hai-cea Согласен. Я работаю над черновиком предлагаемой работы для контрольной точки 0,14, которую отправлю вам для обратной связи.
Что касается # 1033, я не думаю, что мы должны делать прыжок прямо сейчас. Я за создание отдельной ветки, где мы можем преобразовать MUI, чтобы он был совместим с тем, что предлагается для версии 0.14, и сделать компоненты более функциональными (минимизировать / исключить this.refs.XXX.YYY ()).
Если текущее использование this.ref.xxx на самом деле не нарушает material-ui при использовании вместе с react 0.14.0-beta1, тогда я не чувствую, что желание отходить от этого шаблона должно блокировать # 1033. Упростив установку material-ui вместе с react 0.14.0-beta1, вы настроите себя на получение ранней обратной связи по актуальным проблемам, которые могут возникнуть; Лучше получить эту обратную связь, когда 0.14 все еще находится в стадии бета-тестирования.
Возможно, хорошей альтернативой (которая лучше соответствует ожиданиям) является выпуск альфа / бета / rc-версии material-ui на npm, которая имеет 0.14.0 в качестве одноранговой зависимости (и ориентирована на обеспечение совместимости с material-ui 0.14). Таким образом людям будет легче двигаться вперед и находить / исправлять любые проблемы, которые могут существовать.
@jkruder Есть поводу ?
@ashtonwar Пока нет - я сосредоточился на том, чтобы
Приветствую, что посмотрели на это. Я видел material-ui-io
из # 1033. Кажется, что это работает для некоторых компонентов (выпадающие списки, кнопки, закусочная), но падает и умирает на других (флажок, ползунок, переключатель). Неизвестно о других попытках миграции.
@tleunen Оказывается , мы все еще можем использовать this.refs.XXX
для пользовательского компонента. Спасибо @jkruder .
Нет проблем; Я по-прежнему считаю, что по возможности лучше избегать использования this.refs.doSomething()
.
Любые обновления? React JS 0.14 RC 1 только что был выпущен и очень хотел бы использовать с ним Material-UI.
То же самое, есть ли способ поддержать переход на 14?
Я использую material-ui-io в производстве - вроде нормально.
Так что я тот парень, который опубликовал material-ui-io, и это была очень грубая и грустная попытка портировать material-ui.
Я настоятельно рекомендую вам не использовать эту библиотеку в продакшене ! Я сделал порт и опубликовал его через день, чтобы протестировать material-ui, но в итоге переключился на создание собственной библиотеки поверх mdl.
Я бы сказал, что лучший способ, которым все мы можем помочь с проверкой пользовательского интерфейса материала на React 14, - это перейти на React 14-rc1 и сообщать о возникающих проблемах индивидуально. Может быть хорошей идеей начать заголовок проблемы с «React 14-rc1: эта конкретная ошибка ...» или просто позволить проблеме быть помеченной соответствующей меткой.
Но может и нет, и в этом случае я надеюсь, что ведущие специалисты меня поправят.
https://github.com/callemall/material-ui/pull/1647
Возможно, потребуется немного подправить данные о peer-deps, dev-deps и deps, и есть проблема с событиями касания, которые ожидаются.
В React 0.14 onTouchCancel, onTouchEnd, onTouchMove, onTouchStart работают автоматически, см. Https://facebook.github.io/react/blog/#breaking -changes.
Чтобы включить onTouchTap без плагина response-tap-event-plugin:
import EventPluginHub from 'react/lib/EventPluginHub';
import TapEventPlugin from 'react/lib/TapEventPlugin';
EventPluginHub.injection.injectEventPluginsByName({ TapEventPlugin });
У нас все еще есть задержка 300 мс в iOS Safari?
У меня нет IOS ...
Но в первом сообщении здесь https://github.com/facebook/react/issues/436 в качестве решения предлагается внедрение TapEventPlugin.
Помимо этого здесь https://github.com/facebook/react/commit/ff12423d639413c1934dfc2ff337b298952e99ef я нашел соответствующий коммит.
Есть ли предварительные сроки для поддержки React 14? Это действительно старая проблема, и было бы неплохо, если бы она скоро разрешилась!
Я тоже был очень рад использовать этот инструментарий пользовательского интерфейса и избегать Bootstrap, Foundation и даже Elemental UI ... но я использую React 0.14 с Redux и не собираюсь возвращаться к 0.13. Как долго до обновления?
Кроме того, я не уверен, что имею право запрашивать / предоставлять эту информацию, но что касается ссылок (также не уверен, что это 0,14 ... или 0,12 / 0,13), я обычно добавляю это в свои элементы ввода формы:
В моем коде onclick (или другом обработчике) я могу получить доступ к значению через this.name.value. Облегчает получение любых входных значений. Есть ли шанс, что это все, что нужно для обновления инструментария с рабочей ссылкой?
+1 по этому поводу. Нашел сегодня material-ui и был очень рад попробовать его! К сожалению, нет кубиков.
+1. Также хотелось бы знать график этого обновления!
: +1:
Мы приближаемся, ребята! См. № 1751. На этом этапе требуется немного больше работы для обновления до нового react-router
api.
Я бы рекомендовал попробовать ветку react-0.14-support
и сообщать о любых проблемах с префиксом [React0.14] в заголовке. Как только мы получим полную работоспособность этой ветки, я закрою эту проблему (наконец!) :)
Рад слышать! С нетерпением жду финальной версии. Я работал с
Redux, React, response-router, и пока это довольно хороший способ. Смотреть
ждем включения в это Material UI.
Во вторник, 29 сентября 2015 г., в 13:31, Шаурья Арора [email protected]
написал:
Мы приближаемся, ребята! См. № 1751
https://github.com/callemall/material-ui/pull/1751. На данный момент
требуется немного больше работы для обновления до нового api реактивного маршрутизатора.Я бы порекомендовал попробовать ветку response-0.14-support и отчетность.
любые проблемы с префиксом [React0.14] в заголовке-
Ответьте на это письмо напрямую или просмотрите его на GitHub
https://github.com/callemall/material-ui/issues/1030#issuecomment -144183104
.
Круто! Буду ставить вопросы, если есть что ...
Есть новости о дате выпуска поддержки React 0.14?
@amagdas знаете ли вы о react-0.14-support
? Это постоянное усилие. Не стесняйтесь протестировать это и сообщать о любых проблемах с префиксом [React0.14]
@ shaurya947 Да, я знаю об этом, но я не могу установить ветку с помощью npm, пытаюсь снова.
Было бы неплохо иметь какой-нибудь Readme / wiki о том, как протестировать эту ветку с помощью react 0.14.
вы можете либо npm link
из клона, либо сделать npm i 'git://github.com/callemall/material-ui#react-0.14-support'
в своем проекте.
Чтобы было ясно, вам нужно выполнить установку npm в каталоге node_modules
не корень вашего каталога
2 октября 2015 г. в 08:01 "Цзя-лян Као" [email protected] написал:
вы можете либо ссылку npm из клона, либо выполнить npm i 'git: //
github.com/callemall/material-ui#react-0.14-support 'в свой проект.-
Ответьте на это письмо напрямую или просмотрите его на GitHub
https://github.com/callemall/material-ui/issues/1030#issuecomment -145051787
.
@amagdas эта ветка еще не работает на npm, так как в ней все еще есть некоторые проблемы, и работа над ней продолжается.
Вы можете либо сделать то, что сказал @clkao , либо после клонирования репозитория на вашем компьютере переключиться на ветку react-0.14-support
используя git checkout react-0.14-support
.
После этого, когда вы запускаете npm i
в корневом каталоге, все исходные файлы компилируются в папку lib
. Затем вы можете использовать эту папку lib в своем проекте.
Ага, сделал это, и это работает, дадим обратную связь.
Как насчет использования этого инструмента FB для автоматического внесения изменений? https://github.com/facebook/react/blob/master/packages/react-codemod/README.md
Посмотрите на «Известные исправления ошибок» в анонсе React 0.14 (http://facebook.github.io/react/blog/2015/10/07/react-v0.14.html):
«События кликов более надежно обрабатываются React DOM в мобильных браузерах, особенно в Mobile Safari».
...
@kinolaev Подробнее: https://github.com/callemall/material-ui/pull/1732#issuecomment -143478944
react-0.14-support
удалено?
@ovaris меня слили в master.
@oliviertassinari, когда будет доступно на npm?
когда будет доступно в npm
Понятия не имею, когда у нас будет версия без ошибок. Однако вы можете попробовать основную ветку с npm.
Должно быть исправлено последней версией v0.13.0
Спасибо evreybody за вашу помощь.
@oliviertassinari, спасибо!
благодарю вас!
Есть идеи, будет ли эта проблема существовать в последней версии material-ui? Я могу использовать большинство компонентов, кроме тех, которые используют this.refs.xxx.
Я нахожусь на реакции 0.14.8 и material-ui 0.14.4 ...
та же ошибка
Похоже, что material-ui не работает с React 0.14.8 и 0.14.9, и это жалко.
Webpack выдает много странных жалоб на мою консоль. Не понимаю, что делать.
@ topgun743 Очень обидно с вашей стороны описывать прекрасную работу здесь ( бесплатно ) как жалкую.
Так как этот вопрос был открыт React 15 был выпущен, какой материал-интерфейс совместим с. Я предлагаю обновить React внутри вашего проекта.