Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React DnD-开始拖动时如何使项目不透明度为0?_Javascript_Reactjs_Typescript_React Dnd - Fatal编程技术网

Javascript React DnD-开始拖动时如何使项目不透明度为0?

Javascript React DnD-开始拖动时如何使项目不透明度为0?,javascript,reactjs,typescript,react-dnd,Javascript,Reactjs,Typescript,React Dnd,嗨,我有这样的类组件 const spec = { beginDrag(props, monitor) { //Toto by sa dalo nahradit ako new DnDItem ale nevezme to pretoze to musi byt plainObject const item = {currentContainerType: props.typeOfContainer, currentArrayPosition: props

嗨,我有这样的类组件

const spec = {
    beginDrag(props, monitor) {
        //Toto by sa dalo nahradit ako new DnDItem ale nevezme to pretoze to musi byt plainObject
        const item = {currentContainerType: props.typeOfContainer, currentArrayPosition: props.orderInContainer};
        return item;
    },
};
const collect = (connect, monitor) => {
    return {
        connectDragSource: connect.dragSource(),
        connectDragPreview: connect.dragPreview(),
        isDragging: monitor.isDragging(),
    };
};


class DnDSource extends React.PureComponent<IProps, IStates> {

    render() {
        const {connectDragSource} = this.props;
        return (
            connectDragSource(
                <div className={'source'} style={{opacity: (monitor.isDraging() === true) ? 0 : 1}}>
                    <TextFlowRenderer fontName={this.props.item.response.fontName}
                                      fontSize={this.props.item.response.fontSize}
                                      formulas={this.props.item.response.formulas}
                                      textToRender={this.props.item.response.response}/>
                </div>,
            )
        );
    }
}

export default DragSource('answer', spec, collect)(DnDSource);
style={{opacity: (monitor.isDraging() === true) ? 0 : 1}}

但这不起作用,因为我无法访问组件中的监视器对象。

您可以从监视器获取拖动状态:

    const ref = useRef<HTMLDivElement>(null);

    const [{ isDragging }, drag] = useDrag({
        item,
        collect: (monitor: DragSourceMonitor) => ({
            isDragging: monitor.isDragging()
        }),
    });

    drag(ref);
    return <div ref={ref} style={{ opacity: isDragging ? 0 : 1 }}>Example</div>
const ref=useRef(null);
常量[{isDraging},拖动]=使用拖动({
项目,,
收集:(监视器:DragSourceMonitor)=>({
isDraging:monitor.isDraging()
}),
});
阻力(参考);
返回示例
拖动div时,将不透明度设置为0