我正在尝试添加图标到我的反应导航示例,我从reactnavigation.org找到:https://reactnavigation.org/docs/en/tab-based-navigation.html
即使这种实现似乎也无法正常工作,因为Settings
选项卡在未选中时会显示图标的问号。这是一个证明它的小吃:https://snack.expo.io/@react-navigation/stacks-in-tabs-v3
如何更改代码以便问号永远不会出现?
你正在做的一切正确! :)问题实际上是与文档。你在Settings
不在focus
时看到问号的原因是图标ios-options-outline
不存在!这是文档示例:
if (routeName === 'Home') {
iconName = `ios-information-circle${focused ? '' : '-outline'}`;
IconComponent = HomeIconWithBadge;
} else if (routeName === 'Settings') {
iconName = `ios-options${focused ? '' : '-outline'}`;
}
当Settings
在focus
时,iconName
将来自ios-options-outline
的Ionicons
。快速搜索icon directory表明,虽然ios-options
存在,ios-options-outline
没有。
您需要做的就是选择一个存在的图标,或者根本不更改基于focus
的图标,因为tint
无论如何都会发出选定标签的信号。以下代码应按您希望的方式工作。
if (routeName === 'Home') {
iconName = `ios-information-circle${focused ? '' : '-outline'}`;
IconComponent = HomeIconWithBadge;
} else if (routeName === 'Settings') {
iconName = `ios-options`;
}
我已经打开了一个pull request来解决这个问题,所以它不会发生在其他任何人身上!