2017-04-05 54 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,而不是靜態數據屬性的原因。」 來自您自己的鏈接。 –

相關問題