创建一个简单的商店但设置函数未定义
Creating a simple store but set function undefined
我正在尝试创建一个简单的用户存储并将一些经典功能放入其中,但我可能遗漏了一些东西...
非常感谢。
import { writable } from 'svelte/store';
// a simple user just for testing
const userTest = {
uid: '89sdf2fdq2mP',
email: 'john.galvin@yopmail.org',
firstname: 'John',
lastname: 'Galvin',
phoneNumber: '',
photoURL: '',
emailVerified: false,
sex: 0,
date_of_birth: new Date(1990, 8, 1)
};
const user = writable(null);
// the user store
const userStore = {
subscribe: user.subscribe,
setUser: (user) => {
userStore.set(user); // TypeError: userStore.set is not a function
},
saveUserProperty: (prop, value) => (userStore.prop = value), // to be tested later
delete: () => {
userStore.set(null);
}
};
console.log(user); // an object containing set, subscribe and update method
userStore.setUser(userTest); // Error
export default userStore;
set
方法由 user
商店提供,而不是 userStore
。此外,使用另一个变量来描述用户数据,因为 user
是您初始商店的名称。最后,请参阅下文以正确实施 saveUserProperty
.
// the user store
const userStore = {
subscribe: user.subscribe,
setUser: (u) => {
user.set(u); // TypeError: userStore.set is not a function
},
// saveUserProperty: (prop, value) => (userStore[prop] = value), // to be tested later
delete: () => {
user.set(null);
}
};
如果我明白你的目标是什么,saveUserProperty
方法将是:
saveUserProperty: (prop, value) => {
user.update((u) => ({ ...u, [prop]: value }))
}
我正在尝试创建一个简单的用户存储并将一些经典功能放入其中,但我可能遗漏了一些东西...
非常感谢。
import { writable } from 'svelte/store';
// a simple user just for testing
const userTest = {
uid: '89sdf2fdq2mP',
email: 'john.galvin@yopmail.org',
firstname: 'John',
lastname: 'Galvin',
phoneNumber: '',
photoURL: '',
emailVerified: false,
sex: 0,
date_of_birth: new Date(1990, 8, 1)
};
const user = writable(null);
// the user store
const userStore = {
subscribe: user.subscribe,
setUser: (user) => {
userStore.set(user); // TypeError: userStore.set is not a function
},
saveUserProperty: (prop, value) => (userStore.prop = value), // to be tested later
delete: () => {
userStore.set(null);
}
};
console.log(user); // an object containing set, subscribe and update method
userStore.setUser(userTest); // Error
export default userStore;
set
方法由 user
商店提供,而不是 userStore
。此外,使用另一个变量来描述用户数据,因为 user
是您初始商店的名称。最后,请参阅下文以正确实施 saveUserProperty
.
// the user store
const userStore = {
subscribe: user.subscribe,
setUser: (u) => {
user.set(u); // TypeError: userStore.set is not a function
},
// saveUserProperty: (prop, value) => (userStore[prop] = value), // to be tested later
delete: () => {
user.set(null);
}
};
如果我明白你的目标是什么,saveUserProperty
方法将是:
saveUserProperty: (prop, value) => {
user.update((u) => ({ ...u, [prop]: value }))
}