Reactjs 如何访问useRef值钩子?
我正在尝试实现react本机图像裁剪视图,我正在使用: 经过一段时间的修复后,它开始工作,显然会自动生成一个输出: 我的问题是,如何获取useRef钩子的值,因为我想将其存储在redux中,这一切对我来说都是非常困惑的,代码:Reactjs 如何访问useRef值钩子?,reactjs,react-native,react-hooks,Reactjs,React Native,React Hooks,我正在尝试实现react本机图像裁剪视图,我正在使用: 经过一段时间的修复后,它开始工作,显然会自动生成一个输出: 我的问题是,如何获取useRef钩子的值,因为我想将其存储在redux中,这一切对我来说都是非常困惑的,代码: import React, { useState, useRef } from 'react'; import { Button, StatusBar, StyleSheet, View, Image } from 'react-native'; import { C
import React, { useState, useRef } from 'react';
import { Button, StatusBar, StyleSheet, View, Image } from 'react-native';
import { CropView } from 'react-native-image-crop-tools';
import ImagePicker from 'react-native-image-picker';
import { connect } from 'react-redux';
import { changeNewIdeaImage } from '../../redux/actions/';
const TestImageCropper = () => {
const [uri, setUri] = useState();
const cropViewRef = useRef();
return (
<>
<StatusBar barStyle="dark-content" />
<View style={styles.container}>
<Button
title={'Pick Image'}
onPress={() => {
ImagePicker.launchImageLibrary(
{ noData: true },
(response) => {
setUri(response.uri);
}
);
}}
/>
{uri !== undefined && (
<CropView
sourceUrl={uri}
style={styles.cropView}
ref={cropViewRef}
onImageCrop={(res) => console.warn(res)}
keepAspectRatio
aspectRatio={{ width: 4, height: 4 }}
/>
)}
<Button
title={'Get Cropped View'}
onPress={() => {
cropViewRef.current.saveImage(true, 90);
}}
/>
</View>
</>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
},
cropView: {
flex: 1,
backgroundColor: 'red',
},
});
const mapStatetoProps = (state: any) => {};
export default TestImageCropper;
import React,{useState,useRef}来自“React”;
从“react native”导入{按钮、状态栏、样式表、视图、图像};
从“react native image crop tools”导入{CropView};
从“react native image picker”导入ImagePicker;
从'react redux'导入{connect};
从“../../redux/actions/”导入{changeNewIdeaImage};
常量TestImageCropper=()=>{
const[uri,setUri]=useState();
const cropViewRef=useRef();
返回(
{
ImagePicker.launchImageLibrary(
{noData:true},
(回应)=>{
setUri(response.uri);
}
);
}}
/>
{uri!==未定义&&(
console.warn(res)}
基帕光谱比
aspectRatio={{宽度:4,高度:4}
/>
)}
{
cropViewRef.current.saveImage(true,90);
}}
/>
);
};
const styles=StyleSheet.create({
容器:{
弹性:1,
},
cropView:{
弹性:1,
背景颜色:“红色”,
},
});
常量mapStatetoProps=(状态:any)=>{};
导出默认的测试裁剪器;
现在,这是我最困惑的部分。saveImage视图函数从何而来?我如何连接它,以便将图像uri保存在Redux中以显示它
<Button
title={'Get Cropped View'}
onPress={() => {
cropViewRef.current.saveImage(true, 90);
}}
/>
{
cropViewRef.current.saveImage(true,90);
}}
/>
提前谢谢 saveImage()似乎是来自CropView
的一种方法。Ref只是简单地存储(在您的例子中)呈现的CropView
元素,因此cropViewRef.current
基本上就是TestImageCropper
组件中的CropView
,您可以使用cropViewRef.current.saveImage调用它的内置方法(true,90)代码>
我不清楚的是,您想在redux中存储什么?ref的值是元素本身。谢谢maten,你知道我如何访问保存的uri吗?@Fredyonge我不熟悉包本身,但saveImage()是否返回任何内容?我尝试了const test=cropViewRef.current.saveImage(true,90),但它不会回来anything@Fredyonge这是一个猜测,但我认为它要么在状态中得到更新,要么图像被保存到设备中