Javascript 为什么我会得到一个独特的;“关键”;尝试绘制地图时发出警告?
我在android模拟器中收到一条警告,说数组或迭代器中的每个子级都应该有一个唯一的“键”属性。但是,我的孩子们有一个名为key的属性,它是产品id,每个产品都应该是唯一的。有人知道它还想说什么,或者我如何修复这个警告吗Javascript 为什么我会得到一个独特的;“关键”;尝试绘制地图时发出警告?,javascript,android,reactjs,react-native,Javascript,Android,Reactjs,React Native,我在android模拟器中收到一条警告,说数组或迭代器中的每个子级都应该有一个唯一的“键”属性。但是,我的孩子们有一个名为key的属性,它是产品id,每个产品都应该是唯一的。有人知道它还想说什么,或者我如何修复这个警告吗 setModalVisible = (visible) => { const unaddedCartProducts = this.state.unaddedCartItems.map((unaddedCartItem) => {
setModalVisible = (visible) => {
const unaddedCartProducts = this.state.unaddedCartItems.map((unaddedCartItem) => {
return this.props.dispatch(handleLoadProduct(unaddedCartItem.productId).then((result) => {
return this.setState({unaddedCartItem: result});
}).then(() => {
this.setState({modalVisible: visible});
}))
});
}
render(){
const{isLoading,product}=this.props.products;
const{unaddedCartItems}=this.state;
console.log('this.state:',this.state);
如果(孤岛加载){
返回;
}
this.numItems=product.images.length;
让imageArray=[];
设circleArray=[];
product.images.forEach((图像,i)=>{
console.log(图像,i);
常量thisImage=(
);
imageArray.push(此图像);
const scrollCircleVal=this.animVal.interpolate({
输入范围:[设备宽度*(i-1),设备宽度*(i+1)],
输出范围:[-8,8],
外推:“夹具”,
});
常数此圆=(
);
圈雷。推(这个圈)
});
常量列表图标=();
常数cartIcon=();
const questionIcon=();
让价格=({'price:$'+product.price});
让pack=({'Pk:'+product.pack+'x'+product.averageWeight+'lb'});
const deliveryEle=(val)=>(
交付{val}
);
常量行=[[价格,包装],[送货('Tue(1/30)')];
返回(
{imageArray}
Actions.pop()}>
{listIcon}
列表视图
{circleArray}
{product.description}
{产品.品牌}
项目:{product.id}
类别:{product.Category}
{cartIcon}
18项
this.cartdirect()}>
查看购物车
{
警报(“模式已关闭”);
}}>
回收物品
{this.setModalVisible(!this.state.modalVisible);}>
闭合X
{questionIcon}您是否打算添加以下项目?
{unaddedCartItems&&unaddedCartItems.map(unaddedCartItem=>
addToCart(未添加的partItem.id)}
/>
)}
这个。addItems}>
抛弃一切
此.placeOrder}>
全部加上
);
}
}
来自:
键有助于识别哪些项已更改、已添加或已删除
远离的。应该为数组中的元素提供键,以便
元素是一个稳定的恒等式
因此,在ProductCard
的render()
方法中的某个地方,您正在创建一个元素数组,但没有为每个元素指定键
属性(该属性应为唯一且可预测的值)。来源:
键有助于识别哪些项已更改、已添加或已删除
远离的。应该为数组中的元素提供键,以便
元素是一个稳定的恒等式
因此,在
ProductCard
的render()
方法中的某个地方,您正在创建一个元素数组,但没有为这些元素中的每个元素指定键
属性(该属性应为唯一且可预测的值)。您需要添加一个唯一的键值:
{unaddedCartItems && unaddedCartItems.map((unaddedCartItem,index) =>
<CartProductItem
key={index}
product={unaddedCartItem}
onAddToCartClicked={() => addToCart(unaddedCartItem.id)}
/>
)}
{unaddedCartItems&&unaddedCartItems.map((unaddedCartItem,index)=>
addToCart(未添加的partItem.id)}
/>
)}
THA应解决此问题您需要添加唯一的键值:
{unaddedCartItems && unaddedCartItems.map((unaddedCartItem,index) =>
<CartProductItem
key={index}
product={unaddedCartItem}
onAddToCartClicked={() => addToCart(unaddedCartItem.id)}
/>
)}
{unaddedCartItems&&unaddedCartItems.map((unaddedCartItem,index)=>
addToCart(未添加的partItem.id)}
/>
)}
THA应该解决这个问题我认为这里的问题是,您正在将一个具有3个值的对象转换为一个贴图。 映射是一组
对。在这种情况下,您的对象具有:
key : 85961
productId : 859610
quentity : 2
所以你的警告只是说:谁是“钥匙” 我认为这里的问题是,您正在将一个具有3个值的对象转换为贴图。 映射是一组
对。在这种情况下,您的对象具有:
key : 85961
productId : 859610
quentity : 2
<