私が欲しいのは、このような外観のHTMLです。<a href="/page/my-cool-slug">My cool Slug</a>
。ハイクリンクでonclicksを最もうまく扱う方法
つまり、誰かがリンクを右クリックして新しいタブで開くことができます。それは反応ルータが提供する素晴らしい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>
また、私はa.href
属性を取得するイベントハンドラでevent.target
を使用してみましたが、<a>
タグが<span>
要素が含まれているため、その後、event.target
は私が<a>
内でクリックした<span>
タグです素子。
によって私が反応し、ルータから 'Link'を発見したが、それは新しいアクションの発送を処理しません。 –
コンポーネントからアクションを呼び出す必要があります。リンクがルーティングを処理するようにしましょう –