parse Metafield
A function that uses metafield.type to parse the Metafield's value or reference or references (depending on the metafield.type) and places the result in metafield.parsedValue.
Use the type as the returned type of
Anchor to parseMetafield-parametersParameters
- Anchor to metafieldmetafieldmetafieldrequiredrequired
ReturnGenericReturnGeneric
Examples
import {parseMetafield} from '@shopify/hydrogen';
export function DateMetafield({metafield}) {
const parsedMetafield = parseMetafield(metafield);
return <div>Date: {parsedMetafield.parsedValue?.toDateString()}</div>;
}
export function VariantReferenceMetafield({metafield}) {
const parsedMetafield = parseMetafield(metafield);
return <div>Variant title: {parsedMetafield.parsedValue?.title}</div>;
}
export function ListCollectionReferenceMetafield({metafield}) {
const parsedMetafield = parseMetafield(metafield);
return (
<div>
The first collection title: {parsedMetafield.parsedValue?.[0].title}
</div>
);
}
Examples
Example code
JavaScript
import {parseMetafield} from '@shopify/hydrogen'; export function DateMetafield({metafield}) { const parsedMetafield = parseMetafield(metafield); return <div>Date: {parsedMetafield.parsedValue?.toDateString()}</div>; } export function VariantReferenceMetafield({metafield}) { const parsedMetafield = parseMetafield(metafield); return <div>Variant title: {parsedMetafield.parsedValue?.title}</div>; } export function ListCollectionReferenceMetafield({metafield}) { const parsedMetafield = parseMetafield(metafield); return ( <div> The first collection title: {parsedMetafield.parsedValue?.[0].title} </div> ); }TypeScript
import {parseMetafield, type ParsedMetafields} from '@shopify/hydrogen'; import type {Metafield} from '@shopify/hydrogen/storefront-api-types'; export function DateMetafield({metafield}: {metafield: Metafield}) { const parsedMetafield = parseMetafield<ParsedMetafields['date']>(metafield); return <div>Date: {parsedMetafield.parsedValue?.toDateString()}</div>; } export function VariantReferenceMetafield({metafield}: {metafield: Metafield}) { const parsedMetafield = parseMetafield<ParsedMetafields['variant_reference']>(metafield); return <div>Variant title: {parsedMetafield.parsedValue?.title}</div>; } export function ListCollectionReferenceMetafield({ metafield, }: { metafield: Metafield; }) { const parsedMetafield = parseMetafield<ParsedMetafields['list.collection_reference']>(metafield); return ( <div> The first collection title: {parsedMetafield.parsedValue?.[0].title} </div> ); }
Was this page helpful?