【发布时间】:2020-04-04 19:33:06
【问题描述】:
我有一个列表,其中包含一些在单击时添加到状态的项目,我使用的是原生基础,当我按下它时如何更改列表项的样式,或者将“选定”属性添加到列表项?
代码
const [data, setData] = useState([]);
const _renderItem = ({ item, index }) => {
return (
<ListItem
button={true}
onPress={() => handleItemSelect(item)}
>
<Left>
<Text>{item.Name}</Text>
</Left>
<Right>
<Icon name="add" style={{ paddingHorizontal: 5 }} />
</Right>
</ListItem>
);
};
return(
<Container>
<List>
<FlatList
data={data}
renderItem={_renderItem}
/>
</List>
</Container>
);
我想知道如何添加样式并区分我拥有的不同列表项,如果这不可能,我如何使用本机基础“选定”并将其附加到列表项?
handleItemSelect 将项目 ID 添加到状态,因此我当前管理哪些项目被选中,我如何使用此信息或任何其他方式突出显示所选项目?
编辑: 我想出了如何轻松做到这一点,因为我有选定的项目 ID
<ListItem
selected={selectedItems.some((prevItem) => prevItem._id === item._id)}
style={sameasabove ? style1 : style2}
button={true}
onPress={() => handleItemSelect(item)}
>
</ListItem>
【问题讨论】:
标签: javascript list react-native expo native-base