【发布时间】:2021-09-19 20:25:47
【问题描述】:
所以我有一个 React Native Flatlist。然后我有一个 useState,当我点击我的平面列表中的一个项目时会触发它。我现在面临的问题是,如果我单击一个项目并且 useState() 触发 每个 项目将重新呈现。这很糟糕,因为它使应用程序异常缓慢。
有没有什么方法可以设置我的状态而不重新渲染 FlatList 但出现另一个视图(因为 useState())??
我的代码如下所示:
import React, {useState} from "react"
import {View, Flatlist, Text} from "react-native"
export default const App = () => {
const [x, setX] = useState(false)
return(
<View>
<FlatList
data = {
["-",
"--",
"---",
"----",
"-----",
"------",
"-------",
"--------",
"---------"]
}
renderItem={({item}) => {(
<View>
<TouchableOpacity onPress={() => setX(true)}>
<Text style={{padding: 10,}}>{item}</Text>
</TouchableOpacity>
</View>
)}}
/>
{x == true ? <Button title="It works" onPress={() => console.log("Everything is working")} /> : <View />}
</View>
)
}
在此示例中,数据列表非常小。如果它变得更大,你真的可以看到不同
【问题讨论】:
标签: javascript reactjs react-native