1

私が欲しいのは、このように見える 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>

4

1 に答える 1

0
  1. from react_router を使用<Link />して、onEnter/etc を決定できます。<Route />あなたの(で)のアクション<Router />
  2. また、ラップ<a><span>ていくつかの属性を追加し、クリックイベントを処理することもできます。
  3. display: blockまた、スタイルを追加することもできます<a>=> ラップしないでください<span>
于 2016-04-28T14:34:42.577 に答える