嗨,我正在运行以下命令,我已将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 ##
答案 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。