我有一個自定義對象,一個數組,並在其中存儲 api 響應,並將該數據顯示到 UI 以供 flatlist 使用。
export type userInfo = {
id: string,
title: string,
email: string,
userAccount: number
};
export type userData = {
page: number,
pageSize: number,
userInformation: userInfo[]
}
export const User: FunctionComponent = () => {
const [search, setSearch] = useState('');
const [userInfo, setUserInfo] = useState<userInfo>();
const [arrayholder, setArrayholder] =useState<userInfo>();
useEffect(() => {
setUserInfo(someState.userInfo);
setArrayholder(someState.userInfo);
}, [someState]);
searchData= (text: any)=> {
const newData = arrayholder?.userData.filter(item => {
const itemData = item.title.toUpperCase();
const textData = text.toUpperCase();
return itemData.indexOf(textData) > -1
});
console.log("newData is", newData) //here throwing error
setUserInfo(newData)
setSearch(text)
}
}
return (
//here showing searchbar
//here showing flatlist showing with userInfo
)
嘗試為 userInfo 設置 newdata 時,顯示以下錯誤並且無法在 flatlist 中顯示搜索數據。
Type 'userInfo[]' provides no match for the signature '(prevState: userInfo | undefined): userData | undefined'.ts(2345)
有什麼建議?
我是打字稿語言的新手。
filter
返回一個數組:
arrayholder?.activities.filter
這就是 userInfo 需要數組類型參數的原因。
const [userInfo, setUserInfo] = useState<userInfo[]>();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句