Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.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 打开lightBox后如何增加图像宽度?_Javascript_Html_Css_Reactjs_React Native - Fatal编程技术网

Javascript 打开lightBox后如何增加图像宽度?

Javascript 打开lightBox后如何增加图像宽度?,javascript,html,css,reactjs,react-native,Javascript,Html,Css,Reactjs,React Native,我使用的是图像查看器,当我打开图像时,我想要全屏显示,但它不能做到这一点;它只是在打开之前采用默认宽度。我使用宽度和高度作为状态,并且在打开lightbox时更新值,但这不起作用(它给出了错误“lightbox未工作”)。因此,我如何处理这些图像以获取全宽和全高 import React,{Component,Fragment}来自“React”; 从“react native firebase”导入firebase; 从“反应本机矢量图标/离子图标”导入图标; 从“react native

我使用的是图像查看器,当我打开图像时,我想要全屏显示,但它不能做到这一点;它只是在打开之前采用默认宽度。我使用宽度和高度作为状态,并且在打开lightbox时更新值,但这不起作用(它给出了错误“lightbox未工作”)。因此,我如何处理这些图像以获取全宽和全高

import React,{Component,Fragment}来自“React”;
从“react native firebase”导入firebase;
从“反应本机矢量图标/离子图标”导入图标;
从“react native Lightbox”导入Lightbox;
进口{
看法
文本,
样式表,
可触摸不透明度,
形象,,
平面列表,
滚动视图,
尺寸
}从“反应本族语”;
const{width,height}=Dimensions.get(“窗口”);
类GalleryScreen扩展组件{
建造师(道具){
超级(道具);
此.state={
图像:[],
宽度X:宽度/3-17,
高度X:110,
柔性版:0
};
}
componentDidMount(){
const uid=firebase.auth().currentUser.uid;
火基
.数据库()
.ref(`providers/${uid}`)
.on(“值”,快照=>{
让uri=snapshot.val().Images;
让图像=[];
Object.values(uri).forEach(img=>{
push({uri:img.uri});
});
this.setState({images});
});
}
render(){
返回(
{
返回(
);
}}
keyExtractor={(项,索引)=>index.toString()}
/>
{/* + */}
);
}
}
导出默认GalleryScreen;
const styles=StyleSheet.create({
容器:{
弹性:1,
背景颜色:“F1F1”
}
});

您需要为图像的外部容器intead设置大小,并为图像提供100%的宽度和高度,以便当灯箱显示时,图像将采用全屏大小

<TouchableOpacity 
  key={Math.floor(Math.random() * 100)} 
  style={{ margin: 5, width: width / 3 - 17, height: 110 }}
>
  <Lightbox
    underlayColor="#fff"
    style={{ flex: 1 }}
    backgroundColor="#001"
  >
    <Image
      source={{ uri: item.uri }}
      style={{
        borderRadius: 15,
        width: "100%", 
        height: "100%"
      }}
      resizeMethod="resize"
      resizeMode="cover"
    />
  </Lightbox>
</TouchableOpacity>

lightBox的属性名为(
activeProps
)。要使图像全屏显示,只需删除
style={{{flex:1}
。并添加该属性。如下设置其值:

activeProps={{width: '100%', height: '100%'}}

作为参考检查:

您应该将此“宽度/3-17”移动到外部渲染,以避免每次调用渲染时都重新计算Hank u,但我得到的是没有任何图像的空白屏幕,如[@CuongTransduct这是我的错,现在我得到了这个?那么如何强制lightbox全屏显示“lightbox background it's blue”,请看这个,当我将resizeMode更改为“contain”时,库中的每个图像都有一个不同的宽度和高度,那么如何在渲染时强制它们采用默认的宽度和高度,如您在这里看到的@CuongTranDuc@OliverD如果lightbox没有全屏显示,可能是图书馆的问题,您所说的强制图像采用默认的宽度和高度,它将在整个路线上伸展r带有resizeMode封面的容器(不保留比例大小)或缩小resizeMode包含的容器内部(保留比例)
activeProps={{width: '100%', height: '100%'}}