Я использую mobx 5.15.7 и вижу странное поведение

#reactjs #mobx #mobx-react

#reactjs #mobx #mobx-реагирует

Вопрос:

Здравствуйте, я использую mobx 4, только что перейдя к mobx 5, и я заметил, что синтаксис и некоторые из прочитанных вами наблюдаемых переменных изменились, я пытаюсь войти в консоль.регистрируйте вывод некоторых данных, которые я получаю с маршрута, но я вижу прокси и некоторые другие вещи. Скриншоты размещены ниже, и объяснение будет с благодарностью.

Вот что у меня есть в коде.

     const { team } = this.props.teamStore;
    console.log(this.props.teamStore)
    const userTeams = !!team ? team : null;
    console.log(userTeams)
    return (
      <div className="text-center mt-40">
        <div>Home page again lets get it.</div>
        {this.getTeams()}
      </div>
    );
 

Вот странный результат, с которым я столкнулся

 [[Handler]]: Object
[[Target]]: Array(3)
[[IsRevoked]]: false
 

Ответ №1:

Это нормально, MobX 5 использует Proxy под капотом (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy ), и это то, что он делает с вашими наблюдаемыми данными.

Вы можете попробовать использовать toJS метод для своих данных, если хотите обычный вывод на консоль, например:

 import { toJS } from 'mobx';

// ...

console.log(toJS(userTeams))
 

Подробнее здесь: https://www.mobxjs.com/refguide/tojson.html