Valeri
Valeri

Reputation: 73

Style.css not loading on React

I have several pages on my react app.

Edit, Delete, Create, Home

I am using React Router for navigation. I found this issue:

When I refresh a page that has :id in its params like "/games/edit/1" or "/games/details/2" my style.css is not loading. Instead in its it loads "You need to enable JavaScript to run this app." when I inspect the Networking tab in my browser.

NOTE : My style.css is included in the index.html file

Here is my Edit Component :

import { useEffect, useState } from 'react';
import { useNavigate, useParams } from 'react-router-dom';
import { editGame, getGame } from 'services/api/games';
import { getAccessToken } from 'utils/userToken';

export const Edit = () => {
    const navigate = useNavigate();
    const { id } = useParams();

    const [formData, setFormData] = useState({
        category: '',
        title: '',
        maxLevel: '',
        imageUrl: '',
        summary: '',
    });

    useEffect(() => {
        getGame(id).then(({ category, title, maxLevel, imageUrl, summary }) => {
            let newForm = {
                category,
                title,
                maxLevel,
                imageUrl,
                summary,
            };

            setFormData((formData) => newForm);
        });
    }, [id]);

    function onChange(ev) {
        const name = ev.target.name;
        const value = ev.target.value;

        const newForm = {
            ...formData,
            [name]: value,
        };

        setFormData((formData) => newForm);
    }

    async function onSubmite(ev) {
        ev.preventDefault();

        const token = await getAccessToken();
        const response = await editGame(id, token, formData);

        if (response.code === 403) {
            return window.alert('You are not authorized');
        }

        navigate(`/games/${id}`);
    }
    return (
        // <!-- Edit Page ( Only for the creator )-->
        <section id="edit-page" className="auth">
            <form id="edit" onSubmit={onSubmite}>
                <div className="container">
                    <h1>Edit Game</h1>
                    <label htmlFor="leg-title">Legendary title:</label>
                    <input
                        type="text"
                        id="title"
                        name="title"
                        value={formData.title}
                        onChange={onChange}
                    />

                    <label htmlFor="category">Category:</label>
                    <input
                        type="text"
                        id="category"
                        name="category"
                        value={formData.category}
                        onChange={onChange}
                    />

                    <label htmlFor="levels">MaxLevel:</label>
                    <input
                        type="number"
                        id="maxLevel"
                        name="maxLevel"
                        min="1"
                        value={formData.maxLevel}
                        onChange={onChange}
                    />

                    <label htmlFor="game-img">Image:</label>
                    <input
                        type="text"
                        id="imageUrl"
                        name="imageUrl"
                        value={formData.imageUrl}
                        onChange={onChange}
                    />

                    <label htmlFor="summary">Summary:</label>
                    <textarea
                        name="summary"
                        id="summary"
                        onChange={onChange}
                        value={formData.summary}
                    ></textarea>
                    <input
                        className="btn submit"
                        type="submit"
                        value="Edit Game"
                    />
                </div>
            </form>
        </section>
    );
};

Upvotes: 1

Views: 2145

Answers (1)

user2465134
user2465134

Reputation: 9753

Try importing your CSS into the index.js or App.js file (not sure your folder structure) instead of the in your index.html file.

import '../some/route/style.css';

Upvotes: 1

Related Questions