【发布时间】:2020-05-07 11:08:57
【问题描述】:
我正在尝试保存从 api 获取的数组并将其保存到 useState(['']),这样做我数组中的第一个条目是空的。
看起来像这样:
(3) ["", "5ea5d29230778c1cd47e02dd", "5ea5d2f430778c1cd47e02de"]
我从我的 axios 获得的实际数据称之为(2) ["5ea5d29230778c1cd47e02dd", "5ea5d2f430778c1cd47e02de"]
我是这样称呼和设置的:
const [favorites, setFavorites] = useState(['']);
const getIds = async () => {
const { data } = await axios.get('/api/favIds');
setFavorites(favorites => [...favorites, ...data.favorites]);
}
useEffect(() => {
getIds();
}, []);
编辑
我正在使用打字稿
如果我这样设置:
const [favorites, setFavorites] = useState([]);
我收到此错误:
> Argument of type '(favorites: never[]) => any[]' is not assignable to
> parameter of type 'SetStateAction<never[]>'. Type '(favorites:
> never[]) => any[]' is not assignable to type '(prevState: never[]) =>
> never[]'.
> Type 'any[]' is not assignable to type 'never[]'.
> Type 'any' is not assignable to type 'never'.ts(2345)
【问题讨论】:
-
...favorites。您追加到您已经拥有''的现有数组。使用''初始化数组的任何原因? -
@Keith 如果它是空的,它在打字稿中不起作用
标签: javascript reactjs typescript async-await react-hooks