私が欲しいのは、このように見える HTML をレンダリングすることです<a href="/page/my-cool-slug">My cool Slug</a>
。
つまり、誰かがリンクを右クリックして新しいタブで開くことができるということです。これにより、react-router が提供する豪華な pushState がバイパスされます。
ただし、誰かが通常のクリックを行った場合は、redux を更新して、新しいスラッグ (またはページネーション ページなど) が何であるかを伝え、 を呼び出す必要がありますbrowserHistory.push(...)
。
便利で簡単な方法が必要です。すべての混乱なしにこれらのほとんどすべてを行う何か。私のアプリケーションは次のようになります。
// imports
import { browserHistory } from 'react-router'
import changeSlug from './actions'
// the function
makeURL(thing) {
return `/page/${thing.slug}`
}
// this click method
handleClick(event, thing) {
event.preventDefault()
this.props.dispatch(changeSlug(thing.slug))
browserHistory.push(`/page/${thing.slug}`)
}
// the JSX
<a href={makeURL(myobject)}
onClick={(event) => handleClick(event, myobject)}
>Go to {myobject.title}</a>
また、event.target
イベントハンドラーでa.href
属性を取得しようとしましたが、<a>
タグに<span>
要素が含まれているため、要素内でクリックしevent.target
たタグです。<span>
<a>