javascript - TypeError: undefined is not a function ('...currencyFilter.map...' 附近)
问题描述
我对本机反应并尝试设置具有搜索功能的搜索栏很陌生。我正在尝试将其设置在列表随键入的每个字母而更新的位置。数据显示正常,但当我尝试在搜索栏中输入内容时出现错误。
完整的错误信息
这是有问题的文件
import { StyleSheet, Text, View, Button, StatusBar, ScrollView, TextInput } from "react-native";
import Icon from 'react-native-vector-icons/Ionicons';
import datas from "../components/CurrencyData"
import FavouritesList from "../components/FavouritesList";
const AddToFavourites = () => {
const state = {
datas: datas,
filter: datas
}
const [currencyFilter, setSearch] = useState(state.filter)
const getFlags = () => {
return currencyFilter.map(data => {
return <FavouritesList detail={data} key={data.id}/>
})
}
const searchCurrencies = (searchFor) => {
setSearch({
filterCurrency: datas.filter(i=>
i.name.toLowerCase().includes(searchFor.toLowerCase),
),
});
}
return (
<View style={styles.container}>
<View style= {styles.action}>
<Icon name="search" size={25}/>
<TextInput
style= {{flex: 1}}
placeholder= "Search..."
underlineColorAndroid="transparent"
onChangeText= {text => {searchCurrencies(text)}}
/>
</View>
<ScrollView>
<StatusBar backgroundColor="#1E90FF" barStyle="light-content"/>
{getFlags()}
</ScrollView>
</View>
)
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: "center",
justifyContent: "center",
},
action: {
flexDirection: 'row',
justifyContent: 'center',
alignItems: 'center',
borderWidth: 2,
height: 50,
borderRadius: 30,
paddingLeft: "4%",
paddingRight: "4%",
margin: "3%"
},
})
export default AddToFavourites;```
[1]: https://i.stack.imgur.com/kWkHo.png
解决方案
使用钩子,您不会像 setState 这样传递状态对象,您只需传递新值
改变
setSearch({
filterCurrency: datas.filter(i => i.name.toLowerCase().includes(searchFor.toLowerCase)),
});
至
setSearch( datas.filter(I =>i.name.toLowerCase().includes(searchFor.toLowerCase)));
推荐阅读
- json - 如何将 Gosu 对象转换为 JSON
- python - pycel对象可以保存为Excel工作簿吗
- java - getClassLoader().getResourceAsStream(resource) 在 java 11 中返回 null
- c# - 在 C# 中调用 C++ dll 方法
- git - 无需克隆 repo 即可查看远程提交
- flutter - 如何在 Flutter 中实现可扩展的底部导航栏
- image - 我想知道是否可以保留图片的背景并删除文本
- flutter - 更改选定的选项卡图标颜色
- asp.net - 用于 vs2019 的 vb.net 外部服务器工具
- java - 显示非可读语言的 Android 工作室