Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 安排Axios响应数据以适合我的TypeScript界面_Javascript_Reactjs_Typescript_Interface_Axios - Fatal编程技术网

Javascript 安排Axios响应数据以适合我的TypeScript界面

Javascript 安排Axios响应数据以适合我的TypeScript界面,javascript,reactjs,typescript,interface,axios,Javascript,Reactjs,Typescript,Interface,Axios,我已经创建了一个名为“ServerData”的接口,它保存一个对象——我从Musixmatch API请求的歌曲数据。 我想用Axios获取一首歌曲,然后将其置于initialState,但由于我不熟悉接口,我不确定如何处理我的响应,使其适合ServerData接口 当我将鼠标悬停在错误上方时,它会显示: 类型“{randomSong:object;}”不能分配给类型“never” 如果相关的话,在我将TypeScript添加到项目之前,Axios fetch工作正常,我的前端能够获取歌曲数据,

我已经创建了一个名为“ServerData”的接口,它保存一个对象——我从Musixmatch API请求的歌曲数据。 我想用Axios获取一首歌曲,然后将其置于initialState,但由于我不熟悉接口,我不确定如何处理我的响应,使其适合ServerData接口

当我将鼠标悬停在错误上方时,它会显示:
类型“{randomSong:object;}”不能分配给类型“never”

如果相关的话,在我将TypeScript添加到项目之前,Axios fetch工作正常,我的前端能够获取歌曲数据,只是那时我没有使用接口,所以没有问题


根据您收到的错误消息,问题不在于axios响应的类型,而在于
setInitialState的类型。它告诉您,
setInitialState
只能接受空数组(
never[]

我猜
setInitialState
来自
useState
钩子?在调用
useState
时,您并不总是需要设置泛型,因为有时可以从初始值正确推断泛型,但在这种情况下,您可以这样做。当初始数组为空时,Typescript不可能知道数组中允许包含哪些类型的元素。你必须说出来

更改您的
useState
调用以包括以下泛型:

const [initialState, setInitialState] = useState<ServerData[]>([]);
const[initialState,setInitialState]=useState([]);