Javascript 无法读取属性';地图';当我已经声明了属性时的未定义的reactjs
您好,我正在运行以下程序,我已将textfield属性设置为字符串,据我所知,这是一个数组,映射函数应该在数组上工作,但它仍然表示无法读取未定义的属性“map”,那么它在状态中是否未定义?谢谢Javascript 无法读取属性';地图';当我已经声明了属性时的未定义的reactjs,javascript,reactjs,dictionary,Javascript,Reactjs,Dictionary,您好,我正在运行以下程序,我已将textfield属性设置为字符串,据我所知,这是一个数组,映射函数应该在数组上工作,但它仍然表示无法读取未定义的属性“map”,那么它在状态中是否未定义?谢谢 class App extends Component { state={ textfield:"first value", } makeUnique =(textfield)=>{ return String.prototype.concat(...new Set(tex
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 ##
类应用程序扩展组件{
陈述={
textfield:“第一个值”,
}
makeUnique=(文本字段)=>{
返回String.prototype.concat(…新集合(textfield));
}
textchanged=(事件)=>{
这是我的国家({
textfield:event.target.value,
caltexlength:event.target.value.length,
})
}
render(){
让uniquechars=null;
独一无二的=(
{
this.textfield.map((字符,索引)=>{
返回
})
}
)##标题##
TextField是一个字符串,为什么要对它进行映射。映射只在数组上工作。要访问state TextField,它应该是this.state.TextField,而不是this.TextField
所以改变
uniquechars=(<div>
{
this.textfield.map((char,index)=>{
return <charComponent
char ={this.makeUnique(this.state.textfield)}/>
})
}
</div>)
uniquechars=(
{
this.textfield.map((字符,索引)=>{
返回
})
}
)
到
uniquechars=(
)
TextField是一个字符串,为什么要对它进行映射。映射只在数组上工作。要访问state TextField,它应该是this.state.TextField,而不是this.TextField
所以改变
uniquechars=(<div>
{
this.textfield.map((char,index)=>{
return <charComponent
char ={this.makeUnique(this.state.textfield)}/>
})
}
</div>)
uniquechars=(
{
this.textfield.map((字符,索引)=>{
返回
})
}
)
到
uniquechars=(
)
您必须更换
this.textfield.map
到
你必须更换
this.textfield.map
到
按如下所示编写行
this.textfield.map((char,index)
[...this.state.textfield].map((char,index)
使用spread运算符,您将从字符串中创建一个数组,并可以在其上调用map。将行
写入this.textfield.map((char,index)
,如下所示
[...this.state.textfield].map((char,index)
使用spread运算符,您将从字符串创建一个数组,您可以对其调用map。TextField是一个字符串,那么您为什么要对其进行map操作。map仅在数组上工作。要访问state TextField,它应该是this.state.TextField,而不是this.TextField。TextField谢谢@HemadriDasari我试过它说这个。state.TextField.map不好玩Action,?Thanksy你不应该在上面做map,因为我告诉过你map只能在数组上工作,不能在字符串上工作。TextField是字符串,为什么你要在上面做map。map只能在数组上工作。要访问state TextField,应该是this.state.TextField,而不是this.textFieldthanks@HemadriDasari,我试过它说this.state.TextField.map不是函数tion,?谢谢你不应该在上面做map,因为我告诉过你map只能在数组上工作,而不能在字符串上工作。到目前为止,我一直认为textfield基本上是一个数组,但如果我们放textfield.split(“”),它就不是数组textfield是一个字符串,在这里我们使用spread运算符来扩展字符串并创建一个字符数组。这是redux Reducer中的一种常见做法,用于状态不变性,使用prev state和新数据创建一个新数组。因此,您不需要使用textfield.split(“”)。有意义-有些对字符串有效,有些对字符串无效,而spread运算符对字符串和数组的作用是相同的。是的。当您想要创建一个不可变数组时,spread运算符是一种方法。特别是当您的状态是数组时,您必须使用此方法将新创建的数组传递给setState。您解决了问题吗?Grea如果这有帮助的话,请确保这个答案是正确的。到目前为止,我一直认为textfield基本上是一个数组,但如果我们把textfield.split(“”)放进去,它就不是数组了textfield是一个字符串,在这里我们使用spread运算符来扩展字符串并创建一个字符数组。这是redux Reducer中的一种常见做法,用于状态不变性,使用prev state和新数据创建一个新数组。因此,您不需要使用textfield.split(“”)。有意义-有些对字符串有效,有些对字符串无效,而spread运算符对字符串和数组的作用是相同的。是的。当您想要创建一个不可变数组时,spread运算符是一种方法。特别是当您的状态是数组时,您必须使用此方法将新创建的数组传递给setState。您解决了问题吗?Grea如果这有帮助,请确保把这个答案标记为正确。