Search code examples
javascriptmobxmobx-react

How to get a plain object from mobx object?


I defined a mobx map as below:

@observable editors = observable.map();

then I added object on the editors as below:

  editors.set(key, {
    alias: 'alias-1',
    message: 'hello',
  })

when I get the object from editor as below:

  let myEditor = editors.get(key)

the returned object myEditor has some builtin functions such as:

$mobx:ObservableObjectAdministration
get alias:function ()
set alias:function ()
get message:function ()
set message:function ()

I wander how I can get a plain javascript object from editor?


Solution

  • You can use toJS.

    Example

    class MyStore {
      @observable editors = observable.map({});
    }
    
    const myStore = new MyStore();
    
    myStore.editors.set('example', {
      alias: 'alias-1',
      message: 'hello'
    });
    
    console.log(toJS(myStore.editors));