在 react-native 中映射时如何为某些组件提供 hide/show 功能
How to give hide/show feature to certain components when it is mapped in react-native
我从 api 那里得到了一定的回应:
[
{
"name": "cds",
"user_id": "1b625caf-9bea-4846-bdec-0cbcd76149cf"
},
{
"name": "asd",
"user_id": "1b625caf-9bea-4846-bdec-0cbcd76149cf"
},
{
"name": "qee",
"user_id": "1b625caf-9bea-4846-bdec-0cbcd76149cf"
},
{
"name": "cbb",
"user_id": "1b625caf-9bea-4846-bdec-0cbcd76149cf"
},
{
"name": "rty",
"user_id": "1b625caf-9bea-4846-bdec-0cbcd76149cf"
},
]
我正在使用一个组件来显示这个 api:
<TouchableOpacity>
<Text>Toggle</Text>
</TouchableOpacity>
{upcoming.map((item: any, key: any) => (
<>
<UpComingComponent
name={item.name}
/>
</>
))}
我能够成功映射组件,但我需要有一个功能,最初用户只能看到两个映射的 UpComingComponent
,当用户点击 toggle
时,用户应该看到所有映射的 UpComingComponent
,当他再次点击 toggle
时,用户再次显示只看到两个 UpComingComponent
.
我知道如何 hide/show 一个组件,但我的问题是我最初显示了两个组件,然后 toggle
,显示所有组件,然后再次 toggle
,显示只有两个组件。
您可以根据索引筛选前两项的列表。
upcoming
.filter((item, index) => (!showAll ? index < 2 : true))
.map((item) => (
<>
<UpComingComponent name={item.name} />
</>
));
您可以使用 Array.slice
并将其与 toggle
的状态变量组合:
const [toggle, setToggle] = useState(false)
<TouchableOpacity onPress={() => setToggle(t => !t)}>
<Text>Toggle</Text>
</TouchableOpacity>
{toggle ? upcoming.map((item: any, key: any) => (
<>
<UpComingComponent
name={item.name}
/>
</>
)) : upcoming.slice(0,2).map() => ...}
我从 api 那里得到了一定的回应:
[
{
"name": "cds",
"user_id": "1b625caf-9bea-4846-bdec-0cbcd76149cf"
},
{
"name": "asd",
"user_id": "1b625caf-9bea-4846-bdec-0cbcd76149cf"
},
{
"name": "qee",
"user_id": "1b625caf-9bea-4846-bdec-0cbcd76149cf"
},
{
"name": "cbb",
"user_id": "1b625caf-9bea-4846-bdec-0cbcd76149cf"
},
{
"name": "rty",
"user_id": "1b625caf-9bea-4846-bdec-0cbcd76149cf"
},
]
我正在使用一个组件来显示这个 api:
<TouchableOpacity>
<Text>Toggle</Text>
</TouchableOpacity>
{upcoming.map((item: any, key: any) => (
<>
<UpComingComponent
name={item.name}
/>
</>
))}
我能够成功映射组件,但我需要有一个功能,最初用户只能看到两个映射的 UpComingComponent
,当用户点击 toggle
时,用户应该看到所有映射的 UpComingComponent
,当他再次点击 toggle
时,用户再次显示只看到两个 UpComingComponent
.
我知道如何 hide/show 一个组件,但我的问题是我最初显示了两个组件,然后 toggle
,显示所有组件,然后再次 toggle
,显示只有两个组件。
您可以根据索引筛选前两项的列表。
upcoming
.filter((item, index) => (!showAll ? index < 2 : true))
.map((item) => (
<>
<UpComingComponent name={item.name} />
</>
));
您可以使用 Array.slice
并将其与 toggle
的状态变量组合:
const [toggle, setToggle] = useState(false)
<TouchableOpacity onPress={() => setToggle(t => !t)}>
<Text>Toggle</Text>
</TouchableOpacity>
{toggle ? upcoming.map((item: any, key: any) => (
<>
<UpComingComponent
name={item.name}
/>
</>
)) : upcoming.slice(0,2).map() => ...}