Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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 对象数组在地图中迭代,以呈现未在道具中更新的组件键_Javascript_Reactjs_React Redux - Fatal编程技术网

Javascript 对象数组在地图中迭代,以呈现未在道具中更新的组件键

Javascript 对象数组在地图中迭代,以呈现未在道具中更新的组件键,javascript,reactjs,react-redux,Javascript,Reactjs,React Redux,我有两个组件,一个是调用item组件的容器。容器组件正在使用映射组件进行迭代,如下所示: {this.state.items.map((item, id)=>{ return (<Car onChange={this.onChange} key={id} {...item}/>); })} 我错过了一些非常琐碎的事情,我觉得问这个问题真的很愚蠢。调用onchange时,我使用ID来处理数据。呈现给DOM的每个组件都需要一个唯一的键。使用“关键点”属性标识每个汽车组

我有两个组件,一个是调用item组件的容器。容器组件正在使用映射组件进行迭代,如下所示:

{this.state.items.map((item, id)=>{ return (
<Car onChange={this.onChange} key={id} {...item}/>
); })}
我错过了一些非常琐碎的事情,我觉得问这个问题真的很愚蠢。调用onchange时,我使用ID来处理数据。

呈现给DOM的每个组件都需要一个唯一的键。使用“关键点”属性标识每个汽车组件

呈现给DOM的每个组件都需要一个唯一的键。使用“关键点”属性标识每个汽车组件

这样试试

{this.state.items.map((item, id)=>{ return (
<Car onChange={this.onChange} key={id} {...item}/>
); })} 返回

可能是项具有唯一id且始终为0。它将覆盖您的id。

请尝试这种方式

返回


可能是项具有唯一id且始终为0。它将覆盖您的id。

在HTML中,当您多次提供相同的属性时,它将只优先选择第一个属性

在JS中,map函数将在回调函数中为我们提供三个参数:item、index和array

尽管如此,请不要使用令人困惑的名称。考虑将变量更改为此。

{
  this.state.items.map((item, index) => (
    <Car 
      key={`car-${index}`} 
      carIndex={index}
      car={item}  // or `data={item}`
      onChange={this.onChange} 
    />
  ))
}
键:用于唯一标识汽车部件的每个实例。 {this.state.items.map((item, id)=>{ return (
<Car onChange={this.onChange} key={id} {...item}/>
); })} itemIndex:您的逻辑用法 car:组件的实际项目数据。我不喜欢将我的数据属性赋予道具的根级别。 {this.state.items.map((item, id)=>{ return (
<Car onChange={this.onChange} key={id} {...item}/>
); })}
在HTML中,当您多次提供同一属性时,它将只优先选择第一个属性

在JS中,map函数将在回调函数中为我们提供三个参数:item、index和array

尽管如此,请不要使用令人困惑的名称。考虑将变量更改为此。

{
  this.state.items.map((item, index) => (
    <Car 
      key={`car-${index}`} 
      carIndex={index}
      car={item}  // or `data={item}`
      onChange={this.onChange} 
    />
  ))
}
键:用于唯一标识汽车部件的每个实例。 {this.state.items.map((item, id)=>{ return (
<Car onChange={this.onChange} key={id} {...item}/>
); })} itemIndex:您的逻辑用法 car:组件的实际项目数据。我不喜欢将我的数据属性赋予道具的根级别。 {this.state.items.map((item, id)=>{ return (
<Car onChange={this.onChange} key={id} {...item}/>
); })}
也许这个例子会有用


也许这个例子会有用


你能展示一下item的对象示例吗?我怀疑你的item必须有一个键id,它覆盖了id={id}?或者尝试将id prop更改为itemId={id}并控制台this.props.itemId.Items以一个数组开始,该数组的空对象为[{}],然后行为正确,映射回调中的第二个键是数组中项的索引。参考:尝试在数组中添加多个项并进行验证。问题不在于初始项。问题在于添加的连续元素。请显示项的对象示例,我怀疑您的项必须有一个键id,它将覆盖id={id}?或者尝试将id prop更改为itemId={id}并控制台this.props.itemId.Items以一个数组开始,该数组的空对象为[{}],然后行为正确,映射回调中的第二个键是数组中项的索引。参考:尝试在数组中添加多个项并进行验证。问题不在于初始项,而在于添加的连续元素