Javascript 在react native中解构对象

Javascript 在react native中解构对象,javascript,react-native,object,Javascript,React Native,Object,我有这样的结构: 我想将uri作为键访问,并将其值作为值访问。 我该怎么做 这就是我所尝试的,我得到的关键是图像其余的数据是有价值的 const ImagesToDisplay = images => { let imagesMap = Object.entries(images); console.log('Images object' + JSON.stringify(images)); return ( <View> {imagesMap

我有这样的结构:

我想将uri作为键访问,并将其值作为值访问。 我该怎么做

这就是我所尝试的,我得到的关键是图像其余的数据是有价值的

const ImagesToDisplay = images => {
  let imagesMap = Object.entries(images);
  console.log('Images object' + JSON.stringify(images));
  return (
    <View>
      {imagesMap.map(([key, value]) => (
        // <Image style={styles.avatar} key={key} source={key + value} />
      <Text>{key}</Text>
      ))}
    </View>
  );
};
若要图像,请显示我传递此.state.images log(图像)如下所示
uri是base64,所以它很长

好吧,它看起来像是“M…”图像名称,我想在您的情况下,如果您这样做,它会起作用

Object.values(images.map)(el=>
{ 
返回{Object.entries(el)[0][1]})


如果您发布从db收到的实际图像数组,则会更加清晰,您可以使用
Object.values(images).map(obj=>Object.entries(obj)).flat()

例如:

const图像={
'jssjsks':{uri:'uri1'},
'wjqwhqwj':{uri:'uri2'}
};
让imagesMap=Object.values(images.map)(obj=>Object.entries(obj)).flat();
// 1. `value(images)`返回`[{uri:'uri1'},{uri:'uri2'}]`
// 2. 然后`.map(obj=>Object.entries(obj))`返回`[['uri',uri1']],[[['uri',uri2']]`
// 3. 最后,`.flat()`生成所需的结果`[['uri',uri1',['uri',uri2']]`
//console.log(imagesMap)
imagesMap.forEach(([key,value])=>{
console.log(键)
console.log(值)

})
谢谢您的帮助,我编辑了这个方法,所以在Object.entries中我传递images.images,它解决了这个问题

const ImagesToDisplay = images => {
  let imagesMap = Object.entries(images.images);
  // console.log('Images object' + JSON.stringify(images.images));
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      {imagesMap.map(([key, value]) => {
        return <Image style={styles.avatar} key={key} source={value} />;
        // <Text style={styles.avatar}>{key}</Text>;
      })}
    </View>
  );
};
const ImagesToDisplay=images=>{
让imagesMap=Object.entries(images.images);
//log('Images对象'+JSON.stringify(Images.Images));
返回(
{imagesMap.map([key,value])=>{
返回;
//{key};
})}
);
};

您使用什么存储?Firebase实时数据库确定。如果您正在使用。您应该能够加载图像集合,然后对其进行迭代。好的,但我想解构对象,而不是更改数据库函数。因为我不仅获取图像数据。更新了问题,使用images object console.logged。根据您的回答,我得到的值为:{“-m5vvgj9extyrgjmdyt”:{“uri”:“data:image/jpeg;base64,/9j/4AAQSkZ,所以我们接近答案如果我的控制台.log(Object.entries(el)[0][1]),它提供图像。是的,另一个给您密钥,我不确定您想要什么
const ImagesToDisplay = images => {
  let imagesMap = Object.entries(images.images);
  // console.log('Images object' + JSON.stringify(images.images));
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      {imagesMap.map(([key, value]) => {
        return <Image style={styles.avatar} key={key} source={value} />;
        // <Text style={styles.avatar}>{key}</Text>;
      })}
    </View>
  );
};