Using `relationship` field for `RowLabel`

default discord avatar
slavanossar
3 months ago
3

I have an

array

field that lets the user select an item from a collection with a

relationship

field. I'd like to use the

title

field of that item for the

RowLabel

, but the

relationship

field returns the item

id

. I've seen that there's a Local API that can be used to asynchronously retrieve data (e.g. with

findById

), but

RowLabel

doesn't accept

Promise

as a return value.



Is there an easy way to do this?



Sorry just found this question, seems to answer my question

https://discord.com/channels/967097582721572934/1097588914732150865/1097608591793455164


For anyone else who comes across this, a solution that uses

fetch

instead of

axios

admin: {
  components: {
    RowLabel: ({ data, index = 0 }) => {
      const [label, setLabel] = useState(`Feature ${String(index).padStart(2, '0')}`)
      
      useEffect(() => {
        fetch(
          `${process.env.PAYLOAD_PUBLIC_SITE_URL}${process.env.PAYLOAD_PUBLIC_API_ROUTE}/features/${data.feature}`
        ).then(async (res) => {
          setLabel((await res.json()).title)
        })
      }, [data.feature])

      return label
    },
  },
},
  • default discord avatar
    jm.sv
    3 months ago

    just saved me, thanks. This would be a great add to the

    rowLabel

    docs. Or even better adding a

    depth

    field parameter somewhere in

    admin

    to do this automatically

Open the post
Continue the discussion in Discord
Like what we're doing?
Star us on GitHub!

Star

Connect with the Payload Community on Discord

Discord

online

Can't find what you're looking for?

Get help straight from the Payload team with an Enterprise License.