我的RN 0.62.2应用程序上传图像并显示。图像存储在状态数组中。当上传新图像时,新图像将添加到数组末尾。以下是添加图像的方法:
const [imgs, setImgs] = useState();
const addImages = (pics) => {
if (!pics || pics===[] || pics==={}) return;
let temp = imgs, updated=false;
if (imgs && imgs!==[] && imgs!=={}) {
let names = imgs.map(item => item.fileName);
for(let i=0;i<pics.length;i++) {
if (!names.includes(pics[i].fileName)) {
temp.push(pics[i]);
updated = true;
};
};
if (updated) setImgs(temp); //<<== add more images to the array and reset the state
} else {
setImgs(pics); //<<==for initial upload of images
};
图像阵列显示在组件内:
return (
<MyAccordion title={"Image"} absPosition={false} initOpen={accordImgOpen} screenSize={{width:screen_width, height:((imgs && imgs.length>9) ? screen_width+(screen_width/3)*(Math.ceil(((imgs.length-9)%3)/3)):screen_width)}} >
<DisplayImages pics={imgs} deleteImage={deleteImage} /> //<<==here imgs is a state and the images array is display in grids
</MyAccordion>
)
直到今天,代码一直运行良好。现在添加的图像不是按功能组件呈现的
DisplayImages
刚好在…之后。我需要做一些事情,比如打开Modal并关闭它以触发重新渲染。控制台输出显示状态
imgs
已更新。什么可以防止页面在状态更新后重新呈现?