【发布时间】:2022-01-02 18:44:36
【问题描述】:
我有以下代码并收到此错误(未提供“defaultValue”的参数。)。
我需要输入一些默认值,但我看不到哪些默认值。
我还遇到了一些其他错误:
-
“从不”类型上不存在属性“imdbID”。和
-
“any[]”类型的参数不能分配给“SetStateAction
”类型的参数。 类型 'any[]' 不能分配给类型 'never[]'。 类型 'any' 不可分配给类型 'never'.ts(2345) -
“any”类型的参数不能分配给“never”类型的参数。ts(2345) (参数)电影:任何
import React, { createContext, useState, useEffect } from 'react';
import axios from 'axios';
export const MovieContext = createContext();
const MovieApp = ({ children }:any) => {
const [favorites, setFavorites] = useState([]);
const [movies, setMovies] = useState();
const [search, setSearch] = useState('');
const [selectedMovie, setSelectedMovie] = useState('');
const fetchMovies = async (searchValue) => {
const response = await axios(
`https://www.omdbapi.com/?apikey=${API_KEY}&s=${searchValue}`
);
const data = response.data;
setMovies(data.Search);
};
const removeFavoriteMovie = (movie:any) => {
movie.isFavorite = false;
const newFavoriteList = favorites.filter(
(fav) => fav.imdbID !== movie.imdbID
);
setFavorites(newFavoriteList);
};
const addFavoriteMovie = (movie:any) => {
movie.isFavorite = true;
const newFavoriteList = [...favorites, movie];
setFavorites(newFavoriteList);
};
const favoriteHandler = (movie:any, e:any) => {
e.preventDefault();
if (favorites.includes(movie)) {
removeFavoriteMovie(movie);
} else {
addFavoriteMovie(movie);
}
};
const showDetail = async (id:any) => {
const response = await axios(
`https://www.omdbapi.com/?apikey=${API_KEY}&i=${id}`
);
const data = response.data;
setSelectedMovie(data);
};
useEffect(() => {
console.log(API_KEY)
fetchMovies(search);
}, [search]);
return (
<MovieContext.Provider
value={{
setSearch,
movies,
favorites,
favoriteHandler,
showDetail,
selectedMovie,
}}
>
{children}
</MovieContext.Provider>
);
};
export default MovieApp;
【问题讨论】:
-
您在很多地方都选择不使用
any进行类型检查。是不是不能写一些类型?
标签: reactjs typescript react-typescript