Javascript 为flatlist的所有项创建单个状态数组。(本地反应)

Javascript 为flatlist的所有项创建单个状态数组。(本地反应),javascript,react-native,Javascript,React Native,我正在开发一个react本机应用程序,其中我出于某种目的使用了FlatList。我有一个通过FlatList显示的项目列表。该平面列表返回我制作的组件,并最终显示项目 const [allAmen , setAllAmen] = useState({}); let arr = []; const test = (uName) => { setAllAmen({...allAmen , "name" : uName }) } arr.push(allAmen); conso

我正在开发一个react本机应用程序,其中我出于某种目的使用了
FlatList
。我有一个通过
FlatList
显示的项目列表。该平面列表返回我制作的组件,并最终显示项目

const [allAmen , setAllAmen] = useState({});
let arr = [];
const test = (uName) => {
         setAllAmen({...allAmen , "name" : uName })
}
arr.push(allAmen);
console.log(arr);

<FlatList 
    data={amens}
    keyExtractor={(amen) => amen.id}
    renderItem={({item}) => {
        <TouchableOpacity
          onPress={() => {
             test(item.name)
          }}
        >
               <Text>{item.name}</Text>
        </TouchableOpacity>
    }}
/>
const[allAmen,setAllAmen]=useState({});
设arr=[];
常量测试=(uName)=>{
塞塔勒曼({…阿拉曼,“名字”:uName})
}
arr.push(阿拉曼);
控制台日志(arr);
阿门}
renderItem={({item})=>{
{
测试(项目名称)
}}
>
{item.name}
}}
/>
当我运行这个并按下列表中的一个项目时,它会在allAmen中设置对象并推入arr。但是如果我按下另一个项目,它会生成一个新数组并给出结果。S0为平面列表的每个项目创建一个新的状态对象和数组,并将结果推入每个项目的不同数组。因此,如果我有以下几点:

平面列表->

糖果棒 白巧克力棒 红丝绒

我先按一下,我得到->
[{“name”:Candy Bar}]
,但如果我按一下白色巧克力,它会给出,
[{“name”:White Chocolate Bar}]
,红色天鹅绒也是如此

我想要的是,如果我先按,我得到->[{“name”:Candy Bar}],然后如果我按第二个,然后再按第三个->
[{“name”:糖果条},{“name”:白巧克力条},{“name”:红丝绒}]

但它正在为每个列表单独运行。有人能帮我做这个吗?我是一个新手,对native和javascript做出反应,运行它时会有很多疑问。试图在StackOverflow和internet上找到它,但找不到任何相关内容

const newValue = {"name" : uName};
setAllAmen(prevArray => [...prevArray, newValue])
请参阅更多解释。

这很有魅力。谢谢你的链接。这一解释使人们很容易理解正在发生的事情。干杯