Если вы не хотите отключать правило eslint, вам нужно следовать ему, просто добавьте реквизит в ваш массив зависимостей:
useEffect(() => {
axios
.get("http://localhost:5000/students/" + props.match.params.id)
.then(response => {
setState({
name: response.data.name,
birthday: response.data.birthday,
address: response.data.address,
zipcode: response.data.zipcode,
city: response.data.city,
phone: response.data.phone,
email: response.data.email
});
})
.catch(function(error) {
console.log(error);
});
}, [props.match.params.id]);
Это означает, что если идентификатор изменится, ваш эффект будет быть размонтирован и вызван снова, что, кажется, имеет смысл, учитывая, что match.params.id используется внутри вашего эффекта.