mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
669225263d
Allow `onClick` on `next/link` child. This should not be a breaking change, but it's a very useful feature. Real-life use cases include: analytics or closing menu on navigation, and other. - [x] allow optional `onClick` on `next/link` component's child - [x] call original `child.props.onClick(e)` before `this.linkClicked(e)` - [x] add integration tests - [x] cancel the navigation if `e.defaultPrevented === true` Fixes #1490
28 lines
653 B
JavaScript
28 lines
653 B
JavaScript
import { Component } from 'react'
|
|
import Link from 'next/link'
|
|
|
|
let count = 0
|
|
|
|
export default class OnClick extends Component {
|
|
static getInitialProps ({ res }) {
|
|
if (res) return { count: 0 }
|
|
count += 1
|
|
|
|
return { count }
|
|
}
|
|
|
|
render () {
|
|
return (
|
|
<div id='on-click-page'>
|
|
<Link href='/nav/on-click'>
|
|
<a id='on-click-link' onClick={() => ++count}>Self Reload</a>
|
|
</Link>
|
|
<Link href='/nav/on-click'>
|
|
<a id='on-click-link-prevent-default' onClick={(e) => { e.preventDefault(); ++count }}>Self Reload</a>
|
|
</Link>
|
|
<p>COUNT: {this.props.count}</p>
|
|
</div>
|
|
)
|
|
}
|
|
}
|