I try to make my Material-UI RaisedButton link to an external url without success?

HenrikGr picture HenrikGr · Jul 25, 2016 · Viewed 29.4k times · Source

As the question in the title state.

Playing with react, react-router and material-ui and in one place I want to make an action button in a Card component link to an external url, like without success.

I'm currently thinking of adding an event handler to use window.open, but it must be a smarter way?

I did find a solution, before the code looked like this.

<CardActions>
   <RaisedButton
       href={this.props.url}
       label="OK"
   />
</CardActions>

The solution was very simple:

<CardActions>
   <a href={this.props.url} target="_blank">
     <RaisedButton
        label="OK"
     />
   </a>
</CardActions>

Answer

Arpit picture Arpit · Oct 24, 2017

If we are adding external link in react-router Link or material-ui Button then This is important we add 'http://' (or https://) in external url. link will not work without add http.

WRONG CODE -

<Link target="_blank" to='www.google.com'>Google</Link>

then redirect link will

localhost:3000/www.google.com

RIGHT CODE -

If we want to redirect with react-router Link then this is example code -

<Link target="_blank" to='http://www.google.com'>Google</Link>

If we want to redirect with material-ui Button then this is example code -

<Button target="_blank" href="http://www.google.com/">Google</Button>

Note: I added target="_blank" in Link/Button. This is optional (and If I will add any external link in my website then I will want to open that link in another Browser Tab not in same Tab.)