reactjs - 在本机反应中获得太多重新渲染错误
问题描述
我试图显示一个 FlatList,它最初是隐藏的,当用户点击一个 TextInput 时,但我收到一个错误,说有太多的重新渲染,看看代码:
const [state, setState] = useState ({
...
showFlatList: false,
})
return (
<ImageBackground source = {enterInfoBackGroundImage} style = {styles.container}>
<SafeAreaView>
<View style = {styles.backgroundArea}>
<TextInput style = {styles.inputText}
onFocus = {setState({showFlatList: true})}
autoCapitalize='characters'
placeholder = {'MAKE'}
placeholderTextColor = {'#B2B2B2'}
onChangeText = {text => setState({...state, companyName: text })}
value = {state.make}
/>
{state.showFlatList && <FlatList
style = {styles.tableView}
data = {make}
keyExtractor = {(item) => item.id}
renderItem = {({ item }) => (
<TouchableOpacity style = {styles.tableViewItem} onPress = {() => {
console.log(item.make, item.id)
}}>
<Text style = {styles.searchBarText}>{item.make}</Text>
</TouchableOpacity>
)}
/>}
</View>
</SafeAreaView>
</ImageBackground>
);
我只是在戴上时才收到此错误{setState({showFlatList: true})}
,onFocus
但是当我将其放入onPress
TouchableOpacity 内时,它起作用了,感谢任何形式的反馈!:)
解决方案
问题是您如何调用setState
.onFocus
TextInput
它应该看起来更像这样:
<TextInput
onFocus={() => {
setState({showFlatList: true});
}}
// ...
/>
所以你处理你TouchableOpacity
的onPress
.
推荐阅读
- swiftui - GeometryReader 计算视图的总高度
- python - 如何在 Python 中获得哈密顿谐振子的相位图?
- sql - “for json auto”和“for json path”在 SQL Server Management Studio 中出现语法错误
- excel - VBA 循环目录从每个工作簿中删除(按工作表名称)除一个之外的所有工作表
- shell - 期望脚本不适用于多个密码请求
- javascript - HTML/Javascript 文本幻灯片,其中包含无限数量的组件
- java - 在驱动程序代码中创建圆形对象时遇到错误
- php - 当我在终端中运行“php artisan migrate”代码时,我无法在 http://localhost/phpmyadmin/ 上创建表
- playframework - 使用 nginx 作为前端从akka(playframework)获取非法主机头
- android - 问:无法根据类别返回事件列表?