I'm trying to use a jquery function inside of my JSX component.
JSX code:
import React, { Component } from 'react';
import '../css/nav.scss';
import { Link, NavLink } from 'react-router-dom';
import 'react-bootstrap';
import $ from 'jquery';
class Navbar extends Component {
state = {};
$(window).scroll(function() {
var nav = $('#navbar');
var top = 200;
if ($(window).scrollTop() >= top) {
nav.addClass('down');
} else {
nav.removeClass('down');
}
});
render() {
return (
<nav className="navbar sticky-top navbar-expand-lg ">
<NavLink
to="/"
class="navbar-brand"
activeClassName="navbar-brand--active"
>
Web_Env
</NavLink>
<button
class="navbar-toggler"
type="button"
data-toggle="collapse"
data-target="#navbarNavDropdown"
aria-controls="navbarNavDropdown"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavDropdown">
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<a class="nav-link" href="#">
Create post
</a>
</li>
</ul>
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<NavLink
to="/login"
className="nav-link"
activeClassName="nav-link--active"
>
Login
</NavLink>
</li>
<li className="nav-item">
<NavLink
to="/register"
className="nav-link"
activeClassName="nav-link--active"
>
Register
</NavLink>
</li>
</ul>
</div>
</nav>
);
}
}
export default Navbar;
I get an error on the period between $(window)
.scroll
which says " '{' or ';' expected.ts(1144) "
The next error is on the function()
which says " (method) Navbar.function(): void
Parameter declaration expected.ts(1138) ". I don't understand what I'm doing wrong or why function doesn't work. I've tried another snippet of jquery code and got another error on function. I definetly hav jquery installed and it is imported.