2017-07-08 41 views
0

我用狀態變量創建一個React類是數組類型。爲什麼無法在反應類的狀態下定義數組變量?

export default class Demo extends React.Component { 
    constructor(props){ 
    super(props) 
    this.state ={ 
     test: [] 
    } 
    } 

,但是當我在console.log(this.state.test)功能render然後返回object型。我認爲這是映射時唯一的關鍵目的。

但是如果我只是想爲push方法定義一個數組呢。

還有其他方法可以定義嗎?請幫忙。

+0

您是否嘗試過推呢?它絕對是一個數組,但它是一個關鍵:值對象。 objects屬性值是一個數組。 'test'不是一個數組,它只是一個鍵 –

回答

0

請記住,數組是javascipt中的對象。

typeof([]) //outputs object 

要打印在可讀形式陣列,可以使用JSON.stringify

console.log(JSON.stringify(this.state.test, null, 2))

要設置陣列中的狀態,則可以使用的setState方法:

this.setState({test: [/* new array */]}) 

在反應中,我真的很喜歡在開發時使用pre標籤來顯示狀態。

添加它來呈現:

<pre>{JSON.stringify(this.state, null, 2)}</pre> 
+1

'typeof'是一個運算符,而不是一個函數,所以圍繞'[]'的parens是多餘的。 – loganfsmyth

相關問題