0

我正在使用带有 MST 的本机反应,但我无法解决下一个问题在 MST 中使用哪些类型new Animated.Value(1),setInterval,require('image.png')?试过了stringfrozen没用。

import {Animated} from 'react-native';
import {types} from 'mobx-state-tree';

const Worksheet = types
  .model('Worksheet', {
    image: _,
    animated: _,
    timeInterval: _, 
  })

Worksheet.create({
  image: require('image.png'),
  animated: new Animated.Value(1),
  timeInterval: null | setInterval(() => {}, 1000),  
})

需要你的帮助。谢谢!

4

1 回答 1

2

一种选择可能是:

const Worksheet = types
  .model('Worksheet', {
    imageFile: types.string,
    animatedValue: 1,
  ).views(self => ({
    get image() {
      return require(self.imageFile);
    },
    get animated() {
      return new Animated.Value(self.animatedValue);
    },
  }).volatile({
    timeInterval: null || setInterval(() => {}, 1000)
  })

当 MST 无法推理时,并非所有字段都可以是类型。这就是volatile发挥作用的地方。注意里面的字段volatile不能序列化成快照。

我不确定你的意图是什么,animated所以我将值作为它自己的类型,并在其中使用了一个计算的 getterviews来获得你想要的实际东西。也许这会激发您的想法。

于 2019-11-09T01:16:52.823 回答