react-native-popup-menu - 在菜单打开时在 MenuOption 中动态设置文本子项
问题描述
我需要在打开菜单时对 MenuOption 进行条件渲染。
似乎 MenuOptions 中的 MenuOption 是在我的测试打开菜单之前呈现的。
基于时间戳差异,我需要更改图标和样式。
我注意到菜单打开时会触发,我编写了一个函数来更新全局变量,但是全局变量似乎是在构建菜单时设置的,而不是在打开选项时设置的。
我正在尝试的简化版本。注意style
每个<Text>
元素中的条件canSplit
let canSplit = false;
const canSplitEntry = () => {
canSplit = true;
};
return (
<Menu onOpen={() => canSplitEntry()}>
<MenuTrigger style={styles.menuTrigger}>
<Icon
name="more-vert"
color={theme.text.color}
size={20}
/>
</MenuTrigger>
<MenuOptions style={theme.popupMenu}>
<MenuOption
style={styles.menuOption}
onSelect={() => canSplit ? setModal('splitEntry', logTimestamp) : {}}
>
<SplitIcon color={theme.text.color} size={15} />
<Text style={[theme.text, (canSplit ? theme.opacityStrong : theme.opacityMid), { paddingLeft: 10 }]}>
Split
</Text>
</MenuOption>
<MenuOption
style={styles.menuOption}
onSelect={() => canMerge ? setModal('mergeEntry', logTimestamp) : {}}
>
<MergeIcon color={theme.text.color} size={15} />
<Text style={[theme.text, !canMerge && theme.opacityStrong, { paddingLeft: 10 }]}>
Merge
</Text>
</MenuOption>
</MenuOptions>
</Menu>
)
我希望当 onOpen 被触发时,全局变量会被更新,并且 MenuOption 会响应更改而不是预渲染并且永远不会再更改
解决方案
推荐阅读
- reactjs - 如何将地理位置传递给传单?
- php - 如何在表格中自动显示计数数据累积和残差数据?
- python - 为什么 python 2d 列表彼此共享它们的元素?
- ros - Rosbag 记录不记录第一条消息
- python - 特征归一化后识别目标对象的最佳算法是什么?
- c - 如何通过管道发送不同数量的数据并测量它们之间的执行时间?
- android-jetpack-compose - jetpack compose 中的多维状态
- jupyter - 在 Wix 网站上嵌入交互式 Jupyter Notebook
- python - 在 Python 中创建可按文件名引用的虚拟文件
- android - 在 Firebase 中保存房间数据库文件