我有一位用户:
@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'));
并且工作得很好但我读的自动运行不应该像这样使用。
我是否错误地设置了计算机?我应该继续使用自动运行吗?
谢谢!
答案 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不是那样的。