2017-09-03 3 views
0

ich diese Konstruktion für Formular-Speicher zu verwenden und validieren: https://medium.com/@KozhukharenkoN/react-form-validation-with-mobx-8ce00233ae27MobX: Daten in den Speicher von einem anderen Geschäft bekommen

Es ist ein Geschäft, Form:

import { observable, action, computed } from 'mobx' 
 
import FormStore from './FormStore' 
 

 
import UserStore from 'stores/UserStore' 
 

 
class SettingsFormStore extends FormStore { 
 
    @observable 
 
    form = { 
 
    fields: { 
 
     email: { 
 
     value: UserStore.email, 
 
     defaultValue: UserStore.email, 
 
     error: null, 
 
     rule: 'required|email' 
 
     }, 
 
    }, 
 
    meta: { 
 
     isValid: true, 
 
     error: null, 
 
    }, 
 
    } 
 
} 
 

 
export default new SettingsFormStore()

gibt es eine Benutzer:

import { observable, action, computed } from 'mobx' 
 

 
import * as UserAPI from 'api/UserAPI' 
 

 
class UserStore { 
 
    @observable id 
 
    @observable email 
 

 
    constructor() { 
 
    this.load() 
 
    } 
 

 
    @action setValues(values) { 
 
    this.id = values.id 
 
    this.email = values.email 
 
    } 
 

 
    @action removeValues() { 
 
    this.id = null 
 
    this.email = null 
 
    } 
 

 
    load() { 
 
    UserAPI.getMe() 
 
     .then(result => { 
 
     this.setValues(result.user) 
 
     }) 
 
    } 
 
} 
 

 
export default new UserStore()

In Form Komponente ich E-Mails von Speicher:

const email = SettingsFormStore.form.fields.email.value 

aber aus irgendeinem Grund undefied eine E-Mail, obwohl UserStore.email den Wert hält ...

Antwort

0
reaction(
() => ({ email: UserStore.email, id: UserStore.id }), 
    ({ email, id }) => { 
    this.form.fields.email.value = email 
    ... 
    } 
) 
0

ich eine Lösung gefunden:

constructor() { 
    super() 

    reaction(
     () => UserStore.email, 
     email => { 
     this.form.fields.email.value = email 
     } 
    ) 
} 
+0

Aber es ist Frage: Wie mehr paramete verwenden rs aus UserStore in einer Reaktion? – Max

Verwandte Themen