-
Notifications
You must be signed in to change notification settings - Fork 44
Компонент Button плохо работает с пропсом Component #824
Comments
@ekabolotina Поменяй to на href. Мы эту задачу катили в срочном режиме, поэтому забыли добавить доку. Component нужен в 99% для интеграции с роутером, поэтому нам нужно было дать возможность отрендерить Link внутри нашей кнопки + накинуть |
Костыль-то я сделал, здесь вопрос в том, чтобы доработать этот компонент так, чтобы он работал правильно. |
А что сейчас работает неправильно? Какой твой кейс текущее решение не покрывает и какие пропсы ты хочешь прокинуть в кастомный компонент? Я не вижу причин делать из кнопки дженерик и заморачиваться с типами. Сейчас, чтобы интегрировать кнопку с роутером, достаточно добавить Но мы всегда открыты для контрибьюта, поэтому если есть желание что-то улучшить — welcome ✋ |
Ты берешь Button, ставишь ему href и в качестве Component передаешь Link, все работает как нужно. Это общебанковская либа и ты можешь принести ПР, если что-то по-твоему мнению сделано не так. |
С какой стати Насчет предложить ПР — я не против помочь. С другой стороны я не понимаю твоего сопротивления. Понятно, что вы выкатили быструю фичу, но это не повод отказываться сделать доработку и положить, например, эту задачу в бэклог. Все то же самое нужно будет и для компонента |
Обсудили в личке, сделаем ПР |
@ekabolotina Вань, нужна помощь. Я уже который раз пробую взять эту таску, но у меня не получается подружить это все с forwardRef |
понял, постараюсь помочь) |
Опишите проблему
Есть необходимость сделать кнопку ссылкой на внутреннюю страницу. Переход по ссылке не должен перезагружать страницу. Т.к. в проекте используется
react-router
, то для переходов используется компонентLink
изreact-router-dom
. Если в качестве пропсаComponent
передать компонентLink
, то возникают 2 проблемы:Link
, на компонентеButton
Button
добавляет ненужный (невалидный) пропсtype="button"
, хотя никакая кнопка в моем случае не рендерится.Ожидаемое поведение
Если задан пропс
Component
, то компонентButton
должен уметь принимать все необходимые пропсы для компонентаComponent
и прокидывать их в него. Также если задан пропсComponent
, то компонентButton
не должен добавлять ненужные пропсы типаtype="button"
.Тестовый стенд
https://codesandbox.io/s/lucid-benz-oj9pu?file=/src/App.tsx
The text was updated successfully, but these errors were encountered: