タイトル状態での質問として。
React、react-router、およびmaterial-uiを1つの場所で使用して、Cardコンポーネントのアクションボタンを外部URLにリンクしたいのですが、成功しません。
現在window.openを使用するイベントハンドラーを追加することを考えていますが、よりスマートな方法である必要がありますか?
コードがこのようになる前に、解決策を見つけました。
<CardActions>
<RaisedButton
href={this.props.url}
label="OK"
/>
</CardActions>
解決策は非常に簡単でした:
<CardActions>
<a href={this.props.url} target="_blank">
<RaisedButton
label="OK"
/>
</a>
</CardActions>
React-routerリンクまたはmaterial-uiボタンに外部リンクを追加する場合は、外部URLに「http://」(またはhttps://)を追加することが重要です。リンクはhttpを追加しないと機能しません。
不正なコード -
<Link target="_blank" to='www.google.com'>Google</Link>
次にリダイレクトリンクが
localhost:3000/www.google.com
正しいコード-
React-router Linkでリダイレクトしたい場合、これはサンプルコードです-
<Link target="_blank" to='http://www.google.com'>Google</Link>
Material-uiボタンでリダイレクトしたい場合、これはサンプルコードです-
<Button target="_blank" href="http://www.google.com/">Google</Button>
ラップできます<RaisedButton />
から<Link />
内部ルーティング用のコンポーネント。
<Link to={this.props.cardItem.resourceUrl}>
<RaisedButton label="Ok" />
</Link>
そして、単純な<a>
外部タグ:
<a href={this.props.cardItem.resourceUrl}>
<RaisedButton label="Ok" />
</a>