我对 React 和 TypeScript 很陌生,我遇到了这个问题:
在我的 UI 中,我使用了几个装饰图形,如下所示:
import Kitten from './img/Kitten.png';
<img className="Image" src={Kitten} />
现在,我有一个暗模式切换。当它触发时,我想用适当的暗模式版本替换所有图像。我在想这样的事情:
import Kitten from './img/Kitten.png';
import DarkKitten from './img/DarkKitten.png';
//gets called when dark mode is toggled on or off
const darkModeToggleFunc = () => {
document.querySelectorAll('.Image').forEach(element => {
if(element.src.includes("Dark")) {
element.src = element.src.replace("Dark", "");
} else{
element.src = "Dark" + element.src;
}
});
}
<img className="Image" src={Kitten} />
现在,在 React 中我有两个问题: .src-attribute 是未知的,因为element
它不一定是图像,第二个问题是:我没有将 URI 分配为 src,而是从导入中分配变量。所以实际上没有我可以更改的字符串......如果我被正确告知,React 使用 Base64 来处理以这种方式指定的图像。
我怎样才能在 React 中实现我的目标?
编辑:App.tsx
//bunch of imports
const App: React.FC = () => {
return (
<IonApp>
<IonReactRouter>
<IonSplitPane contentId="main">
<Menu />
<IonRouterOutlet id="main">
<Route path="/page/:name" component={Page} exact />
<Redirect from="/" to="/page/Production" exact />
</IonRouterOutlet>
</IonSplitPane>
</IonReactRouter>
</IonApp>
);
};
export default App;