![](/img/trans.png)
[英]Change icon color of the selected tab - react-native-router-flux
[英]Change icon on selected tab ionic react
有没有办法更改所选选项卡上的离子图标?
.tsx
import { Redirect, Route } from "react-router-dom";
import {
IonApp,
IonIcon,
IonLabel,
IonRouterOutlet,
IonTabBar,
IonTabButton,
IonTabs,
setupIonicReact,
} from "@ionic/react";
import { IonReactRouter } from "@ionic/react-router";
import {
homeOutline,
notificationsOutline,
personOutline,
searchOutline,
} from "ionicons/icons";
import Tab1 from "./pages/Tab1";
import Tab2 from "./pages/Tab2";
import Tab3 from "./pages/Tab3";
/* Core CSS required for Ionic components to work properly */
import "@ionic/react/css/core.css";
/* Basic CSS for apps built with Ionic */
import "@ionic/react/css/normalize.css";
import "@ionic/react/css/structure.css";
import "@ionic/react/css/typography.css";
/* Optional CSS utils that can be commented out */
import "@ionic/react/css/padding.css";
import "@ionic/react/css/float-elements.css";
import "@ionic/react/css/text-alignment.css";
import "@ionic/react/css/text-transformation.css";
import "@ionic/react/css/flex-utils.css";
import "@ionic/react/css/display.css";
/* Theme variables */
import "./theme/variables.css";
import "./theme/custom.css";
setupIonicReact();
const App: React.FC = () => (
<IonApp>
<IonReactRouter>
<IonTabs>
<IonRouterOutlet>
<Route exact path="/tab1">
<Tab1 />
</Route>
<Route exact path="/tab2">
<Tab2 />
</Route>
<Route path="/tab3">
<Tab3 />
</Route>
<Route exact path="/">
<Redirect to="/tab1" />
</Route>
</IonRouterOutlet>
<IonTabBar slot="bottom" id="dbf8q1Q3hEY9HZnyJesy">
<IonTabButton tab="tab1" href="/tab1">
<IonIcon icon={homeOutline}></IonIcon>
<IonLabel>Home</IonLabel>
</IonTabButton>
<IonTabButton tab="tab2" href="/tab2">
<IonIcon icon={searchOutline}></IonIcon>
<IonLabel>Search</IonLabel>
</IonTabButton>
<IonTabButton tab="tab3" href="/tab3">
<IonIcon icon={notificationsOutline}></IonIcon>
<IonLabel>Notifications</IonLabel>
</IonTabButton>
<IonTabButton tab="tab4" href="/tab4">
<IonIcon icon={personOutline}></IonIcon>
<IonLabel>Profile</IonLabel>
</IonTabButton>
</IonTabBar>
</IonTabs>
</IonReactRouter>
</IonApp>
);
export default App;
在选定的(活动)选项卡上,它应该是: <IonIcon icon={home}></IonIcon>
else <IonIcon icon={homeOutline}></IonIcon>
我只想玩图标。 解决方案,请!
我找到了一个 angular 解决方案: Get selected tab to switch icons Ionic 5
如何在反应中使用ionTabsDidChange
?
这是onIonTabsDidChange
的反应。 你可以这样使用它:
<IonTabs onIonTabsDidChange={() => {...}}
但是如果你只是想在它被选中时更改图标,我自己使用 css 有一个更好的方法。 ionic append tab-selected
class 到选定的选项卡,当您只想更改外观时使用它会更好。 这是一个例子:
<IonTabButton tab="tab1" href="/tab1">
<IonIcon icon={home} className="selected"></IonIcon>
<IonIcon icon={homeOutline} className="unselected"></IonIcon>
<IonLabel>Home</IonLabel>
</IonTabButton>
然后在您定义类的任何地方(例如 variables.css):
.tab-selected .unselected {
display: none;
}
.tab-selected .selected {
display: initial !important;
}
.selected {
display: none;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.