在 React 中将 Blob 转换为 Cell 内的图像
Convert Blob to image inside Cell in React
可以像这样访问值:myObj.value
它是 blob:http://localhost:3000/304dbb9b-6465-4dc8-8b2c-5a25fae7e452
单元格组件:
export default class Cell extends React.PureComponent {
render() {
const { label, value } = this.props;
return (
<td>
{label && (
<div>
<span className="cell-label">{label}</span>
<br />
</div>
)}<span>{value}</span>
)}
</td>
);
}
}
如果我像下面的例子那样做,它会显示字符串值,我想显示实际图像。这可能吗?
<tr>
{myObj.map(item => (
<Cell
key={myObj.indexOf(item)}
label={item.label}
value={item.value} //I guess something here must be changed
/>
))}
</tr>
尝试将 blob 转换为 dataUrl:
URL.createObjectURL(blob)
来源:https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
然后您可以将其作为图像加载:
<img src={URL.createObjectURL(dataUrl)} />
或者在你的代码中是这样的:
<tr>
{myObj.map(item => (
<Cell
key={myObj.indexOf(item)}
label={item.label}
value={URL.createObjectURL(item.value)}
/>
))}
</tr>
我希望您能将其转化为您需要的内容。您可以在呈现 <Cell />
或 Cell
的组件内部转换 blob。放在Cell里面听起来很合适,这样其他组件就不用关心blob到dataUrl逻辑的实现细节了。
如果你把它放在Cell
里面,那么你需要这样调用它:
// URL.createObjectURL(this.props.blob)
export default class ImageCell extends React.PureComponent {
render() {
const { label, blob } = this.props;
return (
<td>
{label && (
<div>
<span className="cell-label">{label}</span>
<br />
</div>
)}
<span>
<img src={URL.createObjectURL(blob)}>
</span>
)}
</td>
);
}
}
...
<tr>
{myObj.map(item => (
<ImageCell
key={myObj.indexOf(item)}
label={item.label}
blob={item.value}
/>
))}
</tr>
可以像这样访问值:myObj.value
它是 blob:http://localhost:3000/304dbb9b-6465-4dc8-8b2c-5a25fae7e452
单元格组件:
export default class Cell extends React.PureComponent {
render() {
const { label, value } = this.props;
return (
<td>
{label && (
<div>
<span className="cell-label">{label}</span>
<br />
</div>
)}<span>{value}</span>
)}
</td>
);
}
}
如果我像下面的例子那样做,它会显示字符串值,我想显示实际图像。这可能吗?
<tr>
{myObj.map(item => (
<Cell
key={myObj.indexOf(item)}
label={item.label}
value={item.value} //I guess something here must be changed
/>
))}
</tr>
尝试将 blob 转换为 dataUrl:
URL.createObjectURL(blob)
来源:https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
然后您可以将其作为图像加载:
<img src={URL.createObjectURL(dataUrl)} />
或者在你的代码中是这样的:
<tr>
{myObj.map(item => (
<Cell
key={myObj.indexOf(item)}
label={item.label}
value={URL.createObjectURL(item.value)}
/>
))}
</tr>
我希望您能将其转化为您需要的内容。您可以在呈现 <Cell />
或 Cell
的组件内部转换 blob。放在Cell里面听起来很合适,这样其他组件就不用关心blob到dataUrl逻辑的实现细节了。
如果你把它放在Cell
里面,那么你需要这样调用它:
// URL.createObjectURL(this.props.blob)
export default class ImageCell extends React.PureComponent {
render() {
const { label, blob } = this.props;
return (
<td>
{label && (
<div>
<span className="cell-label">{label}</span>
<br />
</div>
)}
<span>
<img src={URL.createObjectURL(blob)}>
</span>
)}
</td>
);
}
}
...
<tr>
{myObj.map(item => (
<ImageCell
key={myObj.indexOf(item)}
label={item.label}
blob={item.value}
/>
))}
</tr>