Skip to content

console.log(user) returnsRef<undefined>, butconsole.log(user, user.value) return Ref<Object>, Reactive<Object> #2920

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
mrleblanc101 opened this issue Feb 24, 2025 · 5 comments
Labels
contribution welcome ✨ enhancement New feature or request upstream The fix depends on a dependency

Comments

@mrleblanc101
Copy link

mrleblanc101 commented Feb 24, 2025

Reproduction

https://stackblitz.com/edit/github-ugyyhuvm?file=components%2FHelloWorld.vue

Steps to reproduce the bug

Is this a regression ?
I have a very simple store that export an hardcoded user object.

I added this to my component:

const store = useAuthStore();
const { user } = storeToRefs(store);
console.log(user);
console.log(user, user.value);

The first console.log is undefined.
The second one is not:

Ref<undefined>
Ref<Object>, Reactive<Object>

Expected behavior

console.log(user); alone should return Ref<Object>.

Actual behavior

console.log(user); returns Ref<undefined>.

Additional information

No response

@mrleblanc101 mrleblanc101 changed the title Log of ref returnsRef<undefined>, but log of ref.value return Ref<object> Log of user returnsRef<undefined>, but log user, user.value return Ref<Object>, Reactive<Object> Feb 24, 2025
@mrleblanc101
Copy link
Author

Same thing with isLoggedIn.

console.log(isLoggedIn); // ComputedRef<undefined>
console.log(isLoggedIn, isLoggedIn.value); // ComputedRef<true> true

Copy link
Member

posva commented Feb 24, 2025

This seems to be caused by 67d3109 and how Vue custom formatters work.

In practice I recommend you to log the .value. The fix might be in Vue's codebase

@posva posva added ✨ enhancement New feature or request contribution welcome labels Feb 24, 2025 — with Volta.net
@mrleblanc101
Copy link
Author

Do you think I should I open an issue in @vue/core and link to this ?

Copy link
Member

posva commented Feb 25, 2025

You can. If I were you, I would try to reproduce it without pinia by using what storeToRefs do and try to find a fix in Vue former here

@mrleblanc101 mrleblanc101 changed the title Log of user returnsRef<undefined>, but log user, user.value return Ref<Object>, Reactive<Object> console.log(user) returnsRef<undefined>, butconsole.log(user, user.value) return Ref<Object>, Reactive<Object> Feb 25, 2025
@edison1105
Copy link
Member

@posva
I've made a PR to fix this one, PR vuejs/core#12948
please feel free to review

@posva posva added the upstream The fix depends on a dependency label Feb 27, 2025
@posva posva closed this as completed Feb 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contribution welcome ✨ enhancement New feature or request upstream The fix depends on a dependency
Projects
None yet
Development

No branches or pull requests

3 participants