MobX计算功能不起作用

时间:2018-04-06 13:24:02

标签: react-native momentjs mobx

我有一位用户:

@observable user = {name: 'john', birth_date: 1523020350, [...};

和计算函数:

@computed get userBirthdayString() {
    return moment(this.user.birth_date).format('MM-DD-YYYY');
}

我正在使用这样的计算函数:

<Text>Birthday: {this.userBirthdayString}</Text>

它没有用。

以前我这样宣布:

    @observable userBirthdayString = moment(this.user.birth_date).format('MM-DD-YYYY');

并在componentWillMount中执行此autorun

autorun(() => this.userBirthdayString = moment(this.user.birth_date).format('MM-DD-YYYY'));

并且工作得很好但我读的自动运行不应该像这样使用。

我是否错误地设置了计算机?我应该继续使用自动运行吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

我认为你的问题根本没有反应,只是对于你/毫秒:

moment(1523020350).format() == "1970-01-18T16:03:40+01:00"
moment(1523020350000).format() == "2018-04-06T15:12:30+02:00"

除了使用毫秒直到纪元,您可能已经使用了秒?

答案 1 :(得分:0)

如果我们看到整个组件,可能会更有用。你的默认状态是什么? birth_date如何变更?看起来你是在本地存储状态而不是在商店中存储很好。你正在做什么应该工作。是birth_date是否动态添加到user? MobX不是那样的。