[英]How to restore the data after search react native cloud firestore
So i have a problem that after done searching once name, when start type to search again.所以我有一个问题,在完成搜索一次名称后,当开始键入再次搜索时。
the data won't show again but after goBack() and go to the screen again data show, but only can search once more goBack() 和 go 到屏幕后数据不会再次显示,但只能再次搜索
Can anyone help谁能帮忙
Thank You谢谢你
const nameList = () => {
const [daftar, setDaftar] = useState<any>([]);
const [search, setSearch] = useState<any>('');
const searchName = (input) => {
let data = daftar;
let searchData = data.filter((item) => {
return (
item?.name.toLowerCase().includes(input.toLowerCase()) ||
item?.address?.toLowerCase().includes(input?.toLowerCase())
);
});
setDaftar(searchData);
};
return (
<Div flex={1} bg="#fff">
<Div py={heightPercentageToDP(1)} px={heightPercentageToDP(2)}>
<Input
focusBorderColor={PRIMARY_COLOR}
placeholder="Search..."
onChangeText={(val) => searchName(val)}
// value={search}
/>
</Div>
</Div>
);
};
You should keep the filtered data in a different state.您应该将过滤后的数据保存在不同的 state 中。
Set the same data to both the deftar
and the filteredList
when the page is first opened.首次打开页面时,为
deftar
和filteredList
设置相同的数据。 when you search you use the deftar
datas and the result is set to filteredList
当您搜索时,您使用
deftar
数据并将结果设置为filteredList
In the page use filteredList
在页面中使用
filteredList
const nameList = () => {
const [daftar, setDaftar] = useState<any>([]);
const [search, setSearch] = useState<any>('');
const [filteredList, setFilterList] = useState<any>([]);
const searchName = (input) => {
let data = daftar;
let searchData = data.filter((item) => {
return (
item?.name.toLowerCase().includes(input.toLowerCase()) ||
item?.address?.toLowerCase().includes(input?.toLowerCase())
);
});
setFilterList(searchData);
};
return (
<Div flex={1} bg="#fff">
<Div py={heightPercentageToDP(1)} px={heightPercentageToDP(2)}>
<Input
focusBorderColor={PRIMARY_COLOR}
placeholder="Search..."
onChangeText={(val) => searchName(val)}
// value={search}
/>
</Div>
</Div>
);
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.