对于使用过上述两个库的任何人,我都在尝试完成以下功能:
用户将能够查看、旋转、缩放、平移图像,并且一旦在图像的所需位置上,就能够裁剪该区域。
我遇到的第一个问题是“ReactCrop”不允许我在“TransformComponent”内部进行裁剪,但将子元素传递给它的唯一方法是将其定位在组件之间。我可以看到要裁剪的十字准线,但是当我尝试拖动图像时,它只会移动图像(react-zoom-pan-pinch 行为)
const [isDisabled, toggleIsDisabled] = useState(true);
const onClickCrop = () => {
toggleIsDisabled(!isDisabled)
}
const handleOnCropChange = () => {
// pick up crop changes
}
const handleOnCompleteCrop = () => {
// do something when done with crop
}
return(
<TransformWrapper>
{({ zoomIn, zoomOut }) => (
// some code here to handle image zoom...
<Button onClick={onClickCrop}>
{isDisabled ? 'Crop: Off' : 'Crop: On'}
</Button>
<Box>
<TransformComponent>
<ReactCrop
crop={crop}
src={file}
onChange={handleOnCropChange}
onComplete={handleOnCompleteCrop}
disabled={isDisabled}
/>
</TransformComponent>
</Box>
)}
</TransformWrapper>)
如果有人有任何其他想法来完成上述功能,我也会对探索它们非常感兴趣。谢谢!