Open ivsaneesh opened 1 year ago
same problem
I got this problem as well. But I dont think it is an issue with vue-social-sharing. The nuxt support is for Nuxt 2 if I understand it correctly. In Nuxt 3 it is possible to simply register the Vue plugin directly:
Create a new file in the plugins folder. Register the vue-social-sharing plugin (not the vue-social-sharing/nuxt):
See: https://nuxt.com/docs/guide/directory-structure/plugins#vue-plugins
This will work: plugins/vue-social-sharing.client.js:
import VueSocialSharing from 'vue-social-sharing';
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(VueSocialSharing);
});
If using SSR make sure to wrap it in a ClientOnly tag to avoid it getting rendered twice.
<ClientOnly>
<ShareNetwork
network="twitter"
url="https://news.vuejs.org/issues/180"
>
<span>Share on Twitter</span>
</ShareNetwork>
</ClientOnly>
@muzicaed get new error on this way. Cannot set properties of undefined (setting '$SocialSharing')
@muzicaed get new error on this way. Cannot set properties of undefined (setting '$SocialSharing')
follow these steps:
Install the specified version by running either of the following commands:
Using Yarn: yarn add vue-social-sharing@next Using npm: npm install --save vue-social-sharing@next
Version to install: For Vue 3, Nuxt3: "vue-social-sharing": "^4.0.0-alpha4"
Utilize it as a plugin in Nuxt, rather than a module. If you encounter any issues, you can resolve them by creating a custom plugin. Follow these steps:
Create a new file in the "/plugins" directory named "vue-social-sharing.client.ts".
Insert the following content into the file:
import VueSocialSharing from "vue-social-sharing";
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(VueSocialSharing);
});
Cannot read properties of undefined (reading 'Index')
I had this problem, too. If i don't add "vue-social-sharing/nuxt" line to nuxt.config.ts, it works.
If you see it:
A plugin must either be a function or an object with an "install" function
Change vue-social-sharing.ts to this:
import VueSocialSharing from 'vue-social-sharing/src/vue-social-sharing'
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(VueSocialSharing)
})
Cannot read properties of undefined (reading 'Index')
I had this problem, too. If i don't add "vue-social-sharing/nuxt" line to nuxt.config.ts, it works.
and create plugin vuesocialsharing.client.js just copy paste below code
import { defineNuxtPlugin } from "#app"; import VueSocialSharing from 'vue-social-sharing';
I got this problem as well. But I dont think it is an issue with vue-social-sharing. The nuxt support is for Nuxt 2 if I understand it correctly. In Nuxt 3 it is possible to simply register the Vue plugin directly:
Create a new file in the plugins folder. Register the vue-social-sharing plugin (not the vue-social-sharing/nuxt):
See: https://nuxt.com/docs/guide/directory-structure/plugins#vue-plugins
This will work: plugins/vue-social-sharing.client.js:
import VueSocialSharing from 'vue-social-sharing'; export default defineNuxtPlugin((nuxtApp) => { nuxtApp.vueApp.use(VueSocialSharing); });
If using SSR make sure to wrap it in a ClientOnly tag to avoid it getting rendered twice.
<ClientOnly> <ShareNetwork network="twitter" url="https://news.vuejs.org/issues/180" > <span>Share on Twitter</span> </ShareNetwork> </ClientOnly>
this is useful for me.
Version using is "vue-social-sharing": "^4.0.0-alpha4" "vue": "^3.2.47" "nuxt": "^3.3.1"