我使用Ionic 7和React 18。我定义了这个类型
interface Card {
...
frontImg: Buffer;
frontImgAltText: string;
...
}
字符串
在我的组件中,如何将IonImg元素的图像设置为来自上述Buffer的图像数据?
const base64Data = card.frontImg.toString("base64");
const dataUri = `data:image/png;base64,${base64Data}`;
<IonImg src={dataUri} alt="My Image" />
型
但是,当我将变量输出到console.log时,尽管我看到了二进制内容,但什么也没有出现。
1条答案
按热度按时间tvmytwxo1#
要在Ionic React应用程序中的IonImg组件中显示Buffer中的图像,您可以将Buffer转换为base64数据URI,并将其用作IonImg组件的src属性。但是,Ionic React不支持将数据URI直接用作src属性。
为了克服这个限制,你可以创建一个自定义组件来处理从Buffer数据渲染图像。下面是一个例子:
字符串
在这个例子中,我们创建了一个CardComponent,它将card对象作为一个prop。在组件内部,我们使用React.useState和React.useEffect将frontImg Buffer转换为base64数据URI,并将其设置为IonImg组件的src值。通过使用React.useEffect和包含card.frontImg的依赖数组,我们确保每当frontImg数据更改时,图像都会重新渲染。
然后,您可以在主组件中使用此CardComponent,如下所示
型