Using tel: protocol with dynamic phone numbers in mapped array from Sanity
9 replies
Last updated: May 7, 2021
AI Update
This is a JSX templating syntax issue. You need to use template literals or string concatenation to properly interpolate the phone number variable.
Change this:
<a href="tel:{item.phone}">Call Person</a>To this:
<a href={`tel:${item.phone}`}>Call Person</a>Your complete map should look like:
{array.map((item) => (
<a key={item._id} href={`tel:${item.phone}`}>Call Person</a>
))}The key points:
- Use template literals (backticks) with
${item.phone}to interpolate the variable - The entire
hrefvalue should be wrapped in curly braces{} - Add a
keyprop (usingitem._idor another unique identifier) to avoid React warnings - Use parentheses
()instead of curly braces for implicit return in your arrow function
Since you're pulling data from Sanity via GraphQL, just make sure your phone field is included in your GraphQL query and the data structure matches what you're accessing.
Show original thread9 replies
Sanity – Build the way you think, not the way your CMS thinks
Sanity is the developer-first content operating system that gives you complete control. Schema-as-code, GROQ queries, and real-time APIs mean no more workarounds or waiting for deployments. Free to start, scale as you grow.