在自定义对象的本机打字稿中搜索过滤器完成后无法分配数据
Unable to assign data after search filter completes in react native typescript for custom object
我有一个自定义对象数组并在其中存储 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 设置新数据时,出现以下错误并且无法在 flatlist 中显示搜索数据。
Type 'userInfo[]' provides no match for the signature '(prevState: userInfo | undefined): userData | undefined'.ts(2345)
有什么建议吗?
我是 typescript 语言的新手。
filter
return 一个数组:
arrayholder?.activities.filter
这就是 userInfo 需要数组类型参数的原因。
const [userInfo, setUserInfo] = useState<userInfo[]>();
我有一个自定义对象数组并在其中存储 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 设置新数据时,出现以下错误并且无法在 flatlist 中显示搜索数据。
Type 'userInfo[]' provides no match for the signature '(prevState: userInfo | undefined): userData | undefined'.ts(2345)
有什么建议吗?
我是 typescript 语言的新手。
filter
return 一个数组:
arrayholder?.activities.filter
这就是 userInfo 需要数组类型参数的原因。
const [userInfo, setUserInfo] = useState<userInfo[]>();