我想要的是呈现的HTML看起来像<a href="/page/my-cool-slug">My cool Slug</a>
。
这意味着有人可以右键单击该链接并在新标签页中打开。这将绕过反应路由器提供的花哨的pushState内容。
但是,如果有人定期点击,我需要更新redux以说明新的slug(或分页页面或其他)并且调用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>
标记。
答案 0 :(得分:0)
<Link />
并确定onEnter / etc。
您<Route />
(<Router />
)中的操作。 <a>
中的<span>
并为其添加一些属性并进行处理
点击事件。 display: block
样式添加到<a>
=&gt;它
不应该由<span>