当前位置: 首页 > 知识库问答 >
问题:

为FlatList的所有项创建单个状态数组。(React Native)

束志业
2023-03-14

我正在开发一个react原生应用程序,在那里我使用FlatList来实现某种目的。我有一个通过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>
    }}
/>

当我运行这个并按下列表中的一个项目时,它将对象设置为allAmen,并将其推入arr。但是如果我按下另一项,它会生成一个新的数组并给出结果。S0对于flatlist的每个项,将创建一个新的状态对象和数组,并为每个项推入一个不同的数组的结果。因此,如果我有以下内容:

Flatlist->

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

我想要的是,如果我按第一个键,我得到->[{“name”:Candy Bar}],然后如果我按第二个键,在第三个键之后得到->[{“name”:Candy Bar},{“name”:White Chocolate Bar},{“name”:Red Velvet}]

但它是为每个列表单独运行的。有人能帮我做这件事吗?我对反应原生和javascript相当陌生,运行它时有很多疑问。试图在StackOverflow和internet上找到它,但没有找到任何相关的东西。

共有1个答案

唐麒
2023-03-14
const newValue = {"name" : uName};
setAllAmen(prevArray => [...prevArray, newValue])

查看更多解释。https://stackoverflow.com/a/58556049/905494 https://stackoverflow.com/a/54677026/905494

 类似资料:
  • 问题内容: 我有2张表: 命令: 和Order_details: 我需要做的是选择所有具有多个Order_detail的订单,并且订单状态必须为“ OK”,并且每个order_detail的状态都 必须 为(S1,S2) 我做了这样的事情: 但这将返回所有具有多个Order_details满足条件的订单。 我确定这部分很好: 但是我必须检查以上订单的每个Order_detail是否都具有状态IN(

  • 在我的React JS项目中,我正在处理。我已经通过了使用进行私有路由和身份验证的示例。 https://reacttraining.com/react-router/web/example/auth-workflow 根据这个留档,他们创建了一个作为无状态组件。 但我的要求是将其转换为有状态的React组件,因为我想将我的组件连接到redux存储。 这是我的代码。 无状态组件 我将这个组件转换成

  • 问题内容: 我有一个称为状态的对象数组。 说我有功能 这里的问题是,每次调用时,整个数组都会更新,因此整个DOM都将重新呈现。在我的情况下,这导致浏览器冻结,因为我几乎每秒都要调用此函数,并且有很多对象。但是,在每次通话中,实际上仅更新其中一个或两个设备。 我有什么选择? 编辑 在我的确切情况下,a 是一个定义如下的对象: 因此,数组中的每个项目都是this的特定瞬间,即我所拥有的某个地方: 我更

  • 我有一个包含加密符号列表的数组,例如(因为有一千多个) 我需要创建一个多维数组,包含所有可能的组合,例如。 生成的数组不应该有重复的排列,如, 我真的不知道从哪里开始。我能得到的最接近的方法是用一些对构建一个数组(然后,不是写出来的,目标是逐渐搜索并添加缺少的组合): 任何帮助都将不胜感激。我的项目的其余部分是用Python 3.8编写的。

  • 我有一个多项目gradle构建,当我运行“gradle war”时,它在每个子项目中构建一个war文件。 我现在希望在根项目中创建一个dist或tar任务,将所有war文件添加到tar中。 如何运行依赖于子项目的特定任务的任务?