Trying to use React Hooks in ReactDOM.render. Is it right?





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







1















So i get dispatcher.useEffect is not a function



react.development.js:1463 Uncaught TypeError: dispatcher.useEffect is not a function
at useEffect (react.development.js:1463)
at Preload (VM75697 Preload.js:40)
at ProxyFacade (react-hot-loader.development.js:677)
at mountIndeterminateComponent (react-dom.development.js:14563)
at beginWork (react-dom.development.js:15063)
at performUnitOfWork (react-dom.development.js:17820)
at workLoop (react-dom.development.js:17860)
at HTMLUnknownElement.callCallback (react-dom.development.js:149)
at Object.invokeGuardedCallbackDev (react-dom.development.js:199)
at invokeGuardedCallback (react-dom.development.js:256)


I'm trying to use functions inside render method:



render(
<Root store={store} history={history} />,
document.getElementById('app'),
)


My Root.js file looks like:



import React from 'react'
import { hot } from 'react-hot-loader'
import { Provider } from 'react-redux'
import { ConnectedRouter } from 'connected-react-router'
import Preload from '../Preload'
import Routes from './Routes'

const Root = ({ store, history }) => (
<Provider store={store}>
<Preload>
<ConnectedRouter history={history}>
<Routes />
</ConnectedRouter>
</Preload>
</Provider>
)

export default hot(module)(Root)


And finally i use useEffect in Preload.js



import { useEffect } from 'react'
import { connect } from 'react-redux'
import { init } from '../actions'

const Preload = ({
children,
token,
onInit,
}) => {
useEffect(() => {
if (token) {
onInit()
}
})

return children
}

export default connect(
state => ({
token: state.security.token,
}),
dispatch => ({
onInit: () => dispatch(init()),
}),
)(Preload)


Most answers to that error was, that people forget to use function inside useEffect, but not in my case.










share|improve this question































    1















    So i get dispatcher.useEffect is not a function



    react.development.js:1463 Uncaught TypeError: dispatcher.useEffect is not a function
    at useEffect (react.development.js:1463)
    at Preload (VM75697 Preload.js:40)
    at ProxyFacade (react-hot-loader.development.js:677)
    at mountIndeterminateComponent (react-dom.development.js:14563)
    at beginWork (react-dom.development.js:15063)
    at performUnitOfWork (react-dom.development.js:17820)
    at workLoop (react-dom.development.js:17860)
    at HTMLUnknownElement.callCallback (react-dom.development.js:149)
    at Object.invokeGuardedCallbackDev (react-dom.development.js:199)
    at invokeGuardedCallback (react-dom.development.js:256)


    I'm trying to use functions inside render method:



    render(
    <Root store={store} history={history} />,
    document.getElementById('app'),
    )


    My Root.js file looks like:



    import React from 'react'
    import { hot } from 'react-hot-loader'
    import { Provider } from 'react-redux'
    import { ConnectedRouter } from 'connected-react-router'
    import Preload from '../Preload'
    import Routes from './Routes'

    const Root = ({ store, history }) => (
    <Provider store={store}>
    <Preload>
    <ConnectedRouter history={history}>
    <Routes />
    </ConnectedRouter>
    </Preload>
    </Provider>
    )

    export default hot(module)(Root)


    And finally i use useEffect in Preload.js



    import { useEffect } from 'react'
    import { connect } from 'react-redux'
    import { init } from '../actions'

    const Preload = ({
    children,
    token,
    onInit,
    }) => {
    useEffect(() => {
    if (token) {
    onInit()
    }
    })

    return children
    }

    export default connect(
    state => ({
    token: state.security.token,
    }),
    dispatch => ({
    onInit: () => dispatch(init()),
    }),
    )(Preload)


    Most answers to that error was, that people forget to use function inside useEffect, but not in my case.










    share|improve this question



























      1












      1








      1


      0






      So i get dispatcher.useEffect is not a function



      react.development.js:1463 Uncaught TypeError: dispatcher.useEffect is not a function
      at useEffect (react.development.js:1463)
      at Preload (VM75697 Preload.js:40)
      at ProxyFacade (react-hot-loader.development.js:677)
      at mountIndeterminateComponent (react-dom.development.js:14563)
      at beginWork (react-dom.development.js:15063)
      at performUnitOfWork (react-dom.development.js:17820)
      at workLoop (react-dom.development.js:17860)
      at HTMLUnknownElement.callCallback (react-dom.development.js:149)
      at Object.invokeGuardedCallbackDev (react-dom.development.js:199)
      at invokeGuardedCallback (react-dom.development.js:256)


      I'm trying to use functions inside render method:



      render(
      <Root store={store} history={history} />,
      document.getElementById('app'),
      )


      My Root.js file looks like:



      import React from 'react'
      import { hot } from 'react-hot-loader'
      import { Provider } from 'react-redux'
      import { ConnectedRouter } from 'connected-react-router'
      import Preload from '../Preload'
      import Routes from './Routes'

      const Root = ({ store, history }) => (
      <Provider store={store}>
      <Preload>
      <ConnectedRouter history={history}>
      <Routes />
      </ConnectedRouter>
      </Preload>
      </Provider>
      )

      export default hot(module)(Root)


      And finally i use useEffect in Preload.js



      import { useEffect } from 'react'
      import { connect } from 'react-redux'
      import { init } from '../actions'

      const Preload = ({
      children,
      token,
      onInit,
      }) => {
      useEffect(() => {
      if (token) {
      onInit()
      }
      })

      return children
      }

      export default connect(
      state => ({
      token: state.security.token,
      }),
      dispatch => ({
      onInit: () => dispatch(init()),
      }),
      )(Preload)


      Most answers to that error was, that people forget to use function inside useEffect, but not in my case.










      share|improve this question
















      So i get dispatcher.useEffect is not a function



      react.development.js:1463 Uncaught TypeError: dispatcher.useEffect is not a function
      at useEffect (react.development.js:1463)
      at Preload (VM75697 Preload.js:40)
      at ProxyFacade (react-hot-loader.development.js:677)
      at mountIndeterminateComponent (react-dom.development.js:14563)
      at beginWork (react-dom.development.js:15063)
      at performUnitOfWork (react-dom.development.js:17820)
      at workLoop (react-dom.development.js:17860)
      at HTMLUnknownElement.callCallback (react-dom.development.js:149)
      at Object.invokeGuardedCallbackDev (react-dom.development.js:199)
      at invokeGuardedCallback (react-dom.development.js:256)


      I'm trying to use functions inside render method:



      render(
      <Root store={store} history={history} />,
      document.getElementById('app'),
      )


      My Root.js file looks like:



      import React from 'react'
      import { hot } from 'react-hot-loader'
      import { Provider } from 'react-redux'
      import { ConnectedRouter } from 'connected-react-router'
      import Preload from '../Preload'
      import Routes from './Routes'

      const Root = ({ store, history }) => (
      <Provider store={store}>
      <Preload>
      <ConnectedRouter history={history}>
      <Routes />
      </ConnectedRouter>
      </Preload>
      </Provider>
      )

      export default hot(module)(Root)


      And finally i use useEffect in Preload.js



      import { useEffect } from 'react'
      import { connect } from 'react-redux'
      import { init } from '../actions'

      const Preload = ({
      children,
      token,
      onInit,
      }) => {
      useEffect(() => {
      if (token) {
      onInit()
      }
      })

      return children
      }

      export default connect(
      state => ({
      token: state.security.token,
      }),
      dispatch => ({
      onInit: () => dispatch(init()),
      }),
      )(Preload)


      Most answers to that error was, that people forget to use function inside useEffect, but not in my case.







      reactjs react-hooks






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 23 '18 at 15:16







      chrisands

















      asked Nov 23 '18 at 15:07









      chrisandschrisands

      4528




      4528
























          1 Answer
          1






          active

          oldest

          votes


















          0














          Well, answer is very simple.
          Update to beta not only react, but react-dom too.



          And it seems react-redux's connect get me



          Uncaught Error: Hooks can only be called inside the body of a function component.


          because react-redux starts support hooks only in 6 version (in beta right now).






          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%2f53449029%2ftrying-to-use-react-hooks-in-reactdom-render-is-it-right%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









            0














            Well, answer is very simple.
            Update to beta not only react, but react-dom too.



            And it seems react-redux's connect get me



            Uncaught Error: Hooks can only be called inside the body of a function component.


            because react-redux starts support hooks only in 6 version (in beta right now).






            share|improve this answer




























              0














              Well, answer is very simple.
              Update to beta not only react, but react-dom too.



              And it seems react-redux's connect get me



              Uncaught Error: Hooks can only be called inside the body of a function component.


              because react-redux starts support hooks only in 6 version (in beta right now).






              share|improve this answer


























                0












                0








                0







                Well, answer is very simple.
                Update to beta not only react, but react-dom too.



                And it seems react-redux's connect get me



                Uncaught Error: Hooks can only be called inside the body of a function component.


                because react-redux starts support hooks only in 6 version (in beta right now).






                share|improve this answer













                Well, answer is very simple.
                Update to beta not only react, but react-dom too.



                And it seems react-redux's connect get me



                Uncaught Error: Hooks can only be called inside the body of a function component.


                because react-redux starts support hooks only in 6 version (in beta right now).







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 24 '18 at 14:50









                chrisandschrisands

                4528




                4528
































                    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%2f53449029%2ftrying-to-use-react-hooks-in-reactdom-render-is-it-right%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







                    這個網誌中的熱門文章

                    Xamarin.form Move up view when keyboard appear

                    Post-Redirect-Get with Spring WebFlux and Thymeleaf

                    Anylogic : not able to use stopDelay()