reactjs - React-bootstrap med Typescript: Användning av fill eller justify-prop orsakar Typescript-fel


Kod

import { useCallback, useState, useEffect } from 'react';
import { Tabs, Tab, Spinner, Alert } from 'react-bootstrap';

import { Categories } from '../../models/ICategory';
import IMovie from '../../models/IMovie';
import { getMovies } from '../../services/movies';
import Movies from '../Movies/index';


export default function Landing() {
    const [favourites, setFavourites] = useState<IMovie[]>([]);
    const [loading, setLoading] = useState<boolean>(true);
    const [error, setError] = useState<Error | null>(null);

    const fetchFavourites = useCallback(async () => {
        try {
            const favourites = await getMovies(Categories.Favourite);
            setFavourites( favourites );
        } catch (error) {
            setError( error as Error);
        } finally {
            setLoading(false);
        }
    }, []);

    useEffect(() => {
        fetchFavourites();
    }, [fetchFavourites]);

    if(loading) {
        return (
            <Spinner animation="border" role="status">
                <span className="visually-hidden">Loading...</span>
            </Spinner>
        )
    }

    if(!loading && error) {
        return (
            <Alert variant="danger">{error.message}</Alert>
        );
    }
    

    return (
        <Tabs
            defaultActiveKey={Categories.MoviesComing}
            id='landing-page-tab'
            className='mb-3 px-3'
            fill
        >
            <Tab eventKey={Categories.MoviesComing} title='Coming Soon'>
                <Movies category={Categories.MoviesComing} favourites={favourites} setFavourites={setFavourites} />
            </Tab>
            <Tab eventKey={Categories.MoviesInTheaters} title='In Theatres'>
                <Movies category={Categories.MoviesInTheaters} favourites={favourites} setFavourites={setFavourites} />
            </Tab>
            <Tab eventKey={Categories.TopRatedIndia} title='Top Rated In India'>
                <Movies category={Categories.TopRatedIndia} favourites={favourites} setFavourites={setFavourites} />
            </Tab>
            <Tab eventKey={Categories.TopRatedMovies} title='Top Rated'>
                <Movies category={Categories.TopRatedMovies} favourites={favourites} setFavourites={setFavourites} />
            </Tab>
            <Tab eventKey={Categories.Favourite} title='Favourites'>
                <Movies category={Categories.Favourite} favourites={favourites} setFavourites={setFavourites} />
            </Tab>
        </Tabs>
    )
}

Fel

FEL i src/components/Landing/index.tsx:50:13 TS2322: Typen '{ children: Element[]; defaultActiveKey: Categories; id: string; className: string; fill: true; }' går inte att tilldela typen 'IntrinsicAttributes & Pick

Samma sak händer när jag lägger till justify-prop på Tabs. React-Bootstrap-dokumentationen föreslår denna metod: https://react-bootstrap.github.io/components/tabs/#fill-and-justify Och det fungerar på webbsidan, men startar med ett fel och det kompileringsfelet.

Hur kan jag inkludera de där propsen utan Typescript-felet?

Svar #1

Använd @ts-ignore före attributet 'fill' för att tillfälligt inaktivera felet. Det kommer att fungera. Vi måste öppna ett ärende på deras Github-repository för att göra dem uppmärksamma på det. Demonstration nedan:

<Tabs
   defaultActiveKey={Categories.MoviesComing}
   id='landing-page-tab'
   className='mb-3 px-3'
   // @ts-ignore
   fill
  >
     <Tab eventKey={Categories.MoviesComing} title='Coming Soon'>
            <Movies category={Categories.MoviesComing} favourites={favourites} setFavourites={setFavourites} />
        </Tab>
        <Tab eventKey={Categories.MoviesInTheaters} title='In Theatres'>
            <Movies category={Categories.MoviesInTheaters} favourites={favourites} setFavourites={setFavourites} />
        </Tab>
        <Tab eventKey={Categories.TopRatedIndia} title='Top Rated In India'>
            <Movies category={Categories.TopRatedIndia} favourites={favourites} setFavourites={setFavourites} />
        </Tab>
        <Tab eventKey={Categories.TopRatedMovies} title='Top Rated'>
            <Movies category={Categories.TopRatedMovies} favourites={favourites} setFavourites={setFavourites} />
        </Tab>
        <Tab eventKey={Categories.Favourite} title='Favourites'>
            <Movies category={Categories.Favourite} favourites={favourites} setFavourites={setFavourites} />
        </Tab>
  </Tabs