Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript react-使用for循环创建x个组件实例_Javascript_Reactjs - Fatal编程技术网

Javascript react-使用for循环创建x个组件实例

Javascript react-使用for循环创建x个组件实例,javascript,reactjs,Javascript,Reactjs,我正在解决一个有趣的react练习,其中可以有多个输入字段,更改其中任何一个都会更新一个和值,我想知道如何使用for循环创建x个输入元素。我创建了一个名为createInputs的函数,它接收一个数字并输出输入组件的一个实例。它们返回为up[object object][object][object object][object object object object,我该如何修复它 类输入扩展组件{ 状态={ 编号:“” } handleInput=e=>{ const{value}=e.

我正在解决一个有趣的react练习,其中可以有多个输入字段,更改其中任何一个都会更新一个和值,我想知道如何使用for循环创建x个输入元素。我创建了一个名为createInputs的函数,它接收一个数字并输出输入组件的一个实例。它们返回为up[object object][object][object object][object object object object,我该如何修复它

类输入扩展组件{
状态={
编号:“”
}
handleInput=e=>{
const{value}=e.target;
const parsedValue=值!=''?parseFloat(值):值;
如果(解析值!=''){
if(Number.isInteger(parsedValue)){
this.setState({number:parsedValue});
this.props.updateSum(parsedValue,this.props.index);
}否则{
警报('请为输入#'输入有效(数字)值+this.props.index);
}
}否则{
this.setState({number:'});
this.props.updateSum(0,this.props.index);
}
}
render(){
返回(
{this.props.index}
)
}
}
类和扩展组件{
状态={
总数:[]
}
createInputs=计数=>{
让ui='';
for(设i=0;i{
const _sum=this.state.sum.slice(0);
_总和[指数]=e;
这是我的国家({
sum:_sum
})
}
render(){
const{count,sum}=this.state;
返回(
{
this.createInputs(this.props.count)
}
求和:{Sum.length>0?求和减少((a,v)=>a+=v):0}
)
}
}
类应用程序扩展组件{
render(){
返回(
);
}
}

导出默认应用程序;
,因为您在
for loop
中使用了
return
。在第一个循环中,它将返回值。相反,只将它们放在
数组中,然后将其映射到
上。如果您不需要包装器
,可以使用

createInputs=count=>{
设arr=[]
for(设i=0;iinput)}
)
}
如果您不想创建数组,然后推送,那么使用

createInputs = count => {
    return(<div>{Array(count).fill(1).map((input,i)=>(
            <Input index={i} updateSum={this.updateSum} />))}
           </div>)
  }
createInputs=count=>{
return({Array(count).fill(1).map((input,i)=>(
))}
)
}

因为在
for循环中使用了
return
。在第一个循环中,它将返回值。相反,只在
数组中返回值,然后将其映射到
上。如果不需要包装器
,可以使用

createInputs=count=>{
设arr=[]
for(设i=0;iinput)}
)
}
如果您不想创建数组,然后推送,那么使用

createInputs = count => {
    return(<div>{Array(count).fill(1).map((input,i)=>(
            <Input index={i} updateSum={this.updateSum} />))}
           </div>)
  }
createInputs=count=>{
return({Array(count).fill(1).map((input,i)=>(
))}
)
}
createInputs=count=>{
for(设i=0;i
createInputs=count=>{
for(设i=0;i