为什么不能在反应类的状态下定义数组变量?

时间:2017-07-08 01:37:12

标签: arrays reactjs ecmascript-6

我创建了一个React类,其状态变量是数组类型。

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

但是当我在console.log(this.state.test)函数中render时,它会返回object类型。我认为这是映射时的唯一关键目的。

但是如果我只想为push方法定义数组呢?

还有其他方法可以定义吗?请帮忙。

1 个答案:

答案 0 :(得分:1)

请记住,数组是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>