TypeScript + React Native中的状态界面属性

时间:2018-08-01 10:59:28

标签: typescript react-native

我正在将JavaScript中的现有代码重写为TypeScript。但是,我是React Native的新手。我的问题是:

我有一个带有自定义Component界面的自定义State。我想通过自定义State接口来解决我现在在组件本身内部出现的错误。这是接口的代码:

interface MeterReadingStaticState {
  process: any,
  selected: {
    value: any,
    isAccepted: boolean,
    type: any,
  },
  isLoaded: boolean,
}

这是我的Component的内容:

export default class MeterReadingStatic extends Component<
    MeterReadingStaticProps, MeterReadingStaticState> {
  state: MeterReadingStaticState = {
    selected: {
    value: '',
    isAccepted: false,
    type: '',
  },
    process: [],
    isLoaded: false
  };

onAcceptPress = () => {
    const updatedProcess = this._updateObj('isAccepted', true);
    this.setState({ process: updatedProcess });
  };

_updateObj = (prop: MeterReadingStaticProps, value: any) => {
    const { process, selected } = this.state;
    const target = process.filter(
      item => item.name === selected.name && item.type === selected.type
    )[0];
    target[prop] = value;

    const updatedProcess = process.map(
      item =>
        item.name === target.name && item.type === target.type ? target : item
    );

    return updatedProcess;
  };

从上面的代码可以看出,我想访问状态属性的特定参数。但是,当我尝试这样做时会遇到很多错误。尝试初始化State_updateObj函数中的onAcceptPress时,也会出现一些错误。

在定义State的接口时,我还没有找到关于这种特定情况的任何资料。有什么解决办法吗?

1 个答案:

答案 0 :(得分:0)

首先,请问您的MeterReadingStaticState是否在您的课程的同一文件中?

第二,您可以看到您的package.json文件并确保正确安装了打字稿吗?

请让我知道,因为它可能有助于解决问题