There are several ways to prevent form submission in a React component.
If we have a button inside the form, we can make set the button’s type
to be button
.
For instance, we can write:
<button type="button" onClick={this.onTestClick}>click me</Button>
If we have a form submit handler function passed into the onSubmit
prop;
<form onSubmit={this.onSubmit}>
then in th onSubmit
method, we call preventDefault
to stop the default submit behavior.
For example, we can write:
onSubmit (event) {
event.preventDefault();
//...
}
TypeScript Type for the Match Object
We can use the RouteComponentProps
interface, which is a generic interface that provides some base members.
We can pass in our own interface to match more members if we choose.
For example, we can write:
import { BrowserRouter as Router, Route, RouteComponentProps } from 'react-router-dom';
interface MatchParams {
name: string;
}
interface MatchProps extends RouteComponentProps<MatchParams> {}
const App = () => {
return (
<Switch>
<Route
path="/products/:name"
render={({ match }: MatchProps) => (
<Product name={match.params.name}
/> )}
/>
</Switch>
);
}
We use the MatchProps
interface that we created as the type for the props parameter in the render
prop.
Then we can reference match.params
as we wish.