Load more data on scrollScroll to bottom of div?How to Check if element is visible after scrolling?JavaScript that executes after page loadScroll to the top of the page using JavaScript/jQuery?Convert form data to JavaScript object with jQueryCheck if a user has scrolled to the bottomHow to get the data-id attribute?jQuery scroll to elementHow does data binding work in AngularJS?jQuery load more data on scroll

Wrapping Cryptocurrencies for interoperability sake

What is this type of notehead called?

Two-sided logarithm inequality

How will losing mobility of one hand affect my career as a programmer?

Why did the EU agree to delay the Brexit deadline?

MAXDOP Settings for SQL Server 2014

Can the Supreme Court overturn an impeachment?

Does the Mind Blank spell prevent the target from being frightened?

How must one send away the mother bird?

Global amount of publications over time

Could solar power be utilized and substitute coal in the 19th Century

Can I use my Chinese passport to enter China after I acquired another citizenship?

Is possible to search in vim history?

Does having a TSA Pre-Check member in your flight reservation increase the chances that everyone gets Pre-Check?

Reply 'no position' while the job posting is still there

Longest common substring in linear time

How do I repair my stair bannister?

How do I implement a file system driver driver in Linux?

On a tidally locked planet, would time be quantized?

Why is Arduino resetting while driving motors?

How do I extrude a face to a single vertex

What's the difference between 違法 and 不法?

Some numbers are more equivalent than others

Drawing a topological "handle" with Tikz



Load more data on scroll


Scroll to bottom of div?How to Check if element is visible after scrolling?JavaScript that executes after page loadScroll to the top of the page using JavaScript/jQuery?Convert form data to JavaScript object with jQueryCheck if a user has scrolled to the bottomHow to get the data-id attribute?jQuery scroll to elementHow does data binding work in AngularJS?jQuery load more data on scroll













1















I have a page with a search input, once the user clicks on submit the results come up.



There can be a lot of results (usually not but there can be thousands of results) and I don't want to load them all at once, how can I get a few dozens and fetch more results from he API as the user scrolls down, what's the correct way to do that? I was thinking that Lodash throttle can fit but I couldn't find a good example for it.



This is my react component:



const getContacts = async (searchString) => 
const data: contactsInfo = await axios.get(`api/Contats/Search?contactNum=$searchString`);
return contactsInfo;
;
export default class Home extends React.Component
state =
contactsInfo: [],
searchString: '',
;

handleSubmit = async () =>
const searchString = this.state;
const contactsInfo = await getContacts(searchString);
this.setState( contactsInfo );
;

onInputChange = e =>
this.setState(
searchString: e.target.value,
);
;

onMouseMove = e =>

;

render()
const contactsInfo, searchString, = this.state;
return (
<div css=bodyWrap onMouseMove=e => this.onMouseMove(e)>
<Header appName="VERIFY" user=user />
user.viewApp && (
<div css=innerWrap>
<SearchInput
searchIcon
value=searchString
onChange=e => this.onInputChange(e)
handleSubmit=this.handleSubmit
/>
contactsInfo.map(info => (
<SearchResultPanel
info=info
isAdmin=user.isAdmin
key=info.id
/>
))
</div>
)
<Footer />
</div>

);











share|improve this question




























    1















    I have a page with a search input, once the user clicks on submit the results come up.



    There can be a lot of results (usually not but there can be thousands of results) and I don't want to load them all at once, how can I get a few dozens and fetch more results from he API as the user scrolls down, what's the correct way to do that? I was thinking that Lodash throttle can fit but I couldn't find a good example for it.



    This is my react component:



    const getContacts = async (searchString) => 
    const data: contactsInfo = await axios.get(`api/Contats/Search?contactNum=$searchString`);
    return contactsInfo;
    ;
    export default class Home extends React.Component
    state =
    contactsInfo: [],
    searchString: '',
    ;

    handleSubmit = async () =>
    const searchString = this.state;
    const contactsInfo = await getContacts(searchString);
    this.setState( contactsInfo );
    ;

    onInputChange = e =>
    this.setState(
    searchString: e.target.value,
    );
    ;

    onMouseMove = e =>

    ;

    render()
    const contactsInfo, searchString, = this.state;
    return (
    <div css=bodyWrap onMouseMove=e => this.onMouseMove(e)>
    <Header appName="VERIFY" user=user />
    user.viewApp && (
    <div css=innerWrap>
    <SearchInput
    searchIcon
    value=searchString
    onChange=e => this.onInputChange(e)
    handleSubmit=this.handleSubmit
    />
    contactsInfo.map(info => (
    <SearchResultPanel
    info=info
    isAdmin=user.isAdmin
    key=info.id
    />
    ))
    </div>
    )
    <Footer />
    </div>

    );











    share|improve this question


























      1












      1








      1








      I have a page with a search input, once the user clicks on submit the results come up.



      There can be a lot of results (usually not but there can be thousands of results) and I don't want to load them all at once, how can I get a few dozens and fetch more results from he API as the user scrolls down, what's the correct way to do that? I was thinking that Lodash throttle can fit but I couldn't find a good example for it.



      This is my react component:



      const getContacts = async (searchString) => 
      const data: contactsInfo = await axios.get(`api/Contats/Search?contactNum=$searchString`);
      return contactsInfo;
      ;
      export default class Home extends React.Component
      state =
      contactsInfo: [],
      searchString: '',
      ;

      handleSubmit = async () =>
      const searchString = this.state;
      const contactsInfo = await getContacts(searchString);
      this.setState( contactsInfo );
      ;

      onInputChange = e =>
      this.setState(
      searchString: e.target.value,
      );
      ;

      onMouseMove = e =>

      ;

      render()
      const contactsInfo, searchString, = this.state;
      return (
      <div css=bodyWrap onMouseMove=e => this.onMouseMove(e)>
      <Header appName="VERIFY" user=user />
      user.viewApp && (
      <div css=innerWrap>
      <SearchInput
      searchIcon
      value=searchString
      onChange=e => this.onInputChange(e)
      handleSubmit=this.handleSubmit
      />
      contactsInfo.map(info => (
      <SearchResultPanel
      info=info
      isAdmin=user.isAdmin
      key=info.id
      />
      ))
      </div>
      )
      <Footer />
      </div>

      );











      share|improve this question
















      I have a page with a search input, once the user clicks on submit the results come up.



      There can be a lot of results (usually not but there can be thousands of results) and I don't want to load them all at once, how can I get a few dozens and fetch more results from he API as the user scrolls down, what's the correct way to do that? I was thinking that Lodash throttle can fit but I couldn't find a good example for it.



      This is my react component:



      const getContacts = async (searchString) => 
      const data: contactsInfo = await axios.get(`api/Contats/Search?contactNum=$searchString`);
      return contactsInfo;
      ;
      export default class Home extends React.Component
      state =
      contactsInfo: [],
      searchString: '',
      ;

      handleSubmit = async () =>
      const searchString = this.state;
      const contactsInfo = await getContacts(searchString);
      this.setState( contactsInfo );
      ;

      onInputChange = e =>
      this.setState(
      searchString: e.target.value,
      );
      ;

      onMouseMove = e =>

      ;

      render()
      const contactsInfo, searchString, = this.state;
      return (
      <div css=bodyWrap onMouseMove=e => this.onMouseMove(e)>
      <Header appName="VERIFY" user=user />
      user.viewApp && (
      <div css=innerWrap>
      <SearchInput
      searchIcon
      value=searchString
      onChange=e => this.onInputChange(e)
      handleSubmit=this.handleSubmit
      />
      contactsInfo.map(info => (
      <SearchResultPanel
      info=info
      isAdmin=user.isAdmin
      key=info.id
      />
      ))
      </div>
      )
      <Footer />
      </div>

      );








      javascript reactjs






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 7 at 9:14









      Murat Karagöz

      15.1k53669




      15.1k53669










      asked Mar 7 at 9:11









      user3378165user3378165

      2,43782758




      2,43782758






















          1 Answer
          1






          active

          oldest

          votes


















          1














          If the API supports pagination then you can use React-Infinite-Scroll. It looks like this



           <div style="height:700px;overflow:auto;">
          <InfiniteScroll
          pageStart=0
          loadMore=loadFunc
          hasMore=true
          loader=<div className="loader">Loading ...</div>
          useWindow=false>
          items
          </InfiniteScroll>
          </div>


          However if the REST API does not support it, you can still load the data and show them in chunks to the user with the same library but you would need to handle the current load state by yourself.






          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%2f55039950%2fload-more-data-on-scroll%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 the API supports pagination then you can use React-Infinite-Scroll. It looks like this



             <div style="height:700px;overflow:auto;">
            <InfiniteScroll
            pageStart=0
            loadMore=loadFunc
            hasMore=true
            loader=<div className="loader">Loading ...</div>
            useWindow=false>
            items
            </InfiniteScroll>
            </div>


            However if the REST API does not support it, you can still load the data and show them in chunks to the user with the same library but you would need to handle the current load state by yourself.






            share|improve this answer



























              1














              If the API supports pagination then you can use React-Infinite-Scroll. It looks like this



               <div style="height:700px;overflow:auto;">
              <InfiniteScroll
              pageStart=0
              loadMore=loadFunc
              hasMore=true
              loader=<div className="loader">Loading ...</div>
              useWindow=false>
              items
              </InfiniteScroll>
              </div>


              However if the REST API does not support it, you can still load the data and show them in chunks to the user with the same library but you would need to handle the current load state by yourself.






              share|improve this answer

























                1












                1








                1







                If the API supports pagination then you can use React-Infinite-Scroll. It looks like this



                 <div style="height:700px;overflow:auto;">
                <InfiniteScroll
                pageStart=0
                loadMore=loadFunc
                hasMore=true
                loader=<div className="loader">Loading ...</div>
                useWindow=false>
                items
                </InfiniteScroll>
                </div>


                However if the REST API does not support it, you can still load the data and show them in chunks to the user with the same library but you would need to handle the current load state by yourself.






                share|improve this answer













                If the API supports pagination then you can use React-Infinite-Scroll. It looks like this



                 <div style="height:700px;overflow:auto;">
                <InfiniteScroll
                pageStart=0
                loadMore=loadFunc
                hasMore=true
                loader=<div className="loader">Loading ...</div>
                useWindow=false>
                items
                </InfiniteScroll>
                </div>


                However if the REST API does not support it, you can still load the data and show them in chunks to the user with the same library but you would need to handle the current load state by yourself.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Mar 7 at 9:14









                Murat KaragözMurat Karagöz

                15.1k53669




                15.1k53669





























                    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%2f55039950%2fload-more-data-on-scroll%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

                    Save data to MySQL database using ExtJS and PHP [closed]2019 Community Moderator ElectionHow can I prevent SQL injection in PHP?Which MySQL data type to use for storing boolean valuesPHP: Delete an element from an arrayHow do I connect to a MySQL Database in Python?Should I use the datetime or timestamp data type in MySQL?How to get a list of MySQL user accountsHow Do You Parse and Process HTML/XML in PHP?Reference — What does this symbol mean in PHP?How does PHP 'foreach' actually work?Why shouldn't I use mysql_* functions in PHP?

                    Compiling GNU Global with universal-ctags support Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Data science time! April 2019 and salary with experience The Ask Question Wizard is Live!Tags for Emacs: Relationship between etags, ebrowse, cscope, GNU Global and exuberant ctagsVim and Ctags tips and trickscscope or ctags why choose one over the other?scons and ctagsctags cannot open option file “.ctags”Adding tag scopes in universal-ctagsShould I use Universal-ctags?Universal ctags on WindowsHow do I install GNU Global with universal ctags support using Homebrew?Universal ctags with emacsHow to highlight ctags generated by Universal Ctags in Vim?

                    Add ONERROR event to image from jsp tldHow to add an image to a JPanel?Saving image from PHP URLHTML img scalingCheck if an image is loaded (no errors) with jQueryHow to force an <img> to take up width, even if the image is not loadedHow do I populate hidden form field with a value set in Spring ControllerStyling Raw elements Generated from JSP tagds with Jquery MobileLimit resizing of images with explicitly set width and height attributeserror TLD use in a jsp fileJsp tld files cannot be resolved