Static GitHub Issues

[763] Error in layouts with middleware

prev: 0.10.7 ie11 Promise error
next: How to set up proxy with nuxt.config.js

I'm using a layout that relies on the state of the vuex:

<template>
  <div>
    <p>{{user.name}}</p>
    <nuxt/>
  </div>
</template>

<script>
import { mapState } from 'vuex'
export default {
  middleware: ['auth'],
  computed: {
    ...mapState({
      user: state => state.currentUser, // or null in user not authenticated
    }),
  },
}
</script>

Middleware auth check state.currentUser and redirect to login page if it's null

export default function ({ store, redirect }) {
  console.log('\nCheck user data ...\n')
  if (!store.state.currentUser) {
    return redirect('/login')
  }
}

So, now, if I'm not authorized and trying to load a page with this template, I get an error in the server console:

Check user data ...

[Vue warn]: Error in render function: 
(found in <Sidebar> at /run/media/alex/LinWin/Develop/fb-scaner/resources/layouts/sidebar.vue)
TypeError: Cannot read property 'name' of null
    at Proxy.render (resources/layouts/sidebar.vue?7fdc:2:0)
    at VueComponent.Vue._render (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue/dist/vue.runtime.common.js:3605:22)
    at renderComponent (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue-server-renderer/build.js:6698:25)
    at RenderContext.renderNode (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue-server-renderer/build.js:6681:7)
    at RenderContext.next (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue-server-renderer/build.js:169:14)
    at RenderContext.next (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue-server-renderer/build.js:178:12)
    at cachedWrite (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue-server-renderer/build.js:30:9)
    at renderElement (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue-server-renderer/build.js:6732:5)
    at renderNode (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue-server-renderer/build.js:6685:7)
    at renderComponent (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue-server-renderer/build.js:6704:3)

The code of the page itself is very simple.

<template>
  <pre>
    Home page
  </pre>
</template>

<script>
  export default {
    layout: 'sidebar',
  }
</script>
<!--cmty--><!--cmty_prevent_hook--><div align="right"><sub><em>This bug report is available on <a href="https://nuxtjs.cmty.io">Nuxt.js</a> community (<a href="https://nuxtjs.cmty.io/nuxt/nuxt.js/issues/c656">#c656</a>)</em></sub></div>