当我已经声明属性未定义的reactjs时,无法读取该属性的“ map”

时间:2019-02-02 10:59:03

标签: javascript reactjs dictionary

嗨,我正在运行以下命令,我已将textfield属性设置为字符串,据我所知,数组和map函数应可在数组上使用,但仍然显示无法读取未定义的属性“ map”,是吗在状态中没有定义?谢谢

class App extends Component {

  state={
    textfield:"first value", 
  }

makeUnique =(textfield)=>{
  return String.prototype.concat(...new Set(textfield) );
}

  textchanged = (event)=>{
    this.setState({
      textfield:event.target.value,
      caltexlength:event.target.value.length,    
    })    
  }


  render() {
    let uniquechars=null;

    uniquechars=(<div>
      {
        this.textfield.map((char,index)=>{
          return <charComponent
          char ={this.makeUnique(this.state.textfield)}/>
        })
      }
    </div>)## Heading ##

3 个答案:

答案 0 :(得分:1)

TextField是一个字符串,所以为什么要在其上进行映射。地图仅适用于数组。要访问状态TextField,它应该是this.state.textField,而不是this.textField

所以改变

uniquechars=(<div>
  {
    this.textfield.map((char,index)=>{
      return <charComponent
      char ={this.makeUnique(this.state.textfield)}/>
    })
  }
</div>)

收件人

uniquechars=(<div>
   <charComponent
      char ={this.makeUnique(this.state.textfield)}/>
</div>)

答案 1 :(得分:1)

您必须替换

this.textfield.map

this.state.textfield.split('').map

答案 2 :(得分:1)

按如下所示写行this.textfield.map((char,index)

[...this.state.textfield].map((char,index)

使用散布运算符,您将从字符串中创建一个数组,然后可以在其上调用map。