2017-04-05 53 views
0

在执行下面的React Native代码时,我不断收到以下错误。在React Native组件类中定义对象时出错

Link to Error Screenshot

我已经尝试了各种方法来定义actionEnum对象,但似乎没有任何工作。请帮忙!

import React from "react"; 
import { 
    View, 
    Text, 
    StyleSheet, 
    TextInput, 
    Button, 
    AsyncStorage 
} from "react-native"; 

class AddItem extends React.Component { 
    static navigationOptions = { 
    title: "Add item" 
    }; 

    static actionEnum = { 
    init: 1, 
    add: 2, 
    update: 3, 
    delete: 4, 
    set: 5 
    }; 

    constructor(props) { 
    super(props); 
    this.setStateHandler(this.actionEnum.add); 
    } 

.....

回答

0

JavaScript没有静态变量,只有static methods。你可以通过从你的模块中导出你的枚举对象来解决这个问题,而不是将它作为你的类的一部分,但是如果你真的需要它成为你的类的一部分,你可以使用get accessor

class AddItem extends React.Component { 
    static get navigationOptions() { 
    return { 
     title: "Add item" 
    }; 
    } 

    static get actionEnum() { 
    return { 
     init: 1, 
     add: 2, 
     update: 3, 
     delete: 4, 
     set: 5 
    }; 
    } 

    constructor(props) { 
    super(props); 
    this.setStateHandler(this.actionEnum.add); 
    } 
+0

的ES6规范呢?这是用来通过阵营本地 – WilomGfx

+0

http://exploringjs.com/es6/ch_classes.html#_constructor-static-methods-prototype-methods – WilomGfx

+0

实际上,ES6规范只定义静态方法,而不是静态数据属性(变量)。 “为了及时完成ES6课程,故意将它们设计为”最小化“,这就是为什么当前只能创建静态方法,getter和setter,而不是静态数据属性的原因。” 来自您自己的链接。 –

相关问题