jamesctucker
jamesctucker

Reputation: 43

How to remove <br> tags from string in GraphQL query results

I'm working on a React application that utilizes Apollo and GraphQl to query an external API. My issue is that the data contains strings that have
tags in them. I'd like to remove the
tags.

The string looks like:

Additionally, Igor works as a driver for a transport company.<br /><br />The spring agricultural works on the land started already and he now supports more expenses. 

My response data looks like 'data.loans.lend.values', and so I've tried using the str.replace() method on my data. However, it didn't work. I've probably spent about five hours combing through the web to find a solution, but haven't been able to.

This is what my Apollo query component looks like.

<Query query={kivaLoans} variables={{ country: country, sortBy: sort, limit: limitResults }}>
                {({ data, loading, error }) => {
                    if (loading) return <div><p>Loading...</p></div>;
                    if (error) return <p>ERROR</p>;

                    return (

And this is my GraphQL query.

gql`
    query ($country: [String], $sortBy: LoanSearchSortByEnum, $limit: Int) {
  lend {
    loans(filters: {status: fundraising, country: $country}, sortBy: $sortBy, limit: $limit) {
      values {
        id
        plannedExpirationDate
        image {
          url(customSize: "s900")
        }
        name
        loanFundraisingInfo {
          fundedAmount
        }
        loanAmount
        description
        loanAmount
      }
    }
  }
}`

Has anyone else encountered this issue before?

Upvotes: 2

Views: 1183

Answers (1)

Dude
Dude

Reputation: 931

if you are receiving data back in a format you don't like, this means the graphql server, a database it leverages, or an api it leverages, is returning data to the graphql server in a format that isn't useful for you. The other possibility is that your server itself is formatting your data in an annoying way. So here are your options:

  1. change your server / data sources as appropriate
  2. do a global replace on the string returned: str.replace(/<b>/g, '').replace(/<\/b>/g, ''). Double check my escape characters, I may have that backwards.

in a string replace, /[what you want replaced]/g = a regex for global detection, across the entire string

Upvotes: 3

Related Questions