[英]How can I setState and push object to array?
How can I setState
and push to an array?哪有我
setState
并推到一个数组? Currently nothing happens...目前什么都没有发生...
This is my code这是我的代码
State状态
const [imageData, setImageData] = useState([]);
crop image裁剪图像
const choosePicture = () => {
ImagePicker.openPicker({
width: 300,
height: 400,
cropping: true,
})
.then(image => {
onSelectedImage(image);
})
.catch(error => {
console.log(error);
});
};
setState设置状态
const onSelectedImage = image => {
let newDataImg = imageData;
let item = {
id: Date.now(),
url: image.path,
};
newDataImg.push(item);
setImageData(newDataImg);
};
console.log(imageData);
And Flatlist和平面列表
<FlatList
data={imageData}
renderItem={itemData => (
<View>
<Image
source={{uri: itemData.item.url}}
style={{width: 200, height: 200}}
/>
</View>
)}
keyExtractor={item => item.id.toString()}
/>
You must copy your imageData
array instead of putting its refernce into newDataImg.您必须复制
imageData
数组,而不是将其引用放入 newDataImg。
const onSelectedImage = image => {
// Copy the array
let newDataImg = [...imageData];
let item = {
id: Date.now(),
url: image.path,
};
newDataImg.push(item);
setImageData(newDataImg);
};
console.log(imageData);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.