How to pass query parameter to api using map method and concatenate every json response to setState in react?





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







1















In below code i am calling api by passing query parameter by map method and i want to concatenate the resulted json of each query and update the state.



But here i am facing problem that setState is updated with the any one of returned json.



import React from 'react';

const api_key = "key";

class card extends React.Component {
state = {
articles: ,
parameter: ['a', 'b', 'c', 'd', 'e']
};

componentDidMount = async () => {
this.state.newsPaper.map(async (querypara) => {
const requstone = await fetch(`https:someapisources=${querypara}&apiKey=${api_key}`);
const dataone = await requstone.json();

this.setState({
articles: dataone.articles
});
});
}

render() {
return (
<div>
<div>
{this.state.articles.map((article, index) => {
return (
<div key={index}>
<div>
<img src={article.urlToImage} alt="Avatar" />
<div>
<h4><b>{article.title}</b></h4>
<p>
{article.description}
</p>
<section>
<div>
<span>Source:</span>
<span>{article.source.name}</span>
</div>
</section>
</div>
</div>
</div>
)
})}
</div>
</div>
);
}
}

export default card;


I want to add each response json and render it by setting the state how can i do that



Below is the sample json response.



{
"status": "ok",
"totalResults": 8,
"articles": [{
"source": {
"id": "recode",
"name": "Recode"
},
"author": "Recode Staff",
"title": "title",
"description": "Something",
"url": "url",
"urlToImage": "image url.jpg",
"publishedAt": "2018-11-26T13:23:06Z",
"content": "some content"
},
{
"source": {
"id": "recode",
"name": "Recode"
},
"author": "Recode Staff",
"title": "title",
"description": "Something",
"url": "url",
"urlToImage": "image url.jpg",
"publishedAt": "2018-11-26T13:23:06Z",
"content": "some content"
}
]
}









share|improve this question































    1















    In below code i am calling api by passing query parameter by map method and i want to concatenate the resulted json of each query and update the state.



    But here i am facing problem that setState is updated with the any one of returned json.



    import React from 'react';

    const api_key = "key";

    class card extends React.Component {
    state = {
    articles: ,
    parameter: ['a', 'b', 'c', 'd', 'e']
    };

    componentDidMount = async () => {
    this.state.newsPaper.map(async (querypara) => {
    const requstone = await fetch(`https:someapisources=${querypara}&apiKey=${api_key}`);
    const dataone = await requstone.json();

    this.setState({
    articles: dataone.articles
    });
    });
    }

    render() {
    return (
    <div>
    <div>
    {this.state.articles.map((article, index) => {
    return (
    <div key={index}>
    <div>
    <img src={article.urlToImage} alt="Avatar" />
    <div>
    <h4><b>{article.title}</b></h4>
    <p>
    {article.description}
    </p>
    <section>
    <div>
    <span>Source:</span>
    <span>{article.source.name}</span>
    </div>
    </section>
    </div>
    </div>
    </div>
    )
    })}
    </div>
    </div>
    );
    }
    }

    export default card;


    I want to add each response json and render it by setting the state how can i do that



    Below is the sample json response.



    {
    "status": "ok",
    "totalResults": 8,
    "articles": [{
    "source": {
    "id": "recode",
    "name": "Recode"
    },
    "author": "Recode Staff",
    "title": "title",
    "description": "Something",
    "url": "url",
    "urlToImage": "image url.jpg",
    "publishedAt": "2018-11-26T13:23:06Z",
    "content": "some content"
    },
    {
    "source": {
    "id": "recode",
    "name": "Recode"
    },
    "author": "Recode Staff",
    "title": "title",
    "description": "Something",
    "url": "url",
    "urlToImage": "image url.jpg",
    "publishedAt": "2018-11-26T13:23:06Z",
    "content": "some content"
    }
    ]
    }









    share|improve this question



























      1












      1








      1








      In below code i am calling api by passing query parameter by map method and i want to concatenate the resulted json of each query and update the state.



      But here i am facing problem that setState is updated with the any one of returned json.



      import React from 'react';

      const api_key = "key";

      class card extends React.Component {
      state = {
      articles: ,
      parameter: ['a', 'b', 'c', 'd', 'e']
      };

      componentDidMount = async () => {
      this.state.newsPaper.map(async (querypara) => {
      const requstone = await fetch(`https:someapisources=${querypara}&apiKey=${api_key}`);
      const dataone = await requstone.json();

      this.setState({
      articles: dataone.articles
      });
      });
      }

      render() {
      return (
      <div>
      <div>
      {this.state.articles.map((article, index) => {
      return (
      <div key={index}>
      <div>
      <img src={article.urlToImage} alt="Avatar" />
      <div>
      <h4><b>{article.title}</b></h4>
      <p>
      {article.description}
      </p>
      <section>
      <div>
      <span>Source:</span>
      <span>{article.source.name}</span>
      </div>
      </section>
      </div>
      </div>
      </div>
      )
      })}
      </div>
      </div>
      );
      }
      }

      export default card;


      I want to add each response json and render it by setting the state how can i do that



      Below is the sample json response.



      {
      "status": "ok",
      "totalResults": 8,
      "articles": [{
      "source": {
      "id": "recode",
      "name": "Recode"
      },
      "author": "Recode Staff",
      "title": "title",
      "description": "Something",
      "url": "url",
      "urlToImage": "image url.jpg",
      "publishedAt": "2018-11-26T13:23:06Z",
      "content": "some content"
      },
      {
      "source": {
      "id": "recode",
      "name": "Recode"
      },
      "author": "Recode Staff",
      "title": "title",
      "description": "Something",
      "url": "url",
      "urlToImage": "image url.jpg",
      "publishedAt": "2018-11-26T13:23:06Z",
      "content": "some content"
      }
      ]
      }









      share|improve this question
















      In below code i am calling api by passing query parameter by map method and i want to concatenate the resulted json of each query and update the state.



      But here i am facing problem that setState is updated with the any one of returned json.



      import React from 'react';

      const api_key = "key";

      class card extends React.Component {
      state = {
      articles: ,
      parameter: ['a', 'b', 'c', 'd', 'e']
      };

      componentDidMount = async () => {
      this.state.newsPaper.map(async (querypara) => {
      const requstone = await fetch(`https:someapisources=${querypara}&apiKey=${api_key}`);
      const dataone = await requstone.json();

      this.setState({
      articles: dataone.articles
      });
      });
      }

      render() {
      return (
      <div>
      <div>
      {this.state.articles.map((article, index) => {
      return (
      <div key={index}>
      <div>
      <img src={article.urlToImage} alt="Avatar" />
      <div>
      <h4><b>{article.title}</b></h4>
      <p>
      {article.description}
      </p>
      <section>
      <div>
      <span>Source:</span>
      <span>{article.source.name}</span>
      </div>
      </section>
      </div>
      </div>
      </div>
      )
      })}
      </div>
      </div>
      );
      }
      }

      export default card;


      I want to add each response json and render it by setting the state how can i do that



      Below is the sample json response.



      {
      "status": "ok",
      "totalResults": 8,
      "articles": [{
      "source": {
      "id": "recode",
      "name": "Recode"
      },
      "author": "Recode Staff",
      "title": "title",
      "description": "Something",
      "url": "url",
      "urlToImage": "image url.jpg",
      "publishedAt": "2018-11-26T13:23:06Z",
      "content": "some content"
      },
      {
      "source": {
      "id": "recode",
      "name": "Recode"
      },
      "author": "Recode Staff",
      "title": "title",
      "description": "Something",
      "url": "url",
      "urlToImage": "image url.jpg",
      "publishedAt": "2018-11-26T13:23:06Z",
      "content": "some content"
      }
      ]
      }






      javascript reactjs






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 26 '18 at 20:29









      user615274

      1,62211423




      1,62211423










      asked Nov 26 '18 at 19:15









      Tirumaleshwar KeregaddeTirumaleshwar Keregadde

      187




      187
























          1 Answer
          1






          active

          oldest

          votes


















          1














          If I understand your question correctly, then the only adjustment needed here is to update your setState() logic so that you append articles from your response to the articles array in your state:



          this.state.newsPaper.map(async (querypara) => {

          const requstone = await fetch(`https:someapisources=${querypara}&apiKey=${api_key}`);
          const dataone = await requstone.json();

          // Concatenate articles from response (dataone) to array in state
          this.setState({
          articles: this.state.articles.concat(dataone.articles)
          });
          }





          share|improve this answer
























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53487623%2fhow-to-pass-query-parameter-to-api-using-map-method-and-concatenate-every-json-r%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            If I understand your question correctly, then the only adjustment needed here is to update your setState() logic so that you append articles from your response to the articles array in your state:



            this.state.newsPaper.map(async (querypara) => {

            const requstone = await fetch(`https:someapisources=${querypara}&apiKey=${api_key}`);
            const dataone = await requstone.json();

            // Concatenate articles from response (dataone) to array in state
            this.setState({
            articles: this.state.articles.concat(dataone.articles)
            });
            }





            share|improve this answer




























              1














              If I understand your question correctly, then the only adjustment needed here is to update your setState() logic so that you append articles from your response to the articles array in your state:



              this.state.newsPaper.map(async (querypara) => {

              const requstone = await fetch(`https:someapisources=${querypara}&apiKey=${api_key}`);
              const dataone = await requstone.json();

              // Concatenate articles from response (dataone) to array in state
              this.setState({
              articles: this.state.articles.concat(dataone.articles)
              });
              }





              share|improve this answer


























                1












                1








                1







                If I understand your question correctly, then the only adjustment needed here is to update your setState() logic so that you append articles from your response to the articles array in your state:



                this.state.newsPaper.map(async (querypara) => {

                const requstone = await fetch(`https:someapisources=${querypara}&apiKey=${api_key}`);
                const dataone = await requstone.json();

                // Concatenate articles from response (dataone) to array in state
                this.setState({
                articles: this.state.articles.concat(dataone.articles)
                });
                }





                share|improve this answer













                If I understand your question correctly, then the only adjustment needed here is to update your setState() logic so that you append articles from your response to the articles array in your state:



                this.state.newsPaper.map(async (querypara) => {

                const requstone = await fetch(`https:someapisources=${querypara}&apiKey=${api_key}`);
                const dataone = await requstone.json();

                // Concatenate articles from response (dataone) to array in state
                this.setState({
                articles: this.state.articles.concat(dataone.articles)
                });
                }






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 26 '18 at 19:21









                Dacre DennyDacre Denny

                14.6k41233




                14.6k41233
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53487623%2fhow-to-pass-query-parameter-to-api-using-map-method-and-concatenate-every-json-r%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    To store a contact into the json file from server.js file using a class in NodeJS

                    Redirect URL with Chrome Remote Debugging Android Devices

                    Dieringhausen