2016-09-14 2 views
3

Функция автозапуска MobX выводит undefined для обоих значений здесь. Кроме того, в моих компонентах, что import user from '../../stores/UserStore, экземпляры, которые я использую {user.userName}, ничего не показывают.React/MobX: Сохраненные значения не определены?

import { observable, autorun } from 'mobx' 

class UserStore { 
    @observable userName = "tommy"; 
    @observable arr = [0,1] 
} 

const user = window.user = new UserStore 

export default user; 


// user.userName = "timmy"; // works, but not observable. 

autorun(() => { 
    console.log(user.userName) // undefined 
    console.log(user.arr) // undefined 
}) 
+0

Вы имели в виду 'new UserStore()'? – azium

+0

[Это работает для меня] (http://jsbin.com/jumipucalo/edit?js,console). Попробуйте изменить поля 'user' в консоли. Возможно, вы столкнулись с [этой проблемой] (http://stackoverflow.com/questions/39381706/i-cant-figure-out-why-the-input-is-not-updating-using-mobx)? – Tholle

+0

Я пришел к выводу, что проблема связана с моим использованием 'create-react-app'. Я смог заставить наблюдателя/наблюдаемые функции работать, но без декораторов. 'observer (экспорт по умолчанию класс MyComponent extends Component {...' и 'class MyStore {myValue = observable ('некоторое значение здесь')}' –

ответ

2

Если вы хотите использовать декораторы с помощью приложения create-react-app, вам нужно будет изгнать приложение. «Запуск НПМ запуска вытолкнуть копирует все файлы конфигурации и транзитивные зависимостиhttps://github.com/facebookincubator/create-react-app Также я нашел вам нужно положить спектрально-декораторы-наследие плагин первого, так как:

plugins: ['transform-decorators-legacy','transform-class-properties'] 

После все это сделать. Следующее будет работать и проверено.

@observer class Counter extends React.Component { 
    @observable count = 0 
} 
+1

Недооцененный ответ. Спасибо за наконечник плагина декоратора. –

Смежные вопросы