示例代码:
export default function Cart() {
const navigation = useNavigation();
// Stores the selected image URI
const [file, setFile] = useState('');
// Stores any error message
const [error, setError] = useState(null);
// Function to pick an image from
//the device's media library
const pickImageAsync = async () => {
let result = await ImagePicker.launchImageLibraryAsync({
allowsEditing: true,
quality: 1,
});
if (!result.canceled) {
console.log(result);
setFile(result.assets[0].uri);
} else {
alert('You did not select any image.');
}
};
return (
<View style={styles.container}>
<TouchableOpacity onPress={() =>pickImageAsync() } style={styles.btnContainer} ><View><Text style={styles.textview}>Upload Image</Text>
</View>
</TouchableOpacity>
{/* Conditionally render the image
or error message */}
{file ? navigation.navigate('AddToCart',{'file':file}): (
// Display an error message if there's
// an error or no image selected
<Text style={styles.errorText}>{error}</Text>
)}
</View>
);
}
字符串
我使用ImagePicker库发送图像到另一个屏幕与屏幕导航器.它存储在一个状态变量.然而,它给我一个错误,它不能更新一个组件,而渲染另一个组件.我必须传递相同的imagefile多个组件从一个到另一个.我只有一个上传按钮,并在选择,需要发送图像到另一个组件,我是通过route.params获取的。
我意识到它不能同时更新图像和发送,我该如何解决这个问题
1条答案
按热度按时间7vhp5slm1#
这是一个糟糕的方法,会建议你做一些行动导航,在你的情况下,可以当你刚刚从选择器,如果没有文件更新错误文本文件
字符串
一切就绪!