I am using the Link component from the reactjs router and I cannot get the onClickevent working. This is the code:
<Link to={this.props.myroute} onClick='hello()'>Here</Link>
Is this the way to do it or another way?
I am using the Link component from the reactjs router and I cannot get the onClickevent working. This is the code:
<Link to={this.props.myroute} onClick='hello()'>Here</Link>
Is this the way to do it or another way?
You should use this:
Or (if method
hello
lays at this class):I don't believe this is a good pattern to use in general. Link will run your onClick event and then navigate to the route, so there will be a slight delay navigating to the new route. A better strategy is to navigate to the new route with the 'to' prop as you have done, and in the new component's componentDidMount() function you can fire your hello function or any other function. It will give you the same result, but with a much smoother transition between routes.
For context, I noticed this while updating my redux store with an onClick event on Link like you have here, and it caused a ~.3 second blank-white-screen delay before mounting the new route's component. There was no api call involved, so I was surprised the delay was so big. However, if you're just console logging 'hello' the delay might not be noticeable.
You are passing
hello()
as a string, alsohello()
means executehello
immediately.try