2017-07-08 9 views
0

私は、状態変数が配列型のReactクラスを作成します。なぜ反応クラスの状態で配列変数を定義できないのですか?

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

が、ときに私console.log(this.state.test)機能renderで、それはobject型を返します。私はマッピングの際にユニークな目的のためにそれを考えました。

しかし、プッシュメソッドの配列を定義したい場合はどうすればよいですか。

他の定義方法はありますか?助けてください。

+0

は、あなたがそれにプッシュしようとしたことがありますか?それは間違いなく配列ですが、キー:値オブジェクトです。 objectsプロパティの値は配列です。 'test'は配列ではなく、単なる鍵です –

答えて

0

配列はjavasciptのオブジェクトであることを忘れないでください。

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

typeof([]) //outputs object 

が読める形式で配列を印刷するには、これにはJSON.stringifyが

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

状態で、アレイを設定するには、あなたがSETSTATEメソッドを使用することができます使用することができます

私は開発中にpreタグを使って状態を表示するのが本当に好きです。

これはレンダリングに追加:

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

' typeof'は関数ではなく演算子なので、 '[] 'を囲む括弧は余計です。 – loganfsmyth

関連する問題