У меня есть класс userStore ниже.
import {observable, action, decorate, when, computed} from 'mobx'
import { requests, Scripts } from 'axios.js'
import { create, persist } from 'mobx-persist'
import userAltImage from 'images/user.png'
const hydrate = create({
storage: localStorage,
jsonify: false,
});
class UserStore {
// scriptsPerRequest = 100
// less_or_more = 'first'
constructor(){
}
avatar = {
file: userAltImage,
width: '50px',
height: '50px'
}
scripts = {
self: []
}
setAvatar(file,width, height){
this.avatar.file = file
this.avatar.width = width
this.avatar.height = height
}
// loadSelfScripts(){
// Scripts.byAuthor(1, this.scriptsPerRequest, this.less_or_more,)
// }
}
decorate(UserStore,{
avatar: [persist('object'), observable],
scripts: [persist('object'), observable],
setAvatar: action
})
var userStore = new UserStore()
hydrate('user', userStore ).then( () => console.log('userStore hydrated!'))
export default userStore
Позже в другом компоненте X. js
У меня есть этот код
handledata = e =>{
.....
this.props.userStore.setAvatar(new_image_data, '50px', '50px')
}
Когда это запускается , mobx работает правильно, и объект userStore Avatar был успешно обновлен. Но когда я обновляю sh страницу, данные теряются ... это указывает на то, что mobx persist не работает для сохранения хранилища, даже если консоль сообщает 'userStore Hydrated' после запуска функции Hydrate.
What я делаю не так? Пожалуйста, порекомендуйте. Я не могу заставить это работать.