Опишите проблему
Есть необходимость сделать кнопку ссылкой на внутреннюю страницу. Переход по ссылке не должен перезагружать страницу. Т.к. в проекте используется react-router, то для переходов используется компонент Link из react-router-dom. Если в качестве пропса Component передать компонент Link, то возникают 2 проблемы:
- Typescript не дает возможность использовать пропсы, необходимые для
Link, на компоненте Button
- Компонент
Button добавляет ненужный (невалидный) пропс type="button", хотя никакая кнопка в моем случае не рендерится.
Ожидаемое поведение
Если задан пропс Component, то компонент Button должен уметь принимать все необходимые пропсы для компонента Component и прокидывать их в него. Также если задан пропс Component, то компонент Button не должен добавлять ненужные пропсы типа type="button".
Тестовый стенд
https://codesandbox.io/s/lucid-benz-oj9pu?file=/src/App.tsx
Опишите проблему
Есть необходимость сделать кнопку ссылкой на внутреннюю страницу. Переход по ссылке не должен перезагружать страницу. Т.к. в проекте используется
react-router, то для переходов используется компонентLinkизreact-router-dom. Если в качестве пропсаComponentпередать компонентLink, то возникают 2 проблемы:Link, на компонентеButtonButtonдобавляет ненужный (невалидный) пропсtype="button", хотя никакая кнопка в моем случае не рендерится.Ожидаемое поведение
Если задан пропс
Component, то компонентButtonдолжен уметь принимать все необходимые пропсы для компонентаComponentи прокидывать их в него. Также если задан пропсComponent, то компонентButtonне должен добавлять ненужные пропсы типаtype="button".Тестовый стенд
https://codesandbox.io/s/lucid-benz-oj9pu?file=/src/App.tsx