React – JS | Passing body variable name rather than its content

I think I have a good question. I’m making my own overarching request repo that I can just refer to rather than embedding all requests in each separate JS file.

For requests where I’m passing a body I need to pass two things into stringify

  1. The identifier denoted field
  2. The value denoted content

I don’t seem to be able to replace the identifier field with its actual content, I think it is passing "field" being its name rather than the content of the "field" string.

Calling code:


Request code:

Request.useSendPostWithBody = (endpoint, field, content) => {
    const [ data, setData ]=useState('')

        useEffect(() => {

            fetch(`${window.ipAddress.ip}/${endpoint}`, {
                method: "POST",  
                body: JSON.stringify({ email: content })}) // this works as the required field for this request is email

                // body: JSON.stringify({ field : content })}) // this doesn't and here is where I think the issue lies because not all requests are going to pass "email"

            .then((result)=> { return result.json() })

            .catch(error =>{ 

            .then((data)=>{ setData(data)
            console.log(data) })


>Solution :

you need to use brackets [] to denote that the key name needs to be evaluated, like so:

  // other values,
  body: JSON.stringify({ [field]: content })}),

Leave a Reply